【问题标题】:Run Android emulator without GUI (headless Android)在没有 GUI 的情况下运行 Android 模拟器(无头 Android)
【发布时间】:2014-01-19 01:57:30
【问题描述】:

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

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

【问题讨论】:

  • 我的要求是在模拟器上运行无头Android。也许使用 ro.config.headless 1 ?或禁用合子?谢谢
  • @Onik 它与Jenkins 相关,虽然这是它的真实应用程序...这里user-interface 内容标签似乎具有误导性,因为headless 排除了这一点。

标签: android android-emulator adb headless


【解决方案1】:

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

【讨论】:

    【解决方案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】:

      实现这一目标的一个选项是在模拟器运行时停止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 系统服务。

      【讨论】:

        【解决方案4】:

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

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

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

        【讨论】:

          猜你喜欢
          • 2017-07-31
          • 1970-01-01
          • 1970-01-01
          • 2012-02-24
          • 2017-08-26
          • 1970-01-01
          • 2012-12-06
          • 1970-01-01
          • 2018-06-06
          相关资源
          最近更新 更多