最近接到一个需求,作一个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和图片的更新不用从新发包。