Posiadam Samsung Galaxy S Relay 4G z systemem Android 4.1.2. Ponadto mam zainstalowany adb na komputerze.
Kiedy długo wciskam przycisk Zasilanie, a następnie stuknij „Uruchom ponownie”, zamknięcie mojego telefonu zajmuje około dziesięć sekund. Następnie uruchamia się ponownie.
Kiedy adb reboot
zamiast tego wchodzę , telefon wyłącza się znacznie szybciej: zamknięcie zajmuje tylko około sekundy. Następnie uruchamia się ponownie.
Moje pytania:
Dlaczego jest
adb reboot
o wiele szybszy?Czy po prostu pomija animację zamykania operatora sieci komórkowej, czy też pomija także ważniejsze procedury?
Czy mogę używać za
adb reboot
każdym razem, gdy chcę zrestartować telefon, czy może jest to wady?(Opcjonalnie) Skąd wiesz?
Więcej informacji (możesz to pominąć)
Przed opublikowaniem tego pytania przeprowadziłem kilka badań. Ale wciąż jestem nieoświecony. Pokażę wam, co ja nie dowiedzieć.
Tetsuyuki Kobayashi z Kyoto Microcomputer Co. wyjaśnia na slajdzie 8 tego pokazu PDF, że adb składa się z trzech części: klienta, serwera i demona. Klient i serwer działają na komputerze. Demon działa na telefonie. W slajdzie 11 wyjaśnia, że wszystkie trzy części są zbudowane z jednego katalogu źródłowego. (To ten katalog .)
Próbowałem szukać słowa w tym katalogu źródłowymreboot
i czytać części usług. Cpp , ale nadal nie byłem w stanie dowiedzieć się, co adb reboot
właściwie robi, jakie bajty wysyła przez kabel ani jaki kod uruchamia telefon, gdy działa otrzymuje te bajty. Nie znalazłem też odpowiedzi na żadne z moich pytań.
Powiązane : „Jaki jest najlepszy sposób na ponowne uruchomienie Androida za pomocą wiersza poleceń (zdalnie)?”
setprop sys.powerctl reboot
, co by zrobił. Nieczyste zamknięcie, a następnie instrukcja ponownego uruchomienia.Odpowiedzi:
Na podstawie
platform/system/core
repozytorium, które podłączyłeś powyżej, myślę, że klucz jest wlibcutils/android_reboot.c
. I ważne są definicjeinclude/cutils/android_reboot.h
; mianowicie:Zwykle w normalnym trybie ponownego uruchamiania (za pomocą przycisku urządzenia itp.) Proces jest dłuższy, ponieważ (zakładam) umountowanie partycji, zabicie wszystkich aplikacji, zamknięcie wszystkich otwartych węzłów, jak w procesie zamykania.
adb reboot
Można porównać z poleceniem ponownego uruchamiania systemu Linux (skąd pochodzi): po prostu czyści dysk i wprowadź restart bez pierwszych procesów zabijania lub odmontowywanie systemów plików. Widzę też polecenie szybkiego ponownego zamontowania, aby przed ponownym uruchomieniem uruchomić dysk (w naszym przypadku część pamięci urządzenia w systemie) w trybie ro.Wierzę również, że wydane polecenie
kernel_restart()
jest osadzone w jądrze. Zobacz na przykład http://www.phonesdevelopers.com/1730094/ . Sprawdź takżemachine_restart
połączenia.źródło
adb reboot
codziennie, nawet jeśli nie wykona pełnej procedury wyłączania?Inni użytkownicy wymiany stosów już odpowiedzieli na to pytanie w innych postach.
t0mm13b pisze, że podczas wyświetlania animacji wyłączenia operatora:
Gdzie indziej Yury oferuje inne wyjaśnienie tego, co robi Android podczas płynnego zamykania:
adb reboot
jest szybszy, ponieważ pomija niektóre lub wszystkie powyższe.źródło