我们如何更改 Android 模拟器的构建属性?

Vol*_*ems 5 linux android android-emulator android-studio

我们正在并行运行多个 Android 模拟器。我们如何更改模拟器属性(如制造商、设备名称、产品型号、版本序列号、IMEI 等),以便不同的模拟器同时以不同的属性运行。

我更改一些属性,例如制造商、设备名称、产品型号、内部版本号、IMEI 号,以便模拟器属性看起来像物理设备的属性

Android 开发者官方网站上有一项更改这些属性的规定。您可以从此链接 https://developer.android.com/studio/run/emulator-commandline#advanced(搜索 -prop)获取帮助,但不起作用。

我已经可以更改模拟器的时区。

设置模拟器 (Ubuntu 18.04)

sudo apt install openjdk-8-jdk
wget https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip
unzip sdk-tools-linux-4333796.zip -d android-sdk
Run Code Online (Sandbox Code Playgroud)

在 /etc/environment 中定义 ANDROID_SDK_ROOT=/home/$USER/android-sdk。将 ANDROID_SDK_ROOT/tools 和 ANDROID_SDK_ROOT/platform-tools 添加到系统路径。

设置路径后需要重新登录 确保以上路径均存在。通过命令检查路径

sudo env
Run Code Online (Sandbox Code Playgroud)
/home/$USER/android-sdk/tools/bin/sdkmanager --update
/home/$USER/android-sdk/tools/bin/sdkmanager --licenses
/home/$USER/android-sdk/tools/bin/sdkmanager "system-images;android-28;google_apis;x86"
/home/$USER/android-sdk/tools/bin/sdkmanager "emulator"
/home/$USER/android-sdk/tools/bin/sdkmanager "platform-tools"
/home/$USER/android-sdk/tools/bin/sdkmanager "build-tools;28.0.3"
cd /home/$USER/android-sdk/
mkdir "platforms"
Run Code Online (Sandbox Code Playgroud)

创建模拟器

创建 AVD_0001 。我们可以通过更改名称来创建多个模拟器,例如 AVD_0002,AVD_0003 ...

/home/$USER/android-sdk/tools/bin/avdmanager --verbose create avd --force --name "AVD_0001" --device "pixel" --package "system-images;android-28;google_apis;x86" --tag "google_apis" --abi "x86" -p "/home/$USER/android-sdk/avd/AVD_0001" 
Run Code Online (Sandbox Code Playgroud)

启动多个模拟器

每个模拟器需要两个不同的端口。示例:AVD_0001 (5554,5555)、AVD_0002 (5556,5557)...

sudo /home/$USER/android-sdk/emulator/emulator @AVD_0001 -ports 5554,5555 -timezone America/New_York -no-boot-anim -netdelay none -no-snapshot -no-audio -gpu swiftshader_indirect
Run Code Online (Sandbox Code Playgroud)