Skip to content

配置

开发配置

环境要求

  1. 安装 Node, JDK17(按照所需要的版本),Android Studio 及对应的 Android SDK
  2. 设置一系列的环境变量,包括 ANDROID_HOME, JAVA_HOME 等
  3. 使用 Android Studio 创建一个模拟器(或者下载一个模拟器)

请按照 React 中文网来搭建环境 https://reactnative.cn/docs/environment-setup

测试机

模拟机

可以使用 Android Studio 创建的模拟机,也可以自行下载模拟机(例如 MuMu 模拟器)

  1. 本地连接

一般模拟器是和主机虚拟连接,通过 10.0.2.2 通信,即在模拟器中,访问 10.0.2.2 即是访问主机

Terminal window
#通过 adb 连接,例如 MuMu 模拟机
adb connect 127.0.0.1:7555
  1. 网络连接-局域网络

打开模拟器的网卡桥接,直接访问网络,此时模拟器和主机处于同一局域网,例如 MuMu

Terminal window
adb connect $IP:5555
  1. 网络连接-本地映射
Terminal window
# 查看模拟器 IP,默认为 _5554_
adb devices
#连接该模拟器,telnet 命令比较早,需要手动开启 https://developer.aliyun.com/article/1169641
telnet localhost 5554
# 认证,根据 telnet 提供的认证证书路径,拷贝内部的token
# 默认路径 C:\Users\$user\.emulator_console_auth_token
auth $token
# 开启网络映射
redir add udp:7010:7010
# 查看是否开启成功
redir list

接下来,在主机上访问 7010 端口,即可访问模拟器

真机

USB 连接到手机/平板,打开开发者选项,允许 USB 调试,通过 adb 连接。也可以使用 WIFI

  1. 首先使用 USB 连接真机,使用 adb 打开 真机端口
Terminal window
adb tcpip 5555
  1. 连接真机
Terminal window
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" />