2018年1月15日 星期一

Android 手機免 root 開啟 Wakelock Detector

Android 手機最另人討厭的情況就是背景常常有一些討人厭的程式在跑,讓手機待機時間變的短,手機待機時間一短的話,人就會變的很不舒服^^,但其實如果好好控制的話,Android 是有機會可以比 ios 系統更省電的。

Android 手機都會自己休眠,但是一些大陸來的程式,常常不太愛讓手機睡著,什麼騰訊視頻啦,Sogo地圖啦,DD打車啦,都是有名的吃電怪獸。為什麼手機都不能休眠呢?因為程式設計者會用一個叫Wakelock的程序,主要目的是叫醒電話,在背景下執行些東西,有關Wakelock的解說如下

在Android app or framework, 如果不想讓系統進入suspend(休眠)狀態的話,
就必須取得wakelock(喚醒鎖), 並且要小心管理wakelock, 一旦沒有釋放wakelock的話系統就會處在無法suspend的狀態, 大大的增加耗電的速度!
Android SDK官網也有特別強調:
Device battery life will be significantly affected by the use of this API. Do not acquire PowerManager.WakeLocks unless you really need them, use the minimum levels possible, and be sure to release them as soon as possible.
意思就是沒事不要亂取wakelock,取了也盡量用最小level的wakelock,並且盡快釋放wakelock.
以上來自 https://ithelp.ithome.com.tw/articles/10156966
那怎麼看到底有哪些程式在背後 亂來 執行Wakelock呢???來到主題了,有一個叫Wakelock Detector的程式,望名生義,就是Wakelock的偵測程式。但是比較麻煩的是,他必須在 root 的情況下工作,但是,有時候我們不太想讓手機root,那該怎麼辦呢?

那接下來讓我們來看一下如何可以不用root就讓Wakelock Detector工作。

Step 1:

下載 minimal adb fastboot drivers:
安裝完之後直接Launch, 會跑出command window, 預設的位置是在:
 C:\Program Files (x86)\Minimal ADB and Fastboot>
這個目錄裡應該有adb.exe等除錯用的工具軟體

Step 2:

確定手機已經由USB連接上電腦, 而且"設定->開發人員選項->USB偵錯"有勾選
開發人員選項開啟通常是在手機版本的選項連按10下,就可以獲得。
這時手機上可能會跳出視窗, 詢問要不要讓這台電腦執行USB偵錯, 請回答yes確認.

Step 3:

 在PC端的command window裡打以下指令
 切到  minimal ADB tools的目錄下
  1. "adb kill-server"
  2. "adb start-server"
  3. "adb devices"

  此時會出現: List of devices, 而且會秀出你由USB port連接上的手機序號
  手機序號之後不能是"offline", 應該要出現"device"

Step 4: 

在Chrome 下打開插件 unlock Wakelock,此時應該可以作動作了,下圖是沒有發現手機的情況,Step 3的動作要確實。


如果有看到手機的話,會顯示類似下圖的畫面
選Grant, 應該會看到成功的文字訊息。

此step部份來自
https://www.ptt.cc/bbs/Android/M.1404875115.A.3AE.html

那有問題的程式該怎麼辦?砍掉?很不方便吧…不能一直下載移除吧…
來…請服用,"綠色守護",可以用它,把有問題的程式都綠色化,這軟體會強迫不該常駐的程式停用,很方便吧。

那你有電池不給力的問題嗎?現在就去試試吧!