Подтвердить что ты не робот

Что делает "запуск/остановка adb shell"?

Вопрос

Что делают adb shell start и adb shell stop?

Описание

Я думаю, что они называют /system/bin/start и /system/bin/stop. Но эти два исполняемых файла не дают никакого представления о том, что они делают. При тестировании на реальном устройстве я обнаружил, что процесс zygote запущен и остановлен. Таким образом, эти две команды, похоже, управляют временем выполнения Android (что соответствует желтым и синим частям на рисунке ниже).

Android Architecture

Но какие точные процессы/службы запускаются/останавливаются с помощью этих двух команд?

4b9b3361

Ответ 1

Запустите это на своем устройстве

grep ^service /init*rc

Ответ 2

В принципе, все ваши службы Android перезагружены; те, которые созданы и зарегистрированы в SystemServer.java. Это называется в "Контексте зиготы". Так что да, Zygote остановлен.

Все ваши услуги, зарегистрированные в ServiceManager на Android, будут удалены в пределах ServiceManager. Чтобы перезапустить их, сделайте adb shell start.

Также обратите внимание, что SystemServer запускается Zygote, поэтому init.rc сообщает, что если Zygote остановлен, то даже SystemServer необходимо остановить. Даже SurfaceFlinger умирает, так как он начинался с SystemServer, но изначально.

Ответ 3

Мне было интересно, что "останавливается" на Android. Узнал от кого-то, что "останавливает" останавливает AP, оказываемый SurfaceFlinger.

Попробуйте выполнить команду, как показано ниже. Выполните команду, подождите несколько секунд, а затем выполните "stop" на Android. Команда сохраняет печать увеличенного количества и создает .txt файлы. Поэтому, возможно, он останавливает только часть Android, пока часть Linux остается активной. Просто FYI.

busybox sh -c 'i=0;while [ $i -ne 100 ]; do echo $i >> count.txt; sleep 1; i=$(($i + 1)); echo $i; touch "$i.txt"; done;'