Saya memiliki Samsung Galaxy S Relay 4G yang menjalankan Android 4.1.2. Juga, saya telah menginstal adb pada PC.
Ketika saya lama menekan tombol Power lalu ketuk "Restart", ponsel saya membutuhkan sekitar sepuluh detik untuk dimatikan. Kemudian reboot sendiri.
Ketika saya masuk adb reboot
sebagai gantinya, telepon dimatikan lebih cepat: shutdown hanya membutuhkan satu detik atau lebih. Kemudian reboot.
Pertanyaan saya:
Mengapa
adb reboot
jauh lebih cepat?Apakah itu hanya melewatkan animasi shutdown operator jaringan seluler, atau apakah melewatkan beberapa prosedur yang lebih penting juga?
Dapatkah saya menggunakan
adb reboot
setiap kali saya ingin me-reboot telepon, atau adakah kerugian untuk melakukannya?(Opsional) Bagaimana Anda tahu?
Informasi lebih lanjut (Anda dapat melewati ini)
Saya melakukan riset sebelum memposting pertanyaan ini. Tapi saya masih belum tercerahkan. Mari saya menunjukkan apa yang saya lakukan menemukan.
Tetsuyuki Kobayashi dari Kyoto Microcomputer Co. menjelaskan dalam slide 8 slide PDF ini bahwa adb terdiri dari tiga bagian: klien, server, dan daemon. Klien dan server dijalankan pada PC. Daemon berjalan di telepon. Dalam slide 11, ia menjelaskan bahwa ketiga bagian dibangun dari satu direktori sumber. (Ini direktori ini .)
Saya mencoba mencari di direktori sumber untuk katareboot
dan membaca bagian dari services.cpp , tapi saya masih belum bisa mencari tahu apa yang adb reboot
sebenarnya terjadi, atau byte apa yang dikirimkan melalui kabel, atau kode apa yang dijalankan ponsel ketika itu menerima byte tersebut. Saya juga belum menemukan jawaban untuk pertanyaan saya.
Terkait : "Apa cara terbaik untuk me-restart Android melalui command line (jarak jauh)?"
setprop sys.powerctl reboot
akan dilakukan. Shutdown najis diikuti oleh instruksi untuk reboot kembali.Jawaban:
Berdasarkan
platform/system/core
repositori yang Anda tautkan di atas, saya pikir kuncinya ada dilibcutils/android_reboot.c
. Dan definisi penting ada diinclude/cutils/android_reboot.h
; yaitu:Biasanya dalam mode reboot normal (menggunakan tombol perangkat, dll.), Prosesnya lebih lama karena (saya berasumsi) itu partisi, bunuh semua aplikasi, tutup semua node fopen, seperti dalam proses shutdown. The
adb reboot
dapat dibandingkan dengan Linux perintah reboot (dari mana ia datang): hanya flushes disk dan masukkan restart tanpa proses pembunuhan pertama atau filesystem unmounting. Saya juga melihat perintah remount cepat yang dikeluarkan untuk meletakkan disk (di bagian penyimpanan perangkat case sistem kami) dalam mode ro sebelum reboot.Saya juga percaya perintah yang dikeluarkan adalah
kernel_restart()
yang tertanam dalam kernel. Lihat misalnya http://www.phonesdevelopers.com/1730094/ . Periksa jugamachine_restart
panggilan.sumber
adb reboot
setiap hari walaupun tidak akan melakukan prosedur shutdown penuh?Pengguna Stack Exchange lain telah menjawab pertanyaan ini di pos di tempat lain.
t0mm13b menulis itu, saat menampilkan animasi shutdown operator Anda:
Di tempat lain, Yury menawarkan penjelasan lain tentang apa yang dilakukan Android selama shutdown yang anggun:
adb reboot
lebih cepat karena melompati beberapa atau semua hal di atas.sumber