背景
我是做RN开发的,要经常启动安卓模拟器来测试。时间久了,Android Studio
成安卓模拟器启动器了。每次打开AS还是挺久的,所以就想直接通过命令行来启动安卓模拟器,这样会快很多。
Android SDK 包含一个 Android 设备模拟器,这是一台在您的计算机上运行的虚拟设备。有了 Android 模拟器,在您开发和测试 Android 应用时就不需要使用实体设备。
本页面介绍了可与 Android 模拟器一起使用的命令行功能。 如需了解如何使用 Android 模拟器界面,请参阅在 Android 模拟器上运行应用。
获取模拟器列表
如需查看 AVD 名称的列表,请输入以下命令:
emulator -list-avds
比如,我这边的执行结果如下:
emulator -list-avds
Pixel_2_API_3
也就是说明,我这边有一个名为Pixel_2_API_3
的AVD
使用此选项时,系统会显示 Android 主目录中的 AVD 名称列表。请注意,您可以通过将 ANDROID_SDK_HOME 环境变量设为以下目录来替换默认主目录:一个存储了所有配置和 AVD 内容的用户专属目录的根目录。您可以在启动虚拟设备之前在终端窗口中设置该环境变量,也可以通过操作系统中的用户设置进行设置;例如,在 Linux 上的 .bashrc 文件中。
如需停止 Android 模拟器,关闭模拟器窗口即可。
命令行运行
启动模拟器
除了在运行的项目中启动模拟器或通过 AVD 管理器启动模拟器,您还可以使用 emulator 命令启动模拟器。
以下是从终端提示符启动虚拟设备的基本命令行语法:
emulator -avd avd_name [ {-option [value]} … ]
或
emulator @avd_name [ {-option [value]} … ]
我这里是macOS中运行,其他操作系统应该是类似的。
#进入安卓模拟器的目录
cd ~/Library/Android/sdk/emulator/
#运行安卓模拟器Pixel_2_API_30替换成你自己的AVD名称即可
emulator -avd Pixel_2_API_30 -netdelay none -netspeed full
或者这样打开
~/Library/Android/sdk/emulator/emulator -avd Pixel_2_API_30 -netdelay none -netspeed full
注意: 如果你直接执行
emulator -avd Pixel_2_API_30 -netdelay none -netspeed full
可能会出现报错的情况,因为有可能path中的emulator命令可能指向的是~/Library/Android/sdk/tools/emulator
,所以要在PATH中把~/Library/Android/sdk/emulator/emulator
优先级提前才可以直接运行。
(未成功)后台运行
这样运行终端关闭模拟器就会关闭,这可能不是我们想要的效果。如何后台运行呢?
命令如下:
nohup emulator -avd Pixel_2_API_30 -netdelay none -netspeed full > ~/Library/Android/sdk/emulator/log.out 2>&1 &
但是我发现关闭了终端,模拟器还是会自动关闭。选将就使用一下吧,后面研究出来解决办法在更新文章。
参考
https://developer.android.com/studio/run/emulator-commandline?hl=zh-cn