1. 由頭
客戶這邊最高層說我們的產品太耗電,要我們解決耗電問題。
2. 思路
首先要確定是否耗電,用ZDbox這款軟件,能測量Android手機內各個應用的耗電情況。
看看測試結果,比較一下同類型不同應用,確定是否耗電明顯高於別人。
如果是耗電明顯高於別人,先用SystemTunerPro觀察一下後臺起瞭什麼服務,一般來說後臺服務越多,耗電量越大。
還可以Carat來評估耗電量構成,主動發現Bug。
3. 經驗
Android的大耗電量一般由以下四個構成
a. 頻繁的GC,不一定是full GC。 頻繁的full GC的話,應用會很卡,一般來說是頻繁的young gen GC。
b. 開GPS,這玩藝尤其耗電
c. 網絡連接,尤其是後臺開一堆服務,隔幾分鐘發起一次網絡連接。
d. 後臺服務的數量,開一堆莫名其妙的服務。自動更新一個, 數據庫更新一個, nofication一個。等等
經過我測試,日本這邊的App普遍都比較耗電,原因出在後臺開瞭一堆服務,10幾個,亂七八糟,隔十幾分鐘就發起一次網絡連接。這是典型的小日本做產品的風格。
沒有人拿主意,反正是層層外包,大傢都是打工的,沒人願意出頭整合產品架構。 廢話不說,多說無益。
作者:nanjingjiangbiao