我們在做app耗電量測試時(shí)性雄,重點(diǎn)關(guān)注的是待機(jī)時(shí)的耗電情況怀读,那么影響待機(jī)耗電量的因素有哪些呢褐耳,本文對最近的思考和實(shí)踐進(jìn)行了簡單的總結(jié)。
首先安卓中的定時(shí)操作
安卓中定時(shí)功能使用AlarmManager實(shí)現(xiàn)陪拘,這個(gè)AlarmManager里持有一個(gè)wakelock對象厂镇,
從名字就可以看出,wakelock是一個(gè)喚醒鎖左刽,安卓就是通過這個(gè)鎖保證在鬧鐘喚醒時(shí)我們的操作做完捺信,不至于立即又恢復(fù)到待機(jī)狀態(tài)。
wakelock也可以在代碼中申請和使用欠痴。下圖是使用耗電量檢測工具GSam Monitor進(jìn)行的監(jiān)控結(jié)果截圖迄靠。
GSam Monitor對app使用的wakelock進(jìn)行了統(tǒng)計(jì),在進(jìn)行耗電量測試時(shí)斋否,我們可以通過這里
分析后臺(tái)的操作是否符合我們的預(yù)期梨水,拿助手項(xiàng)目來說,在待機(jī)時(shí)使用wakelock的只有alarmmanager茵臭,從需求角度分析,我們每天有1個(gè)配置文件
的請求和2類通知的請求是定時(shí)操作的舅世,那么當(dāng)我待機(jī)一天后旦委,會(huì)看到wakelock詳情中的alarmmanager數(shù)字增加了3奇徒,如果數(shù)字不是3,就可能是
開發(fā)有些其他的實(shí)現(xiàn)或者bug缨硝,就需要進(jìn)行跟進(jìn)了摩钙。
監(jiān)聽的各種廣播(安卓的Broadcast Receiver機(jī)制)
廣播(Broadcast)既可能是系統(tǒng)發(fā)出的,也可能是app自定的查辩,所以我們在測試耗電量時(shí)要遍歷app注冊所有廣播
網(wǎng)絡(luò)條件影響
有些app會(huì)有些預(yù)下載的操作胖笛,在鬧鐘觸發(fā)了后進(jìn)行預(yù)下載,與下載有關(guān)的操作當(dāng)然與網(wǎng)絡(luò)環(huán)境有關(guān)宜岛,這里需要考慮以下幾種網(wǎng)絡(luò)環(huán)境狀態(tài)
wifi且網(wǎng)絡(luò)狀態(tài)良好
數(shù)據(jù)網(wǎng)絡(luò)且網(wǎng)絡(luò)狀態(tài)良好
弱網(wǎng)絡(luò)情況长踊,這種情況又分為信號較差導(dǎo)致的傳輸速率較慢的情況,手機(jī)在wifi和數(shù)據(jù)網(wǎng)絡(luò)持續(xù)切換情況萍倡,網(wǎng)絡(luò)的丟包率高導(dǎo)致不斷地重試情況身弊。
弱網(wǎng)絡(luò)的模擬可以作為單獨(dú)一個(gè)點(diǎn)來調(diào)研
**系統(tǒng)資源情況 **
在待機(jī)時(shí),不光被測app有活動(dòng)列敲,其他app也能會(huì)有活動(dòng)阱佛,如果其他app活動(dòng)時(shí)資源不足,系統(tǒng)很可能進(jìn)行資源回收戴而,被測app的服務(wù)很可能被殺掉或重啟凑术,這也是影響耗電量測試結(jié)果的一個(gè)重要因素。