配置
开发配置
环境要求
- 安装 Node, JDK17(按照所需要的版本),Android Studio 及对应的 Android SDK
- 设置一系列的环境变量,包括 ANDROID_HOME, JAVA_HOME 等
- 使用 Android Studio 创建一个模拟器(或者下载一个模拟器)
请按照 React 中文网来搭建环境 https://reactnative.cn/docs/environment-setup
测试机
模拟机
可以使用 Android Studio 创建的模拟机,也可以自行下载模拟机(例如 MuMu 模拟器)
- 本地连接
一般模拟器是和主机虚拟连接,通过 10.0.2.2 通信,即在模拟器中,访问 10.0.2.2 即是访问主机
#通过 adb 连接,例如 MuMu 模拟机adb connect 127.0.0.1:7555- 网络连接-局域网络
打开模拟器的网卡桥接,直接访问网络,此时模拟器和主机处于同一局域网,例如 MuMu
adb connect $IP:5555- 网络连接-本地映射
# 查看模拟器 IP,默认为 _5554_adb devices
#连接该模拟器,telnet 命令比较早,需要手动开启 https://developer.aliyun.com/article/1169641telnet localhost 5554
# 认证,根据 telnet 提供的认证证书路径,拷贝内部的token# 默认路径 C:\Users\$user\.emulator_console_auth_tokenauth $token
# 开启网络映射redir add udp:7010:7010
# 查看是否开启成功redir list接下来,在主机上访问 7010 端口,即可访问模拟器
真机
USB 连接到手机/平板,打开开发者选项,允许 USB 调试,通过 adb 连接。也可以使用 WIFI
- 首先使用 USB 连接真机,使用 adb 打开 真机端口
adb tcpip 5555- 连接真机
adb connect $ip:5555项目
项目名称
android\app\src\main\res\values\strings.xml,在该文件下修改项目名称
<resources> <string name="app_name">rn_app_name</string></resources>项目图标
android\app\src\main\AndroidManifest.xml,在该文件下定义了图标路径
<application ... android:icon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher_round"> </application>在 mipmap-hdpi,mipmap-ldpi 等目录下,替换项目图标,图标可以由 wuruihong 上传图片制作
项目版本
android\app\build.gradle,在该文件下定义了版本号
def getAppVersion() { def inputFile = new File("../package.json") def packageJson = new JsonSlurper().parseText(inputFile.text) return packageJson["version"]}
def appVersion = getAppVersion()
android { defaultConfig:{ ... versionName appVersion }}项目权限
android\app\src\main\AndroidManifest.xml
<!-- 网络权限 --><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" /><uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"></uses-permission><uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission><uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<!-- 写文件权限 --><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />