博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
与代码无关的React Native常识
阅读量:6228 次
发布时间:2019-06-21

本文共 2171 字,大约阅读时间需要 7 分钟。

hot3.png

最近想学习下React Native,用JavaScript来编写Android app。在写代码之前,先搞明白几个问题:用什么开发工具比较好?React Native的原理是什么,开发的App性能和原生应用一样好么?

搭建开发环境

React Native CLI

安装,通过npm命令安装React Native:

npm install -g react-native-cli

Visual Studio Code

代码编辑器可以选择,因为可以找到很多扩展插件。

react native editor

Android Studio

安装。按照React Native的要求,打开Android SDK Manager安装6.0相关的包。

react native android sdk manager

React Native ‘Hello World’

使用命令行来创建一个新的工程:

react-native init helloworld

创建之后的工程目录结构:

react native new

在手机或者模拟器上运行程序。注意:只能有一个设备连接着

react-native run-android

react native ui

在运行程序的时候,首先会启动React Packager。React Packager会编译index.android.js文件。

react native hello world

Hot reloading

如果程序运行在模拟器上,只需要双击键盘上的R就可以重新加载修改的代码。如果代码运行在手机上,需要先摇晃一下手机,调出菜单,然后选择重新加载。不过这样比较麻烦。所以在菜单上可以激活hot reloading避免每次都要摇晃手机来点击菜单。

小米手机上无法运行程序怎么办

打开设置>更多设置>开发者选项>关闭‘启用MIUI优化’,重启设备就可以了。

React Native的工作原理

React Native使用作为JavaScript引擎。通过解析JavaScript接口,找到对应的Native接口。因此React Native创建的移动app性能和原生没有差别。我们可以打开编译出来的APK文件一探究竟。

APK文件

React Native编译工程之后会生成helloworld\android\app\build\outputs\apk\app-debug.apk。打开这个APK文件看一下有什么:

react native apk

react native libs

在lib目录中可以看到有很多的*.so库文件,其中就包含了libjsc.so,也就是JavaScript的引擎。

JavaScript资源文件

在app-debug.apk文件中似乎没有看到任何和JavaScript代码相关的文件,这是什么情况?试一下单独安装app-debug.apk然后直接运行。你会发现无法运行程序。因为React Packager没有启动。我们安装在手机上的只是一个客户端程序,它必须和远程的服务端通信来更新代码修改。app-debug.apk并不是真正的应用安装包。

用下面的命令来构建一个完整的app包:

cd androidgradlew assembleRelease

一个新的APK文件会生成在helloworld\android\app\build\outputs\apk\ app-release-unsigned.apk

打开这个APK比较下,可以发现多了asset资源目录:

react native asset

把这个APK签名之后就可以发布到app市场了。

React Native的组件资源

React Native有很多自定义的组件,可以在上搜索下载。

学习视频

如果可以访问YouTube,可以看下这个视频:

不用Android Studio和Xcode也可以开发React Native应用

Facebook最近又发布了一个新的工具Create React Native App。有了这个工具,开发者不需要安装Android Studio和Xcode就可以开发React Native应用了。

npm i -g create-react-native-appcreate-react-native-app helloworldcd helloworldnpm start

命令行运行之后会生成一个二维码。在手机上先安装,然后扫描二维码来加载程序。原理和app-debug.apk是一样的,这只是一个客户端。你需要保证手机和PC在同一个局域网下。

安装Expo App

如果你是iOS开发者,Expo app安装很简单,在iTunes上可以找到。如果你需要安装Android版本,需要用Google Play安装。如果无法访问Google Play,可以用来下载Google Play上的APK。Expo app的包名是host.exp.exponent

看下这个工程和React Native命令生成的有什么差别:

react native project comparison

这里没有Android目录以及index.android.js文件。

需要注意的是使用这个工程开发,只能使用JavaScript。如果需要用到native code,要把工程转换成React Native工程。这个过程不可逆。运行命令:

npm run eject

react native expo eject

再比较下结构:

expo eject project structure

现在差不多一样了。运行程序:

react-native run-android

 

转载于:https://my.oschina.net/yushulx/blog/869115

你可能感兴趣的文章
Oracle APEX 系列文章5:在阿里云上打造属于你自己的APEX完整开发环境 (进一步优化)...
查看>>
大型分布式C++框架《二:大包处理过程》
查看>>
携手科技出版巨擎 推动中国IT人才成长 51CTO与人民邮电出版社达成战略合作
查看>>
11g RAC 如何备份OCR,利用备份恢复OCR,ocrdump
查看>>
WCF序列化
查看>>
uCos-III移植到STM32F10x
查看>>
Centos下源码包安装lamp常见的几个小问题
查看>>
angularjs-过滤输入filter
查看>>
angularjs-过滤输入filter
查看>>
RAC 环境下的重要参数
查看>>
你知道,人工智能如何增强数据中心的安全性
查看>>
苗圩:从国家战略高度加快推进智能网联汽车发展
查看>>
团队如何进行Code Review
查看>>
中国联通开展多场景蜂窝车联网业务示范
查看>>
1星|《追随》:洞察力太差,有效信息太少,咨询经验太少(举的例子以跟自己孩子的互动为主)...
查看>>
Android:MVC模式(上)
查看>>
vi编辑器的使用(2)
查看>>
bootstrap-.col-md-* 栅格类
查看>>
解释器模式-类行为型
查看>>
虚拟现实强势“入侵”游戏盛典China Joy
查看>>