7月25日更新:
快速簡潔創(chuàng)建react-native應(yīng)用的方法:僅需要按此文檔安裝到第四步完成nodejs,然后執(zhí)行:
npm install -g create-react-native-app
安裝成功后,即可使用:
create-react-native-app XXXproject
來創(chuàng)建一個react-native應(yīng)用了。具體參見:更快速的 React Native 應(yīng)用開發(fā)之道
但目前這個工具僅用于react-native學(xué)習(xí),還不適用于開發(fā)商用程序。
預(yù)備知識
React Native是facebook剛開源的框架,可以用javascript直接開發(fā)原生APP。
開發(fā)react native,需要一定的前端開發(fā)知識基礎(chǔ),此外還需要掌握:
- ES6語法基礎(chǔ),ECMAScript 6 入門
- Node.js基礎(chǔ),Node入門
- JSX語法基礎(chǔ),React基礎(chǔ)——JSX語法
- Flexbox布局,Flex 布局教程:語法篇
以下步驟請?jiān)诜瓑顟B(tài)下操作。
1. 安裝Chocolatey 包管理器(非必須)
Chocolatey是一個Windows上的包管理器,類似于linux上的yum和 apt-get。這個非必須,但用它安裝python2和nodejd比較方便。使用它安裝有個好處,環(huán)境變量是自動設(shè)置的。在CMD中輸入:
@powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin
2. 安裝jdk
注意,64位機(jī)器請安裝64位版本,強(qiáng)烈建議安裝jdk1.8版本。在CMD中輸入:
choco install jdk8
3. 安裝Python2
由于目前不支持python3,所以需安裝python2,在CMD中輸入:
choco install python2
4. 安裝最新版node.js(8.1.3)
choco install nodejs.install
5. 安裝Visual Studio Express 2013 Windows Desktop版
安裝此應(yīng)用,是為了避免windows下npm install一些包無法編譯的問題,僅對win10有效,如已安裝.NET framework4.5,貌似問題也可解決。下載地址:Visual Studio Express 2013 Windows Desktop版.
6. 安裝git客戶端(非必須)
7. 安裝react-native命令行工具React-native-cli和yarn JavaScript包管理工具
React Native的命令行工具用于執(zhí)行創(chuàng)建、初始化、更新項(xiàng)目、運(yùn)行打包服務(wù)(packager)等任務(wù)。
npm install -g react-native-cli
除了npm可用于安裝依賴外,還有一個等同于npm的命令yarn(強(qiáng)烈建議安裝),yarn比npm在網(wǎng)絡(luò)性能優(yōu)化、解決多版本沖突等方面更優(yōu),參見:Facebook 新推 Yarn,或取代 npm 客戶端,安裝方式:
npm install yarn -g
#安裝完成yarn后,可更改鏡像地址為國內(nèi)地址。
npm config set registry https://registry.npm.taobao.org --global
npm config set disturl https://npm.taobao.org/dist --global
yarn config set registry https://registry.npm.taobao.org --global
yarn config set disturl https://npm.taobao.org/dist --global
yarn常用命令
- yarn / yarn install,等同于npm install (批量安裝依賴)
- yarn add xxx,等同于 npm install xxx —save (安裝指定包到指定位置)
- yarn remove xxx,等同于 npm uninstall xxx —save (卸載指定包)
- yarn add xxx —dev,等同于 npm install xxx —save-dev
- yarn upgrade,等同于 npm update (升級全部包)
- yarn global add xxx,等同于 npm install xxx -g (全局安裝指定包)
8. 創(chuàng)建react-native項(xiàng)目
CMD命令行進(jìn)入到希望的android工作目錄下(建議就在react-native根目錄下),輸入:
react-native init MyApp
9. 安裝android SDK
- 單獨(dú)安裝sdk;
- 設(shè)置環(huán)境變量ANDROID_HOME:Android SDK Manager的位置 例如:(PATH => E:\Android\sdk)設(shè)置環(huán)境變量PATH:例如:(PATH => %ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools)
- 此步驟中需要翻墻,并下載很多版本的android sdk包,我手上有一份包含android 8.0在內(nèi)的很多版本sdk了,大約59GB。
我認(rèn)為這一步非必須,因?yàn)閍ndroid studio2.0以后的版本都默認(rèn)包含sdk,不過我沒試過。因?yàn)閍ndroid studio默認(rèn)的sdk路徑在C盤,所以C盤預(yù)留空間要足夠大,比如200GB以上;
10. 安裝android studio
目前最新版本是2.3。
Android Studio包含了運(yùn)行和測試React Native應(yīng)用所需的Android SDK和模擬器。因此安裝過程中不要改動安裝過程的選項(xiàng)。確認(rèn)勾選了以下內(nèi)容:
- 默認(rèn)安裝了Android Support Repository;
- 勾選了是Android SDK和Android Device Emulator;
- 在安裝完AS之后,file-->settings-->Appearance&&Behavior-->System Settings-->Android SDK中:
- 在SDK Platforms窗口中,選擇Show Package Details,然后在Android 6.0 (Marshmallow)中勾選Google APIs、Android SDK Platform 23、Intel x86 Atom System Image、Intel x86 Atom_64 System Image以及Google APIs Intel x86 Atom_64 System Image;
- 在SDK Tools窗口中,選擇Show Package Details,然后在Android SDK Build Tools中勾選Android SDK Build-Tools 23.0.1(必須是這個版本)。然后還要勾選最底部的Android Support Repository.
11. 運(yùn)行MyApp
確保上一步中安裝了android device emulator,這里創(chuàng)建一個android Emulator,然后打開它,出現(xiàn)一個模擬的android手機(jī)界面。
在android studio中打開第7步構(gòu)建的MyApp項(xiàng)目,在著手修改該項(xiàng)目前,可先看運(yùn)行效果,在項(xiàng)目目錄下運(yùn)行CMD命令:
npm install
react-native run-android
npm install也可以改用yarn命令 ,yarn 相當(dāng)于npm install,global安裝命令由npm install -g xxx改為yarn global add xxx)
執(zhí)行該命令后,會生成項(xiàng)目的apk安裝包并安裝到android Emulator中執(zhí)行。
- 第一次構(gòu)建android程序很慢,為加快gradle第一次的構(gòu)建速度,也可拷貝我電腦的.gradle目錄(C:\Users\Administrator\.gradle),大約300MB。
- gradle的默認(rèn)目錄可以修改。添加GRADLE_USER_HOME環(huán)境變量,指向自定義的.gradle目錄即可。
- 還可以開啟Gradle Daemon,可極大的提升java代碼的增量編譯速度。在CMD中輸入:
(if not exist "%USERPROFILE%/.gradle" mkdir "%USERPROFILE%/.gradle") && (echo org.gradle.daemon=true >> "%USERPROFILE%/.gradle/gradle.properties")