題:
為什麼“ adb重新啟動”在重新啟動之前以比平常更快的速度關閉了手機?是否跳過重要步驟?
unforgettableidSupportsMonica
2015-05-07 08:57:05 UTC
view on stackexchange narkive permalink

我擁有運行Android 4.1.2的Samsung Galaxy S Relay 4G。另外,我已經在PC上安裝了 adb

長按電源按鈕,然後點按“重新啟動”,我的手機大約需要十秒鐘才能關機。然後它會自行重啟。

當我輸入 adb reboot 時,手機關機的速度更快:關機僅需一秒鐘左右。然後重新啟動。

我的問題:

  1. 為什麼 adb重新啟動這麼快? / p>

  2. 是只是跳過移動網絡運營商的關機動畫,還是也跳過了一些更重要的過程?

  3. 可以我想每次重新啟動手機時都使用 adb重新啟動,還是這樣做有一些缺點?

  4. (可選)知道嗎?

  5. ol>

    更多信息(您可以跳過此信息)

    我之前做過一些研究發布這個問題。但是我仍然不知所措。讓我向您展示我發現發現的內容。 sub>

    京都微機公司的小林哲之(Tetsuyuki Kobayashi)在此PDF幻燈片的幻燈片8中進行了解釋 adb由三部分組成:客戶端,服務器和守護程序。客戶端和服務器在PC上運行。守護程序在電話上運行。他在幻燈片11中解釋說,所有這三個部分都是從一個源目錄構建的。 (這是此目錄。) sub>

    我嘗試在該源目錄中搜索單詞 reboot 並讀取 services.cpp的部分內容,但我仍然無法弄清楚 adb reboot 的實際作用,或通過網絡發送的字節數,或手機收到這些字節時運行的代碼。我也沒有想出我的任何問題的答案。 sub>


    相關“通過以下方式重啟Android的最佳方法是什麼命令行(遠程)?”

似乎非常類似於[`setprop sys.powerctl reboot`](https://android.googlesource.com/platform/frameworks/base/+/android-5.1.1_r34/services/core/java/com/android/server /power/PowerManagerService.java#2384)可以。 [不正常關機](https://android.googlesource.com/platform/frameworks/base/+/android-5.1.1_r34/services/core/java/com/android/server/power/PowerManagerService.java#2350)然後按指示重新啟動。
二 答案:
ares777
2015-05-07 12:40:22 UTC
view on stackexchange narkive permalink

基於上面鏈接的 platform / system / core 存儲庫,我認為密鑰位於 libcutils / android_reboot.c 。重要的定義在 include / cutils / android_reboot.h 中;即:

  / *命令* / #define ANDROID_RB_RESTART 0xDEAD0001 #define ANDROID_RB_POWEROFF 0xDEAD0002 #define ANDROID_RB_RESTART2 0xDEAD0003  

通常在正常重啟模式下(使用設備按鈕,等),該過程會更長,因為(我認為)它會卸載分區,殺死所有應用程序,關閉所有fopen節點,如關機過程中那樣。可以將 adb reboot 與Linux reboot命令(從其發出的命令)進行比較:它只是刷新磁盤並進入重新引導狀態,而無需先終止進程或卸載文件系統。我還看到有一個快速重新掛載命令,用於在重新引導之前將磁盤(在本例中為設備的系統存儲部分)置於ro模式。

我也相信發出的命令是 kernel_restart()嵌入在內核中。參見例如 http://www.phonesdevelopers.com/1730094/。還要檢查 machine_restart 調用。

+1。非常感謝你!即使每天不執行完全關閉程序,我每天都可以執行“ adb重新啟動”嗎?
它沒有傷害,但是您可能有充分的理由這樣做。如果您實際上要清除某些緩存的數據,則仍然有其他解決方案。
其他解決方案,例如...?
如果您仍然需要@JohnyTex,請參閱:https://android.stackexchange.com/a/138057/57668。我最喜歡的是“ adb shell su -c“ svc power shutdown”“。
unforgettableidSupportsMonica
2015-11-27 20:57:30 UTC
view on stackexchange narkive permalink

其他Stack Exchange用戶已經在其他地方的帖子中回答了這個問題。

t0mm13b ,同時顯示運營商的關機動畫:

  • Android正在安全關閉運行時的重要部分。
  • 操作系統也在廣播意圖告訴應用程序和服務正常關閉的意圖。反過來,這些將刷新其所有數據和共享首選項的緩存,將注意事項保存到sqlite數據庫等。

換句話說,使應用程序和服務有機會

[諸如 adb reboot 之類的命令更嚴格。他們實際上繞過了安全關機的安全機制。

在其他地方,Yury提供了關於正常關機期間Android行為的另一種解釋

  • 它將關閉ActivityManager。我認為關閉ActivityManager意味著所有活動都將經過必要的生命週期,因此將存儲活動狀態。但是我不確定。我沒有檢查。
  • 然後,Android關閉了蜂窩無線電接口。
  • 然後,它關閉了藍牙。
  • 最後,它嘗試關閉降低MountService。

adb重新啟動更快,因為它跳過了上面的部分或全部。



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...