无需AS通过命令行启动安卓模拟器

背景

我是做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优先级提前才可以直接运行。
无需AS通过命令行启动安卓模拟器

(未成功)后台运行

这样运行终端关闭模拟器就会关闭,这可能不是我们想要的效果。如何后台运行呢?
命令如下:

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

上一篇:Unity3D学习笔记——Android重力感应控制小球


下一篇:抖音数据采集教程,跨平台模拟执行AndroidNativeEmu手册