1.為什么要進(jìn)行應(yīng)用功耗優(yōu)化
目的:提高手機(jī)續(xù)航
方法:1)開(kāi)源(大容量電池,快充)胶惰。 2)節(jié)流(降低待機(jī)/場(chǎng)景功耗)傻工。
2.應(yīng)用功耗問(wèn)題表現(xiàn)
- 待機(jī)功耗:系統(tǒng)睡眠時(shí)頻繁喚醒系統(tǒng),掉電快孵滞。
- 場(chǎng)景功耗:APP在前臺(tái)中捆,正常使用電流高。APP在后臺(tái)坊饶,頻繁運(yùn)行泄伪,拉高平均電流。
3.應(yīng)用界面對(duì)功耗的影響
- 圖片資源:圖片色值明暗程度(越亮耗電越大)
- 界面復(fù)雜度:圖層和view數(shù)量多匿级;view區(qū)域重疊(過(guò)度繪制)蟋滴,字體陰影等造成繪制任務(wù)重;圖片裁減等增加運(yùn)算復(fù)雜度痘绎。
4.LCD原理
- TFT屏:需要外部光源照射津函,由顯示模塊和背光組成,有cabc(內(nèi)容適配光線(xiàn)控制)則顯示內(nèi)容對(duì)功耗有影響孤页,整體功耗大球散。
- OLED屏:主動(dòng)發(fā)光,硬件由顯示模塊構(gòu)成散庶,顯示內(nèi)容對(duì)功耗有影響蕉堰,整體功耗低。
5.應(yīng)用刷新策略對(duì)功耗的影響
- 刷新控制:不必要的刷新(靜止界面/后臺(tái)界面)悲龟,刷新頻率屋讶,刷新區(qū)域
- 動(dòng)畫(huà)控制:動(dòng)畫(huà)曲線(xiàn)(去掉界面無(wú)變化的部分刷新),動(dòng)畫(huà)時(shí)間
6.應(yīng)用功能策略對(duì)功耗的影響
- WakeLock:系統(tǒng)無(wú)法睡眠须教,熄屏流程
觸摸屏關(guān)閉-->等待所有的wakelock釋放-->kernel待機(jī)流程(凍結(jié)進(jìn)程(用戶(hù)和內(nèi)核空間)-->掛起設(shè)備(suspend)-->CPU進(jìn)入休眠模式)
- Alarm:頻繁喚醒系統(tǒng)
- 頻繁重復(fù)廣播:App頻繁運(yùn)行, 比如電量鎖屏等廣播皿渗。
策略
1)動(dòng)態(tài)注冊(cè)廣播接收器
2)同一個(gè)廣播只注冊(cè)一次廣播接收器
3)盡量不是用頻繁觸發(fā)的廣播
- 網(wǎng)絡(luò)訪(fǎng)問(wèn):Modern斩芭,Wifi工作
心跳訪(fǎng)問(wèn)網(wǎng)絡(luò),后臺(tái)不休眠乐疆。數(shù)據(jù)網(wǎng)絡(luò)比WIFI耗電划乖,網(wǎng)絡(luò)切換頻繁耗電
- Gps,指紋識(shí)別挤土,DLAN琴庵,Sensor模塊工作
- 頻繁Log:拉高cpu頻率和負(fù)載
- 復(fù)雜的算法:cpu或gpu負(fù)載高。如高斯模糊算法