我们在开发react-native的时候,需要先启动安卓模拟器,然后执行npm start启动编译。正常启动模拟器的方式就是:

1、打开android studio

2、打开一个项目,随便什么吧

3、点击右上角 AVD Manager

4、选择一个模拟器,并双击

对的,如果你用的是android studio,那没什么问题的,举手之劳的事儿。

但是我们一般用webstorm,因为RN是android和ios共享的,所以用xcode和android studio都不舒服。

福利来了

笔者给你们一个快速打开的脚本。你可以保存到项目的文件里,比如 android.sh

#!/usr/bin/env bash

ANDROID_PATH_EXIST=`cat ~/.bash_profile | grep ANDROID_NDK=`

if [ "$ANDROID_PATH_EXIST" == "" ]; then

echo '

export ANDROID_NDK=$HOME/Library/Android/ndk

' >> ~/.bash_profile

source $HOME/.bash_profile

fi

avds=`ls ~/.android/avd | grep .avd | sed "s#.avd##"`

avds=(${avds})

avd_count=`ls ~/.android/avd | grep .avd | wc -l`

echo ""

echo "安卓模拟器列表:"

echo ""

ls ~/.android/avd | grep .avd | sed "s#.avd##"

echo ""

if [ ${avd_count} == 0 ]; then

echo "没有找到安卓模拟器,请到android studio中添加"

exit 1

elif [ ${avd_count} == 1 ]; then

avd=${avds[0]}

else

# 需要从刚才的列表里任选一个

read -p "你要启动哪个模拟器:" avd

echo ""

fi

process=`ps aux | grep "\-avd ${avd}" | grep -v grep`

process_count=`echo ${process} | wc -l`

if [ "${process}" != "" ] && [ ${process_count} == 1 ]; then

process_id=`echo ${process} | awk '{print $2}'`

echo "正在强制关闭模拟器..."

kill -9 ${process_id}

# 防止再次启动失败

sleep 1

fi

echo "模拟器${avd}正在启动..."

cd ~/Library/Android/sdk/tools/

emulator -avd ${avd} &

echo "模拟器启动完成"

怎么用呢?

sh android.sh && npm start

或者干脆写进npm start的脚本里,更省事的

顺便说一句,ios的启动也是用脚本的

react-native run-ios --port 8081 --simulator 'iPhone 7'

mac android 模拟器启动,react-native使用脚本启动android模拟器(macos)相关推荐

  1. vscode 连接夜神模拟器 运行 react native项目 (很简单的方法)

    前言:我这种方式不需要过多配置,只是需要先启动Android studio ,之后再启动vsCode 准备阶段:下载夜神模拟器 1. 开启夜神服务 进入到夜神安装的bin目录下,执行 nox_adb. ...

  2. 混合开发架构|Android工程集成React Native、Flutter、ReactJs

    混合开发架构|Android工程集成React Native.Flutter.ReactJs 架构设计说明 创建安卓原生工程 创建Flutter 集成嵌入原生工程 创建React Native 解决R ...

  3. [RN] React Native 键盘管理 在Android TextInput遮盖,上移等问题解决办法

    [RN] React Native 键盘管理 在Android TextInput遮盖,上移等问题解决办法 参考文章: (1)[RN] React Native 键盘管理 在Android TextI ...

  4. 在 iOS 与 Android 上实现 React Native 应用深度链接,通过 URL 打开到指定页面

    在 iOS 与 Android 上实现 React Native 应用深度链接,使得应用可以通过 我们生活在一个万物兼可分享的年代,而分享的过程,几乎最终都会分享某一个链接,那么,作为开发者,最常遇到 ...

  5. webstorm 运行android,Windows React Native环境搭建:webstorm+android studio 及解决热更新

    工具准备: SDK Android SDK Build-tools:23.0.1 SDK Platform:Android N .6.0 .5.1.1.5.0.1.4.4.2.4.1.2 Androi ...

  6. React Native之js调用Android原生使用Callback传递结果给js

    如果不清楚js如何调用Android原生,可以先参考我的这篇博客React Native实现js调用安卓原生代码 1 问题 上面的文章只是调用安卓原生显示Toast,但是我们一般会需要调用安卓的代码然 ...

  7. android 倒计时封装,react native中的聊天气泡及timer封装成的发送验证码倒计时

    其实,今天我想把我近期遇到的坑都总结一下: 1.goBack的跨页面跳转,又两种方法,一可以像兔哥那样修改navigation源码,二可以用navigationActions 2.父子组件的传值,一可 ...

  8. React Native App设置amp;Android版发布

    React Native系列 <逻辑性最强的React Native环境搭建与调试>  <ReactNative开发工具有这一篇足矣>  <解决React Native ...

  9. android ios 混合编程,React Native与原生(Android、iOS)混编,三端痛点解析

    在做RN混编项目的时候或者面试的时候经常会遇到一些问题,总结起来有以下几种: 1.过多的注册RN组件( AppRegistry.registerComponent() ); 2.从原生跳转指定的RN页 ...

  10. react native极光推送android和ios证书申请

    这两天终于把极光推送的整个流程跑通了,在android和ios上均能正常接收消息,并可在本地存储消息,这篇文章 先讲一下如何在极光上申请android和ios证书,下一篇文章讲解具体在react na ...

最新文章

  1. 2030全球新出行产业报告:2.2万亿美元蛋糕将这样分
  2. 页面滚动到指定class样式位置
  3. RxSwift之深入解析场景特征序列的使用和底层实现
  4. 计算机 游戏 排名2015年,2015十大高性能游戏笔记本电脑排行 最强游戏本推荐
  5. c语言是如何实现泛型链表
  6. android获取sd的大小,Android实现获取SD卡总容量,可用大小,机身内存总容量及可用大小的方法...
  7. OLAP-impala-大数据Week13-DAY6-impala
  8. 顶点计划:秸秆问题讨论
  9. ENVI去除NDVI/EVI异常值、NAN(not a number,无效值)、无穷大(inf)
  10. PLC有几种编程语言以及它们的特点是什么
  11. IDEA translation翻译插件报错-》更新TKK失败请检查网络
  12. Swagger导出pdf文档
  13. 百度地图秘钥未授权问题
  14. 各类开发生产环境缩写
  15. BZOJ1050 [HAOI2006]旅行comf (并查集)
  16. 唯有卡拉特拉瓦,才敢让建筑飞起来!
  17. 【英语语法】句子类型
  18. THREEJS导入外部OBJ+MTL后内存优化
  19. 曼尼托巴大学计算机科学专业怎么样,加拿大曼尼托巴大学优势专业有哪些
  20. Jenkins持续集成结合Docker Swarm集群实现Web应用部署的发布

热门文章

  1. 安庆集团-冲刺日志(第二天)
  2. Classic Shell给你的Win8/7装上更好用的开始菜单
  3. 机器人的弊议论文_机器人的利弊议论文
  4. 如何判断自己的IP是否为公网IP?
  5. Java将字符串中的中文数字转化成阿拉伯数字或阿拉伯数字转化成中文数字
  6. 大规模知识图谱数据存储实战解析
  7. 背包问题之0-1背包算法详解
  8. 英语学习第5篇_并列句
  9. 用unity制作简单的AR,亲测有效
  10. python误差修正模型_误差修正模型ECM_eviews误差修正模型