Запустите 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
выполните:
Примечание. При использовании решения @CommonsWare у вас все еще будет zygote
и большинство системных служб Android.
Ответ 3
Android Emulator 28.1.8 теперь поддерживает запуск эмулятора в автономном режиме (emulator-headless.sh): https://androidstudio.googleblog.com/2019/02/emulator-2818-canary.html.