如何在没有GUI(无头Android)的情况下运行模拟器?
我的要求是在模拟器上运行无头Android。如果我使用ro.config.headless 1
,这是正确的吗?或者禁用zygote?
实现这一目标的一个选择是在模拟器运行时停止zygote
服务。当停止zygote
进程(又名app_process
)时,系统启动时从zygote
分叉的所有系统服务都会关闭。只会运行少数本机系统服务。模拟器的显示应显示启动徽标(或动画)。
停止zygote
的步骤如下:
adb shell
su
(大多数模拟器图像有/system/xbin/su
)stop zygote
之后,您可以探索使用service list
运行的服务的减少程度。 Android运行时服务的关键将被停止,例如
activity: [] // ActivityManager
package: [] // PackageManager
display: [] // DisplayManager
...
要启动zygote
执行:
start zygote
注意:使用@CommonsWare的解决方案,您仍然可以运行zygote
和大多数Android系统服务。
Android Emulator 28.1.8现在支持在无头模式下运行模拟器(emulator-headless
):https://androidstudio.googleblog.com/2019/02/emulator-2818-canary.html