ReactNative学习笔记(三)打包、调试、运行等相关介绍
各种命令
个人习惯在项目根目录下把一些常见命令写成bat文件,以后每次要执行什么只需要双击即可:

编译、生成、运行并启动packager(debug模式):
react-native run-android
所谓
packager其实就是一个文件同步服务,默认监听8081端口,启动它之后,运行debug模式的ReactNative应用可以随时reload我们的JS。有时候使用上面的命令之后packager服务没有自动启动,此时需要我们手动启动。
我们还可以直接在AndroidStudio中运行项目,然后手动启动packager服务即可:
react-native start

当然,如果你的apk已经安装到了设备上,那么直接启动packager就可以开始开发了。
生成release包的命令见后面。
bundle文件介绍
bundle文件是一个JS文件的大集合,对于Android平台,就叫index.android.bundle,一般有几百kb,里面包括你自己写的JS和RN自带的一些模块代码,是一个文本文件,可以直接用记事本打开。
默认debug模式下,生成的apk里面的index.android.bundle只是ReactNative默认的一个HelloWorld页面,如果packager正在运行,那么这个apk会连接这个packager提供的服务,将js和其它资源打包成index.android.bundle并加载。所以,如果你的packager服务没有开启,可能看到的只是一个默认的HelloWorld页面。
开启实时reload和remote debug
debug 模式下的RN应用自带了一个辅助菜单(双击字母R,或者Ctrl+M,或者直接按模拟器上的菜单键都可以打开它):

选择reload,可以手动重新加载js,如果新添加了图片则需要重新运行apk才可以生效。
选择Enable Live Reload可以开启实时文件同步,修改了JS之后可以立即自动生效,无需手动reload;
选择Debug JS Remotely可以开启远程调试,会自动用Chrome打开http://localhost:8081/debugger-ui,然后需要我们手动按下F12打开控制台,在Console面板记得按下图选择一下:

在这里执行代码就会直接作用到RN上,比如alert之后,会在界面弹出提示。
对于Sources面板,我们的JS和图片等资源在这里全部可以看得到:

要支持断点调试的话好像还要借助一个插件,这个没试过。
发行正式包
很多东西需要打正式的release包才能测试,比如热更新,所以本小节先介绍如何配置打包。
生成签名文件:
cd android/app
keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 36500
按照提示一直下一步,其中,my-key-alias是别名,可随意指定,记住你设置的密码,密钥口令和密钥库口令一般都设置相同。执行上述命令后会在android/app下生成my-release-key.keystore文件。
打开android\app\build.gradle文件,在defaultConfig后面追加signingConfigs相关配置,在buildTypes.release中增加signingConfig一行:
defaultConfig {...}
signingConfigs {
release {
storeFile file("my-release-key.keystore")
keyAlias "my-key-alias"
storePassword "123456"
keyPassword "123456"
}
}
splits {...}
buildTypes {
release {
...
signingConfig signingConfigs.release
}
}
不清楚的看截图:

