应用前台省电秘籍——这些常见功耗雷坑不要再跳了
使用應(yīng)用時(shí),有時(shí)會出現(xiàn)掉電快、卡頓、過度發(fā)熱等問題,影響用戶體驗(yàn)的同時(shí),也嚴(yán)重影響了應(yīng)用使用時(shí)長和用戶留存,如何解決上述問題?本文華為顯示流程功耗優(yōu)化專家王文華將分享議題——低功耗前臺顯示。
手機(jī)器件包括SOC、TP、Modem、GPS、Audio、Camer等主要器件,這些器件在使用時(shí)對功耗的影響比較大。
上圖展示的是不同器件對手機(jī)功耗帶來的影響,下文將通過從主流應(yīng)用中發(fā)現(xiàn)的問題實(shí)例,對應(yīng)用功耗產(chǎn)生影響的設(shè)計(jì)因素展開介紹。
視圖設(shè)計(jì)
許多應(yīng)用存在無效刷新、多元素同時(shí)刷新等問題,導(dǎo)致數(shù)據(jù)運(yùn)算量增加,出現(xiàn)過度占用手機(jī)CPU、GPU資源的情況,引起應(yīng)用耗電增加,部分應(yīng)用還會出現(xiàn)卡頓現(xiàn)象。
建議:
1)盡量減小繪制窗體的面積。
2)減少多個(gè)元素同時(shí)刷新。
3)減少距離較遠(yuǎn)的元素同時(shí)刷新。
以上建議減少應(yīng)用在刷新狀態(tài)下的數(shù)據(jù)量,減少數(shù)據(jù)對帶寬、CPU、GPU的占用,無形中節(jié)省了功耗,提升了應(yīng)用性能。
圖層優(yōu)化
在全屏界面下,有些應(yīng)用的界面圖層非常多,究其原因是開發(fā)者沒有將Activity銷毀,導(dǎo)致圖層合成的工作量很大,過度占用GPU資源,導(dǎo)致卡頓、顯示效果差,同時(shí)功耗增大。
建議:圖層數(shù)量控制在3個(gè)以下。
不需要GPU處理的組件減少耦合
有些視頻類應(yīng)用的視頻流會采用SurfaceTexture或TextureView進(jìn)行處理,常常出現(xiàn)GPU對界面重新繪制、重復(fù)工作的問題,部分場景可能存在時(shí)序變化,導(dǎo)致功耗增加,并發(fā)生卡頓。
建議:視頻場景不要使用GPU重繪。
視頻解碼
應(yīng)用有兩種解碼方式:硬解碼和軟解碼。
軟解碼是純粹依靠CPU來進(jìn)行解碼的一種方式,視頻清晰度越高,CPU負(fù)載就越重,容易導(dǎo)致CPU能力不足出現(xiàn)卡頓,耗電量增加。
建議:使用硬解碼,對于高清視頻播放類應(yīng)用的性能、功耗均有保障。
數(shù)據(jù)請求:
視頻播放類應(yīng)用在線播放需要提前預(yù)緩存視頻資源,應(yīng)用如果頻繁發(fā)出網(wǎng)絡(luò)請求,緩存過程的頻繁交互就會導(dǎo)致對CPU等資源占用過度,耗電量增加。
建議:大數(shù)據(jù)塊的集中下載既能滿足用戶體驗(yàn)又能有效降低WIFI功耗和負(fù)載,下載完成后可在間隔一段時(shí)間內(nèi)保持Sleep狀態(tài)。
布局與絕對坐標(biāo)解耦
應(yīng)用在不同分辨率的屏幕下顯示時(shí),如果使用絕對坐標(biāo)會造成應(yīng)用部分場景顯示偏移,效果無法保障的問題。
建議:
1)應(yīng)用布局時(shí),在使用wrap_content、match_parent 和dp 單位為 XML 布局文件中的視圖定義 android:layout_width 和 android:layout_height 時(shí),可確保應(yīng)用視圖在當(dāng)前設(shè)備屏幕上提供適當(dāng)尺寸。
2)應(yīng)用編碼時(shí)請勿使用硬編碼像素值,固定像素值將導(dǎo)致應(yīng)用在不同密度的屏幕上出現(xiàn)布局錯(cuò)誤。
3)建議應(yīng)用不要使用AbsoluteLayout 布局,AbsoluteLayout 強(qiáng)制應(yīng)用使用固定位置放置子視圖,影響應(yīng)用顯示效果。
4)在使用尺寸和密度特定資源時(shí),盡管系統(tǒng)會根據(jù)當(dāng)前屏幕配置擴(kuò)展布局,但在不同屏幕尺寸上,應(yīng)用可能需要調(diào)整UI以及提供針對不同密度優(yōu)化的可繪制對象。(指在資源目錄中針對不同密度的資源進(jìn)行定義)
關(guān)注安卓綠色聯(lián)盟公眾號,回復(fù)關(guān)鍵詞"2305"獲取PPT
總結(jié)
以上是生活随笔為你收集整理的应用前台省电秘籍——这些常见功耗雷坑不要再跳了的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android 自定义Button按钮显
- 下一篇: B2C(ecstore) 商城lnmp环