React-native 使用js编写android和ios程序,前端时间开始支持android,本人根据官方的教程,先安装开发环境,然后运行hello world,最后看了下官方提供的实例程序UIExplorer,感觉还不错。
对android相对熟悉一点,首先关注android部分,android使用grader编译,可以导入工程到android studio或者idea中,也可以使用命令行编译。在android studio中运行以后可以普通的android程序一样,点运行按钮以后就开始编译,如果电脑上连接好了安卓设备或者模拟器就可以成功运行。(采用命令行有的设备会安装失败需要手动安装)
这里运行的是一个loder程序,通过loader程序会加载本地服务器端的js文件,服务器端由note.js提供,使用命令“adb reverse tcp:8081 tcp:8081” 可以将本地端口绑定到设备上,由于本人adb的版本原因 命令执行失败,因此在loader中设置ip地址来访问服务器端,
服务器端程序当然要启动才行,运行react-native run-android 启动服务器端和编译安装loader是同时进行的。
另外也可以单独运行服务器端程序,react native start 或者在master目录中运行 ./install/install.sh
ios也是采用类似的方式,创建项目后会生成项目文件,导入Xcode直接运行就可以了,运行的时候同样会启动服务端。
loader程序一般是固定不变的,修改服务端的js文件,然后再loader上reload就会加载新的js文件,这样对提高开发效率是很有好处的,
编写android的程序,当然是要返回测试的,虽然打包安装的过程都是全自动的,但不停的这样操作是很费时间的,如果机器配置不好每次修改后程序运行都要等一段时间。
当然,这样看来也可以对应用进行热更新,就像网站一样,如果更新了服务器端程序,客户访问到的就是修改后的网站。但是代码的加密又会是新的问题。
就android而言,loader程序代码,和普通的安卓项目是基本上是一样的,不同的是引入了react-native的lib(核心库),lib已第三方库的形式存在,使用android studio只需要填写lib名称,就会自动下载,从被注释的代码可以看到,也可以从源码引入lib工程,如果源码不满足你的要求就可以直接去修改。
loader的作用就是提供js的执行环境,react是将android自带的控件函数之类映射到js中,ios也是采用类似的方式,通过js来调用原有的函数,而不是自己重新实现了一个界面框架。因此android端的demo和ios的是有一些差别的。
js的执行环境是采用JavaScriptCore引擎,调试时根据官方的介绍说放在浏览器端执行的,使用V8引擎。
配置开发环境,根据文档需要安装NDK,实际上如果不自己编译react-native的核心库,是不需要NDK的,应用程序一般直接引入lib就可以了。
理论上运行hello world,只需要loader程序和一个note.js的服务器就可以了,如果做开发还需要loader的源代码以增加原生的扩展,调试的话,react-native提供了谷歌浏览器的插件来调试。
官方的文档目前是苹果系统下进行的,如果要开发ios的应用是必须使用苹果系统的,没有Xcode ios的loader无法编译。
不过,如果只想看看android的效果,使用windows应该也是可以的。理论上只需要装上note.js的服务器环境,并且导入android项目源码就可以了。
当然本人并没有测试,准备有时间到windows下试试,到时候再发文章吧,敬请期待.....
更多精彩内容,请关注微信公众号:zhaojieTec

转载于:https://www.cnblogs.com/zhaojietec/p/4851629.html

React-Native测试报告相关推荐

  1. fragment中文网_更新 · React Native 中文网

    时刻将 React Native 更新到最新的版本,可以获得更多 API.视图.开发者工具以及其他一些好东西(译注:官方开发任务繁重,人手紧缺,几乎不会对旧版本提供维护支持,所以即便更新可能带来一些兼 ...

  2. React Native —— App

    使用 React Native 作为 app 框架,Redux 作为数据层,因此我们需要选用一些支持性的技术和工具: 开源的 Parse Server 做数据存储 - 运行在 Node.js 上. F ...

  3. 【React Native】iOS原生导航跳转RN页面

    上一篇介绍了React Native使用react-navigation进行导航跳转页面,现在我们介绍下原生iOS中怎么导航进一个新的React Native页面. 一.原生跳转React Nativ ...

  4. 【React Native】react-navigation导航使用方法

    目录 集成react-navigation 使用react-navigation 上一篇介绍了如何在已有iOS项目中集成React Native.这一篇我们把上一篇的demo做下拓展,添加点击电影跳转 ...

  5. 给iOS开发者的React Native入门使用教程

    目录 一. 原生iOS项目集成React Native 二. 原生跳转RN页面 三. 显示豆瓣热门电影列表 四. 改为导航 五.完整源代码 一. 原生iOS项目集成React Native 创建一个新 ...

  6. 对比React Native、dcloud、LuaView三个框架技术(内部)

    转载自:http://www.jianshu.com/p/ee1cdb33db8d 主要对比React Native和5+SDK(就是dcloud的SDK)两个: 开发语言:三个都是用其他语言来统一开 ...

  7. 初步了解React Native的新组件库firstBorn

    first-born is a React Native UI Component Framework, which follows the design methodology Atomic Des ...

  8. 我在React Native中构建时获得的经验教训

    by Amanda Bullington 通过阿曼达·布林顿(Amanda Bullington) 我在React Native中构建时获得的经验教训 (Lessons I learned while ...

  9. React Native开源项目如何运行(附一波开源项目)

    学习任何技术,最快捷的方法就是学习完基础语法,然后模仿开源项目进行学习,React Native也不例外.React Native推出了1年多了, 开源项目太多了,我们以其中一个举例子.给大家演示下如 ...

  10. React Native常用组件之ListView

    1. ListView常用属性 ScrollView 相关属性样式全部继承 dataSource ListViewDataSource 设置ListView的数据源 initialListSize n ...

最新文章

  1. 11-flutter事件监听
  2. QGC开发(一)---编译构建源码
  3. RESTful之视图概览和视图说明
  4. 【原创】FPGA (Verilog/NIOS II/Microblaze) 编程小提醒
  5. 程序员交流平台_「建议收藏」10个适合程序员逛的在线社区
  6. SAP Spartacus ProductService.get的几个调用场景
  7. 模板 字段_劲爆新功能:轻流文字识别(OCR)功能支持自定义识别模板啦
  8. HDFS Federation在美团点评的应用与改进
  9. java s结尾的工具类_FilenameUtils工具类
  10. 几个交换问题的咨询?
  11. JSON.parse()函数处理json格式字符串方法
  12. 使用Enide Studio 2014 IDE来表达JS WebApplication
  13. Mysql查询字段去除指定列重复数据
  14. android黑域系统文件,优雅地使用安卓手机,黑域免root使用教程
  15. 黑客站在 ATM 面前,机器就直接吐出钞票,他们是怎么做到的?
  16. [WPF] 使用 Effect 玩玩阴影、内阴影、 长阴影
  17. Java用HttpClient爬大学英语四六级考试成绩查询接口
  18. ipad显示连接不到商店服务器,iPad无法连接App Store 打不开怎么办
  19. SQLite+python
  20. Spring boot实训开发个人博客(二)详情页

热门文章

  1. portal认证 php,如何用PHP制作OSSH 免费版华为Portal系统认证前端页面
  2. mysql weindow 安装_windows下怎么安装mysql
  3. oracle建共享dblink,oracle建多个dblink
  4. leetcode刷题:LRU缓存淘汰算法
  5. go的转义字符,字符串本身带有特殊符号
  6. java基础语法的书_第一章--Java基础语法
  7. python __getattribute__
  8. Elasticsearch IK分词器
  9. 图像识别 RGB HSV
  10. git 应用 远程仓库分歧