最近接到一個需求,作一個android端的應用,在同事的建議和指導下選擇了React Native(下文簡稱RN),趁着本身搭工程的機會,總結一下一個RN工程從無到有的完整過程(此處只講android工程)。前端
RN是一個基於react的js庫,用於開發ios、android系統中的的native應用。結合了native和h5的優勢,具備性能好、靈活度高、接入成本低等特色。java
首先安裝react-native-cli,安裝成功之後就能夠使用react-native的命令行進行建立、初始化、更新項目、運行打包服務等工做。react
npm install -g react-native-cli
複製代碼
此處推薦安裝yarn代替npm,yarn是由Facebook提供的命令行工具,能夠加速模塊的下載速度。yarn安裝完之後就能夠使用yarn代替npm了。android
npm install -g yarn
複製代碼
運行react-native init 命令,建立一個新項目ios
react-native init RNTestProject
複製代碼
經過react-native init生成了項目之後須要進行開發環境的配置git
按照提示安裝完後打開android studio進入歡迎界面之後,須要配置編譯RN應用所需的Android SDK。github
配置ANDROID_HOME環境變量,React Native 經過ANDROID_HOME環境變量來肯定 Android SDK 的安裝路徑,從而正常進行編譯。shell
將路徑:/Users/summer/Library/Android/sdk/platform-tools
加在~/.bashrc中的export PATH=XXX
的後面。確保~/.bash_profile中有以下配置npm
if test -f .bashrc ; then
source .bashrc
fi
複製代碼
這樣纔會在用戶登陸時先執行~/.bash_profile再執行~/.bashrc,修改在重啓shell後生效。react-native
在運行RN應用以前須要準備一臺Android設備,設備能夠是真機也能夠是模擬器,此處我使用的是模擬器。
虛擬設備安裝成功之後,可經過adb devices -l
命令查看當前可用的設備
設備安裝完成之後就能夠運行RN項目了,在工程目錄中運行react-native run-android
命令
運行命令後會自動調起命令行運行一個打包服務,端口爲8081,用於提供js文件(開發模式中RN應用的前端文件是由8081端口加載;打包成apk包之後前端文件會被打進apk包)
run-android會自動構建apk包並安裝到可用的設備上,首次運行設備可能會出現紅屏錯誤,是由於沒有配置正確的打包服務。解決方式以下:
調試js代碼的姿式:
調試請求的姿式:
code push是一個雲服務,能夠將更新(JS,HTML,CSS和圖片)發佈到這個倉庫上,而後用戶端app能夠查看並下載更新。所以JS,HTML,CSS和圖片的更新不用從新發包。