天天看點

React Native Android入門實戰及深入源碼分析系列(2)——React Native源碼編譯

在上一節中,我們通過一個相冊的制作來學習了react native編寫。這一節我們需要開始學習react native的源碼。

學習源碼,從編譯源碼開始。

首先,我們需要把代碼從github中克隆下來。

然後,我們可以切換到它的穩定分支,2016-03-30是我的操作時間,這個時候0.23-stable是最新的穩定版本。

我們首先更新一下我們的react-native,因為等下建立項目最好使用最新版本的。

首先,我們需要查詢最新版本:

得到最新版本是0.22.2

接下來,建立一個項目:

好,等待漫長的初始化過程。

完事之後,打開項目頂層的package.json檔案:

可以看出我們的一個版本的基本資訊。

接下來,我們來進行源碼的編譯。編譯源碼,官網有一個頁面,我們的過程呢,也是基于它的,但如果你完全基于它,那麼你是會吃虧的。

是以,為什麼我要寫一篇文章出來,給大家作為參考。

前置條件:

1、sdk : compilesdkversion 23

2、sdk build tools : 23.0.1

3、android support repository >=17 

4 、 ndk (4.8哦就是 ndk-r10b,,4.9都不行,會坑出很多問題,如果ndk版本不對。)

使用androidstudio打開項目。

1、項目頂層build.grade的配置:

2、添加reactandroid子產品,在頂層的setting.grade檔案中,配置如下:

那個絕對目錄是我的,你隻需要改成你的就行。

3、更改項目依賴:在應用子產品的build.gradle裡面更改依賴部分:

注釋掉原來的,更改為子產品依賴。

官網到這裡,就叫你可以run啦。呵呵,too young too simple。

首先,reactandroid裡面的有些下載下傳任務你給它再多時間都不可能完成。是以。。。我們需要離線下載下傳好。然後更改其腳本,進行編譯。

1、離線下載下傳好

boost_1_57_0

double_conversion-1.1.1

folly-deprecate-dynamic-initializer

glog-0.3.3

jsc頭檔案

然後按照目錄放到reactandroid的build/downloads/目錄下面。大概有450m内容。

2、修改reactandroid的build.grade腳本

主要是删掉那些下載下傳任務的腳本,直接進入拷貝任務和編譯任務。

來,我們來感受一下修改前和修改後的差別。

首先,修改前:

修改完以後:

去掉了那些下載下傳,因為我們已經下載下傳好,扔進去。至于那些怎麼下載下傳,大家就自己自行想辦法吧,反正一個個下載下傳。

然後可以編譯了。注意ndk版本,在local.properties檔案裡面設定:

ok,跑起來。

然後,在項目的頂層,npm start 。

注意,我們并沒有将reactandroid 裝載到node_module裡面。因為這樣容易出問題,是以這也是跟官網差異的一個地方。就是,工程依賴是通過源碼。但是npm start的,其實是node_module裡面的,也就是0.22.2

好,今天就到這裡。有什麼不懂的,可以來問我。

[email protected];

微信:micall123

繼續閱讀