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

And*_*077 16 android headless adb android-emulator

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

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

Hea*_*ers 12

从 开始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


mar*_*dan 7

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


Oni*_*nik 2

zygote实现此目的的选项之一是在模拟器运行时停止服务。当停止zygote进程(又名app_process)时,所有在系统启动时派生的系统服务都会zygote关闭。只有少数本机系统服务将运行。模拟器的显示屏应显示启动徽标(或动画)。

停止的步骤zygote如下:

  • adb shell
  • su大多数模拟器图像都有/system/xbin/su
  • stop zygote

之后,您可以探索如何使用更少的服务运行service list。对于 Android 运行时至关重要的服务将被停止,例如

activity: [] // ActivityManager
package: [] // PackageManager
display: [] // DisplayManager
...
Run Code Online (Sandbox Code Playgroud)

开始zygote执行:

  • start zygote

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