Запустите Android-эмулятор без GUI (безголовый Android)

Как запустить эмулятор без GUI (безголовый Android)?

Мое требование - запустить безголовый Android на эмуляторе. Правильно ли, если я использую ro.config.headless 1? Или отключить зиготу?

Ответ 1

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

Затем, чтобы запустить безголовый эмулятор:

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

Опция -no-skin удаляет кнопки эмулятора, такие как кнопки home и другие аппаратные кнопки клавиатуры.

Опция -no-audio отключает поддержку звука.

Наконец, опция -no-window отключает отображение графического окна эмулятора.

Обратите внимание, что -avd test необходимо изменить, чтобы он ссылался на ваш конкретный образ эмулятора (AVD).

Ответ 2

Один из вариантов этого - остановить службу zygote при запуске эмулятора. При остановке zygote процесса (иначе app_process) все системных служб, которые были раздвоенные из zygote при загрузке системы отключается. Будет запущено только несколько собственных системных служб. На дисплее эмулятора должен отображаться логотип запуска (или анимация).

Шаги для остановки zygote заключаются в следующем:

  • adb shell
  • su (большинство изображений эмулятора имеют /system/xbin/su)
  • stop zygote

После этого вы можете узнать, как работает меньше сервисов с service list. Критические для службы Runtime для Android будут остановлены, например

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

Для запуска zygote выполните:

  • start zygote

Примечание. При использовании решения @CommonsWare у вас все еще будет zygote и большинство системных служб Android.