如何在没有GUI(无头Android)的情况下运行模拟器?
我的要求是在模拟器上运行无头 Android 。如果我使用ro.config.headless 1
,这是否正确?或者禁用 zygote ?
答案 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 更改