電量其實(shí)是目前手持設(shè)備最寶貴的資源之一,大多數(shù)設(shè)備都需要不斷的充電來維持繼續(xù)使用灾馒。不幸的是,對(duì)于開發(fā)者來說遣总,電量?jī)?yōu)化是他們最后才會(huì)考慮的的事情睬罗。但是可以確定的是,千萬不能讓你的應(yīng)用成為消耗電量的大戶旭斥。
Purdue University研究了最受歡迎的一些應(yīng)用的電量消耗容达,平均只有30%左右的電量是被程序最核心的方法例如繪制圖片,擺放布局等等所使用掉的垂券,剩下的70%左右的電量是被上報(bào)數(shù)據(jù)花盐,檢查位置信息,定時(shí)檢索后臺(tái)廣告信息所使用掉的圆米。如何平衡這兩者的電量消耗卒暂,就顯得非常重要了。
有下面一些措施能夠顯著減少電量的消耗:
我們應(yīng)該盡量減少喚醒屏幕的次數(shù)與持續(xù)的時(shí)間娄帖,使用WakeLock來處理喚醒的問題也祠,能夠正確執(zhí)行喚醒操作并根據(jù)設(shè)定及時(shí)關(guān)閉操作進(jìn)入睡眠狀態(tài)。
某些非必須馬上執(zhí)行的操作近速,例如上傳歌曲诈嘿,圖片處理等,可以等到設(shè)備處于充電狀態(tài)或者電量充足的時(shí)候才進(jìn)行削葱。
觸發(fā)網(wǎng)絡(luò)請(qǐng)求的操作奖亚,每次都會(huì)保持無線信號(hào)持續(xù)一段時(shí)間,我們可以把零散的網(wǎng)絡(luò)請(qǐng)求打包進(jìn)行一次操作析砸,避免過多的無線信號(hào)引起的電量消耗昔字。關(guān)于網(wǎng)絡(luò)請(qǐng)求引起無線信號(hào)的電量消耗,還可以參考這里。
我們可以通過手機(jī)設(shè)置選項(xiàng)找到對(duì)應(yīng)App的電量消耗統(tǒng)計(jì)數(shù)據(jù)作郭。我們還可以通過Battery Historian Tool來查看詳細(xì)的電量消耗陨囊。
如果發(fā)現(xiàn)我們的App有電量消耗過多的問題,我們可以使用JobScheduler API來對(duì)一些任務(wù)進(jìn)行定時(shí)處理夹攒,例如我們可以把那些任務(wù)重的操作等到手機(jī)處于充電狀態(tài)蜘醋,或者是連接到WiFi的時(shí)候來處理。