在项目根目录上新建一个生成release包.bat,以后双击即可生成正式包了:
cd android && gradlew assembleRelease
生成并安装release包.bat:
cd android && gradlew installRelease
ReactNative学习笔记(三)打包、调试、运行等相关介绍的更多相关文章
- openresty 学习笔记三:连接redis和进行相关操作
openresty 学习笔记三:连接redis和进行相关操作 openresty 因其非阻塞的调用,令服务器拥有高性能高并发,当涉及到数据库操作时,更应该选择有高速读写速度的redis进行数据处理.避 ...
- Apache Ignite 学习笔记(三): Ignite Server和Client节点介绍
在前两篇文章中,我们把Ignite集群当做一个黑盒子,用二进制包自带的脚本启动Ignite节点后,我们用不同的客户端连接上Ignite进行操作,展示了Ignite作为一个分布式内存缓存,内存数据库的基 ...
- react-native学习笔记--史上最详细Windows版本搭建安装React Native环境配置
参考:http://www.lcode.org/react-native/ React native中文网:http://reactnative.cn/docs/0.23/android-setup. ...
- VSTO学习笔记(三) 开发Office 2010 64位COM加载项
原文:VSTO学习笔记(三) 开发Office 2010 64位COM加载项 一.加载项简介 Office提供了多种用于扩展Office应用程序功能的模式,常见的有: 1.Office 自动化程序(A ...
- 学习笔记(三)--->《Java 8编程官方参考教程(第9版).pdf》:第十章到十二章学习笔记
回到顶部 注:本文声明事项. 本博文整理者:刘军 本博文出自于: <Java8 编程官方参考教程>一书 声明:1:转载请标注出处.本文不得作为商业活动.若有违本之,则本人不负法律责任.违法 ...
- ES6学习笔记<三> 生成器函数与yield
为什么要把这个内容拿出来单独做一篇学习笔记? 生成器函数比较重要,相对不是很容易理解,单独做一篇笔记详细聊一聊生成器函数. 标题为什么是生成器函数与yield? 生成器函数类似其他服务器端语音中的接口 ...
- angular学习笔记(三十一)-$location(2)
之前已经介绍了$location服务的基本用法:angular学习笔记(三十一)-$location(1). 这篇是上一篇的进阶,介绍$location的配置,兼容各版本浏览器,等. *注意,这里介绍 ...
- python3.4学习笔记(三) idle 清屏扩展插件
python3.4学习笔记(三) idle 清屏扩展插件python idle 清屏问题的解决,使用python idle都会遇到一个常见而又懊恼的问题——要怎么清屏?在stackoverflow看到 ...
- amazeui学习笔记三(你来我往1)--常见问题FAQs
amazeui学习笔记三(你来我往1)--常见问题FAQs 一.总结 1.DOM事件失败:记得加上初始化代码,例如 图片轮播 $('#my-slider').flexslider(); 2.jquer ...
- 物联网学习笔记三:物联网网关协议比较:MQTT 和 Modbus
物联网学习笔记三:物联网网关协议比较:MQTT 和 Modbus 物联网 (IoT) 不只是新技术,还是与旧技术的集成,其关键在于通信.可用的通信方法各不相同,但是,各种不同的协议在将海量“事物”连接 ...
随机推荐
- python大法好——网络编程
Python 网络编程 Python 提供了两个级别访问的网络服务.: 低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的 ...
- Python函数学习
def func(x, y): print(x) print(y) func(x=1,2) #报错,关键参数一定不能放在位置参数前面 func(1,y=2) #可以正常运行 #参数组,适用于实参个数不 ...
- React更新元素 基础
React元素创建后无法修改其内容和属性.唯一的办法是创建新的元素,传入ReactDOM.render()方法 三种实现形式: 1.整体替换 function tick () { const ele= ...
- # 20175213 2018-2019-2 《Java程序设计》第1周学习总结
在本周的java学习中,我收获了很多也遇到了很多的困难1.在寒假的预学习中,因为没能完全的安好虚拟机,导致在本周的学习一开始,虚拟机就崩溃了,所以又重新开始重头安装虚拟机.但因为网速等各种问题,虚拟机 ...
- vue单页面处理SEO问题
设置vue 单页面meta info信息 vue-meta-info,(https://github.com/muwoo/vue-meta-info)如果需要单页面SEO,可以和 prerender- ...
- python入门(一):进入python的交互模式、pip的使用和数据类型
环境安装: https://www.python.org/ pycharm 社区版路径: http://www.jetbrains.com/pycharm/download/download-than ...
- 使用LESS对CSS进行预处理
LESS 做为 CSS 的一种形式的扩展,它并没有阉割 CSS 的功能,而是在现有的 CSS 语法上,添加了很多额外的功能,所以学习 LESS 是一件轻而易举的事情. 变量 请注意 LESS 中的变量 ...
- oracle用户间表数据复制迁移
如system用户要将scott中的emp表倒入其中,按如下方法: 1.登录scott用户 2.给system用户赋予查询emp标的权限: grant select on emp to system; ...
- linux系统,服务器与服务器拷贝文件
服务器与服务器拷贝文件命令 scp -P (服务器端口)-r 拷贝文件名称列表 远程服务器用户@远程服务器ip :(文件放置目录) 1.将本地home目录下的apache-tomcat-8.0. ...
- 2018 宁夏省赛 F. Moving On
题目链接 https://nanti.jisuanke.com/t/28406 大意是 有n(<=200)个城市,城市间有路(Input给了邻接矩阵) 每个城市有一个危险值,然后是q(2e4) ...