在没有GUI的情况下运行Android模拟器(无头Android)

时间:2014-01-01 13:23:16

标签: android android-emulator adb headless

如何在没有GUI(无头Android)的情况下运行模拟器?

我的要求是在模拟器上运行无头 Android 。如果我使用ro.config.headless 1,这是否正确?或者禁用 zygote

5 个答案:

答案 0 :(得分:26)

来自:http://paulemtz.blogspot.com/2013/05/android-testing-in-headless-emulator.html

  

然后,运行无头模拟器:

emulator -avd test -no-audio -no-window
  

'-no-skin'选项删除仿真器按钮,例如家庭和其他硬件键盘按钮。

     

'-no-audio'选项禁用音频支持。

     

最后,'-no-window'选项禁用模拟器的图形窗口显示。

请注意,需要修改-avd test以引用您的特定模拟器图像(AVD)。

答案 1 :(得分:2)

要实现的一种选择是在模拟器运行时停止zygote服务。停止zygote进程(也称为app_process)时,所有在系统启动时从zygote分叉的系统服务都将关闭。只有少数本机系统服务将在运行。模拟器的显示屏应显示启动徽标(或动画)。

停止zygote的步骤如下:

  • adb shell
  • su大多数仿真器映像都有/system/xbin/su
  • stop zygote

之后,您可以探索service list上运行的服务数量减少。对于Android Runtime服务的重要操作将停止,例如

activity: [] // ActivityManager
package: [] // PackageManager
display: [] // DisplayManager
...

要开始zygote,请执行:

  • start zygote

注意:使用@CommonsWare的解决方案,您仍然需要运行zygote和大多数 Android 系统服务。

答案 2 :(得分:2)

29.2.11开始,您需要使用-no-window选项而不是emulator-headless二进制文件:

二进制emulator-headless现在已停用。现在通过emulator -no-window启动了无头的引擎构建,从而统一了以前分开的(但相似的)路径。

https://androidstudio.googleblog.com/2019/12/emulator-29211-and-amd-hypervisor-12-to.html

答案 3 :(得分:1)

Android Emulator 28.1.8现在支持在无头模式(emulator-headless)中运行模拟器:https://androidstudio.googleblog.com/2019/02/emulator-2818-canary.html

答案 4 :(得分:0)

在我的 ssh 服务器 ubuntu 18.4 上构建 AOSP 后,我遇到了模拟器无法运行的问题。

<块引用>

模拟器:警告:调整系统分区大小以匹配图像文件 (2562 MB > 800 MB) QXcbConnection:无法连接到显示器 中止(核心转储)

我使用了 emulator -no-window 并发现模拟器进程已启动。 现在我可以使用 ADB 来验证 AOSP 更改