React Native从入门到深入二、配置环境

Facebook开源React Native也势要统一移动端编程语言,而其提前发布React Native for Android更是引得国内外开发者一众热捧。MDCC 2015平台与技术Android专场与会讲师——阿里巴巴工程师 廖祜秋以《React Native for Android》为主题,将在大会上深度分享React Native 下的 Android 开发,先行撰文对React Native进行实战

环境配置

需要安装的有:

Homebrew

Homebrew 是 Mac 中的一个包管理器。没有安装的话,点击 安装,我的版本如下:

mac-2:~ srain$ brew -v

Homebrew 0.9.5 (git revision ac9a7; last commit 2015-09-21)

版本过低将会导致无法安装后续几个组件。可用 brew update 升级。

Node.js 和 npm

Node.js 需要 4.0 及其以上版本。安装好之后,npm 也有了。

通过 nvm 安装 Node.js

nvm 是 Node.js 的版本管理器,可以轻松安装各个版本的 Node.js 版本。

安装 nvm 可以通过 Homebrew 安装:

brew install nvm


然后安装 Node.js:

nvm install node && nvm alias default node

也可以直接下载安装 Node.js: https://nodejs.org/en/download/

安装好之后,如下:

mac-2:react-native srain$ node -v

v4.0.0

mac-2:react-native srain$ npm -v

2.14.2

安装 watchman 和 flow

这两个包分别是监控文件变化和类型检查的。安装如下:

brew install watchman

brew install flow

安装 React-Native

通过 npm安装即可:

npm install -g react-native-cli

App开发环境的设置

iOS

XCode 6.3 及其以上即可。

Android

这个比较麻烦。

设置环境变量:ANDROID_HOME

export ANDROID_HOME=/usr/local/opt/android-sdk

SDK Manager 安装以下包:

Android SDK Build-tools version 23.0.1

Android 6.0 (API 23)

Android Support Repository

初始化一个项目

文档提到:

react-native init AwesomeProject

初始化一个项目,其中 AwesomeProject 是项目名字,这个随意。等待一段时间之后(具体视网络情况而定),项目初始化完成。

进入到项目目录:

cd AwesomeProject

mac-2:AwesomeProject srain$ ls -l

total 24

drwxr-xr-x  14 srain  staff  476 Sep 21 09:52 android

-rw-r--r--  1 srain  staff  1023 Sep 21 11:47 index.android.js

-rw-r--r--  1 srain  staff  1065 Sep 20 11:58 index.ios.js

drwxr-xr-x  6 srain  staff  204 Sep 20 11:58 ios

drwxr-xr-x  5 srain  staff  170 Sep 21 10:31 node_modules

-rw-r--r--  1 srain  staff  209 Sep 20 11:58 package.json

其中 android 和 ios 中分别为两个平台的项目文件。index.android.js 和 index.ios.js 为两个页面对应的 js 文件。

运行项目

不管是 iOS 还是 Android,在开发调试阶段,都需要在 Mac 上启动一个 HTTP 服务,称为“Debug Server”,默认运行在 8081 端口,APP 通 Debug Server 加载 js。

iOS 和 Android 的模拟器,连接 Mac 本机的服务都很方便。但是通过 USB 或者 WiFi 连接调试,就稍微麻烦一些了。

iOS

还是非常简单,XCode 打开项目,点击运行就好。修改 index.ios.js, 在模拟器中 ⌘ + R 重新载入 js 即可看到相应的变化。

iOS 真机调试也简单,修改HTTP地址即可。

jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle"];

Android

按照官方文档,需要一个模拟器(Genymotion模拟器也可以)。但是不像 iOS,Android 开发平时更多是直接用真机进行开发和调试,如何运行部署到真机,下面会提到。

运行命令:

react-native run-android

然后就会部署到模拟器,修改 index.android.js ,调出模拟器菜单键,选择重新载入 js 即可看到变化。

Android 真机调试

示例 App 直接部署到真机,红色界面报错,无法连接到 Debug Server。如果是 5.0 或者以上机型,可通过 adb 反向代理端口,将 Mac 端口反向代理到测试机上。

adb reverse tcp:8081 tcp:8081

如果 5.0 以下机器,应用安装到测试机上之后,摇动设备,在弹出菜单中选择 Dev Setting > Debug Server host for device,然后填入 Mac 的 IP 地址(ifconfig 命令可查看本机 IP)

关于修改 DevHelper 来进行和 iOS 一样的开发调试,后续关于热部署时,我会介绍到。

在 Android Studio 中调试开发

我们可能希望在 Android Studio 打开项目,然后编译部署到真机。

这个时候,在命令行启动 Debug Server 即可:

react-native start

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容