react-native 简介及环境
概要
- react native
- 环境搭建
- hello react native
- react native 发布
react native
优势
- 不用再学习 OC,Swift,Java,Kotlin 等
- 复用 react 开发的种种好处
- 开发体验好(即时编译)
- 编译出来的是原生应用,不是 html5 app,也不是 hybrid app
- 可以方便的和原生代码写的控件集成
劣势
- 还在发展中,更新频繁,既有可能存在暗坑
- 性能调优的方式没有真正的原生开发多
环境搭建
npm install -g react-native-cli
npm install -g create-react-native-app
npm install -g watchman
hello react native
创建工程
create-react-native-app sample
启动工程
cd sample
yarn start
通过 expo 来查看运行结果
发布
android 发布
下载 android 环境
- 下载 android sdk(如果不用 android studio 开发,可以只下载 sdk 即可)
- 下载地址:https://developer.android.com/studio/index.html
配置 android 环境
解压 sdk 到 opt/android
配置 .zshenv / .bashenv
export ANDROID_HOME=/opt/android
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/platform-tools
安装 platform-tools
cd $ANDROID_HOME
./tools/bin/sdkmanager platform-tools
安装 build-tools
cd $ANDROID_HOME
./tools/bin/sdkmanager "build-tools;23.0.1"
创建签名
yarn eject
cd android
keytool -genkey -v -keystore my-app-key.keystore -alias my-app-alias -keyalg RSA -keysize 2048 -validity 10000
创建签名时,密码用 123456
配置签名
vim ./android/gradle.properties
MYAPP_RELEASE_STORE_FILE=my-app-key.keystore
MYAPP_RELEASE_KEY_ALIAS=my-app-alias
MYAPP_RELEASE_STORE_PASSWORD=123456
MYAPP_RELEASE_KEY_PASSWORD=123456
把生成的文件 my-app-key.keystore 放入 android/app 文件夹下
vim ./android/app/build.gradle
android {
defaultConfig {... ...}
signingConfigs {
release {
if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
storeFile file(MYAPP_RELEASE_STORE_FILE)
storePassword MYAPP_RELEASE_STORE_PASSWORD
keyAlias MYAPP_RELEASE_KEY_ALIAS
keyPassword MYAPP_RELEASE_KEY_PASSWORD
}
}
}
buildTypes {
release {
... ...
signingConfig signingConfigs.release
}
}
}
发布
cd android
./gradlew assembleRelease
生成的 apk 在 app/build/outputs/apk 下
附录
启动一直卡在 Starting packager…
修改如下内核参数后再启动:
sudo sysctl -w fs.inotify.max_user_watches=1000000
永久修改此参数,可以把这个配置加入到: /etc/sysctl.conf 中
./gradlew assembleRelease 时无法运行 aapt
java.io.IOException: Cannot run program "/opt/android/build-tools/23.0.1/aapt": error=2, No such file or directory
安装 确实的 package
sudo apt-get install lib32stdc++6 lib32z1
Couldn't find preset "babel-preset-react-native-stage-0/decorator-support"
安装相应的 package
cd ..
yarn add babel-preset-react-native-stage-0
cd android
./gradlew assembleRelease
react-native 简介及环境的更多相关文章
- react-native —— 在Windows下搭建React Native Android开发环境
在Windows下搭建React Native Android开发环境 前段时间在开发者头条收藏了 @天地之灵_邓鋆 分享的<在Windows下搭建React Native Android开发环 ...
- react native 学习一(环境搭配和常见错误的解决)
react native 学习一(环境搭配) 首页,按照http://reactnative.cn/docs/0.30/getting-started.html#content上的介绍,下载安装pyt ...
- React Native 简介:用 JavaScript 搭建 iOS 应用(2)
[编者按]本篇文章的作者是 Joyce Echessa--渥合数位服务创办人,毕业于台湾大学,近年来专注于协助客户进行 App 软体以及网站开发.本篇文章中,作者介绍通过 React Native 框 ...
- React Native 简介:用 JavaScript 搭建 iOS 应用 (1)
[编者按]本篇文章的作者是 Joyce Echessa--渥合数位服务创办人,毕业于台湾大学,近年来专注于协助客户进行 App 软体以及网站开发.本篇文章中,作者介绍通过 React Native 框 ...
- react-native —— 在Mac上配置React Native Android开发环境排坑总结
配置React Native Android开发环境总结 1.卸载Android Studio,在终端(terminal)执行以下命令: rm -Rf /Applications/Android\ S ...
- React Native搭建开发环境 之 --走过的坑
React Native是使用JavaScript和React编写原生移动应用 我的开发平台是基于windows系统,所以只支持android,要是想开发ios系统,那就只能考虑使用沙盒环境 接下来就 ...
- 《React Native 精解与实战》书籍连载「React 与 React Native 简介」
此文是我的出版书籍<React Native 精解与实战>连载分享,此书由机械工业出版社出版,书中详解了 React Native 框架底层原理.React Native 组件布局.组件与 ...
- 【React Native开发】React Native For Android环境配置以及第一个实例(1)
年9月15日也公布了ReactNative for Android,尽管Android版本号的项目公布比較迟,可是也没有阻挡了广大开发人员的热情.能够这样讲在2015年移动平台市场上有两个方向技术研究 ...
- 一、React Native 搭建开发环境(1)(Mac OS - IOS项目篇)
React Native是Facebook推出的一个开发IOS和安卓APP的技术.至于更多的详情,这里不再描述,大家可以自行百度它的定义. 原因:由于我想在一台电脑上同时开发IOS和Android两个 ...
- React Native IOS ---基础环境搭建(前端架构师)
React Native -IOS 开发环境搭建 web架构(基础) 安装依赖 * 必须安装的依赖有:Node.Watchman 和 React Native 命令行工具以及 Xcode. npm 镜 ...
随机推荐
- IPv6笔记
单播地址包含的几种类型:1.AGUA地址:2000::到3FFF:FFFF:FFFF:FFFF:FFFF..... 一个接口可以拥有若干个AGUA地址2.Link-Local 地址:FE80::/10 ...
- 我的python渗透测试工具之主机嗅探
嗅探工具的主要目标是基于UDP发现目标网络中的存活主机,选择UDP的原因是UDP访问过程开销小. 由于很多的操作系统在处理UDP端口的闭合时都会存在一个共性,我们也正是利用这个共性来开展确定此IP上是 ...
- 跨域学习笔记2--WebApi 跨域问题解决方案:CORS
自己并不懂,在此先记录下来,留待以后学习... 正文 前言:上篇总结了下WebApi的接口测试工具的使用,这篇接着来看看WebAPI的另一个常见问题:跨域问题.本篇主要从实例的角度分享下CORS解决跨 ...
- C#对接----韵达开发平台--取电子面单
引子 最近根据业务的一些需求,所以放弃从快递鸟对接去电子面单,转而直接对接韵达开发平台:http://open.yundasys.com/ ,中间踩了一些坑,借此做了一个小案例给大伙,瞅瞅,若有需改进 ...
- JVM-Ubuntu18.04.1下编译OpenJDK8
近期开始学习JVM,看的是周老师的<深入理解Java虚拟机>,打算先自己编译个JDK来提升对JVM的兴趣.本文分三部分来描述编译OpenJDK的过程,分别是编译前准备工作.构建编译环境.进 ...
- 缓存MEMCACHE php调用(一)
在项目中,涉及大访问量时,合理的使用缓存能减轻数据库的压力,同时提升用户体验.即在非实时性的需求的前提下,一小段时间内(若干秒),用于显示的数据从缓存中获取的,而不用直接读取数据库,能有效的减少数据库 ...
- Django引入静态文件
在HTML文件中引入方式: 简单引入一个bootstrap中的内敛表单,效果图如下:
- OSGI企业应用开发(十五)基于Spring、Mybatis、Spring MVC实现一个登录应用
前面文章中,我们已经完成了OSGI应用中Spring.Mybatis.Spring MVC的整合,本篇文章我们就在这个基础上来完成一个简单的登录应用,其中用户名和密码需要从数据库中查询. 前面文章中, ...
- C#:获取视频某一帧的缩略图
读取方式:使用ffmpeg读取,所以需要先下载ffmpeg.网上资源有很多. 原理是通过ffmpeg执行一条命令获取视频某一帧的缩略图. 首先,需要获取视频的帧高度和帧宽度,这样获取的缩略图才不会变形 ...
- [随时更新][Android]小问题记录
此文随时更新,旨在记录平时遇到的不值得单独写博客记录的细节问题,当然如果问题有拓展将会另外写博客. 原文地址请保留http://www.cnblogs.com/rossoneri/p/4040314. ...