移動App效能測評與優化2 1 1 硬體測試

2021-09-23 16:21:21 字數 2470 閱讀 6344

2.1.1 硬體測試

方法1:通過android api獲取,**如下:

registerreceiver(receiver, new intentfilter(intent.action_battery_changed));

這種方法的缺點:獲取手機整機耗電,實時性差精度小(只能監控電池電量剩餘量和跳變),測試工具本身的效能消耗,手機休眠後無法持續監測。

方法2:通過讀取系統電池感測器裝置節點。

/sys/class/power_supply/battery/uevent

這種方法的缺點是:測試工具本身的效能消耗,持續採集頻率不得超過100hz,只有部分機型支援此節點(nexus 4, nexus one)。

方法3:使用外接電流儀。

這種測試方案可以很好彌補上面兩種方案的缺點,不受測試機型限制,不會造成測試方案本身帶來的額外的效能消耗,可以達到很高的測試精度,可以達到很高的採集頻率。唯一的缺點就是電流儀**高得感人。

確定了測試方案,下面詳細介紹測試環境的搭建,測試工具的使用,以及一些方案落地成果。

1. 硬體測試工具簡介

測試工具包括如圖2-2所示。圖2-2a是直流恆壓電源(agilent 66319d)。圖2-2b是gpib(通用介面匯流排)。圖2-2c是模擬電池。圖2-2d是pc端電流軟體。

使用方法如下:

1)把假電池裝進待測試的手機,如圖2-3a所示。

2)假電池出來的兩根引線連線到穩壓電源的輸出介面output上引線的接線正負位置,如圖2-3b所示。

3)gpib線連線穩壓電源和電腦,如圖2-3c所示。

4)整體連線圖展示,如圖2-3d所示。

完成以上步驟後,pc端裝好電流軟體,啟動,設定相關的引數,然後開啟穩壓電源,開啟手機,就可以進入手機的電流測試了。

圖2-2 硬體測試工具示意圖

圖2-3 硬體測試工具接線圖

採集資料流程如下:

1)reset電源的初始狀態。

2)直流恆壓電源設定為4.2v電壓值。

3)引數配置完成後按下dlog按鈕記錄日誌(引數配置見使用手冊)。

4)按下measure按鈕開始電流測試,測試完成後儲存log到自定義目錄。

分析結果如下:單擊marker線,會產生2條垂直的標記線,可以任意移動,軟體右下方自動產生成2條標記線之間的時間和耗電量,如圖2-4所示(耗電量=時間×電流)。

圖2-4 資料採集軟體

2. 案例分享

以上介紹的硬體測試方法,主要適用於對整機場景功耗的量化。下面介紹下我們在使用這種測試方法在實際專案上的應用成果。

【例2-1】分析cpu頻率與電量消耗的關係

cpu的功耗會隨著頻率提公升而增加已經是大家的共識,僅僅只考慮cpu的頻率而定論它的功耗是否正確呢,對此我們做了一系列的測試,同時控制cpu的頻率和使用率,觀察在各個場景下的電流值,如圖2-5所示。

圖2-5 cpu主頻與耗電的關係

通過測試資料發現,在cpu空閒的情況下,cpu頻率對耗電的影響幾乎是忽略不計的,因此在系統空閒的時候對手機強制降頻是不能節電的(單核的情況下,在多核的情況下場景會更加複雜);在cpu使用率30%的情況下,手機達到800mhz以後手機的功耗隨cpu頻率增加的幅度增加,這時候可以考慮適當降低cpu頻率獲得更好的功耗控制;在cpu使用達到50%,手機的功耗已經和頻率成直線增加,這時候降低cpu頻率增加cpu使用率,並不一定會給手機功耗帶來很好的成效;所以在選擇降頻節能方法時,要充分考慮cpu頻率和使用率帶來的是真的省電還是徒勞無功。

【例2-2】分析手機螢幕背景色與功耗的關係

在手機的正常使用過程中,螢幕其實是最大的耗電元凶,那麼顯示螢幕材質,以及選擇螢幕背景色對手機功耗的影響到底是怎麼樣的,我們可以通過硬體的測試方式來做乙個詳細的對比。表2-1是當年主流手機顯示屏技術與功耗的對照表。

而不同的顯示螢幕實現技術在不同顏色顯示上的表現是怎麼樣的?在不同的螢幕上我們長時間使用的背景色應該怎麼選擇呢?以下是三星官方給出的oled和led的色彩功耗對比圖,如圖2-6所示。

表2-1 各種材質螢幕和功耗的關係

技術     材質型別     功耗

lcd      lcd+led背光  

tft-lcd    

ips

slcd   

oled    amoled    

super amoled 

圖2-6 不同螢幕不同顏色與功耗的關係

可以看出全白的時候oled耗電是lcd的3倍,全黑的時候lcd耗電是oled的10倍,30%白色的時候兩者相當。

針對lcd螢幕,我們只需要關注螢幕亮度值(0~255)帶來的耗電,值越大耗電越大;而針對oled螢幕,我們不但要關注螢幕的亮度值,還需要關注每個畫素的rgb值。對此我們也做了一些驗證,幫助專案組在適配不同機型時,選擇怎麼樣的色彩,如圖2-7所示。

由以上的資料可知slcd螢幕同耗電最亮是最暗的2~3倍,建議在亮度選擇的時候使用適當的亮度;super amoled最高亮度時全黑比全白節電60%,建議應用ui盡量採用深色調。

圖2-7 slcd對比super amoled螢幕亮度與功耗

移動App效能測評與優化第2章

第2章 手機發燙是為何 降低耗電量 智慧型手機興起的時候,坊間流傳著這樣麼一句話 用智慧型手機的男人一定是個好男人,因為他每天必須回家充電!這句調侃的話說出多少手機使用者的辛酸。隨著智慧型手機的實用性 娛樂性越來越完善,我們對其依賴程度日益加深,甚至到了寸步不離的地步,衣食住行都依賴這個小小的移動終...

移動App效能測評與優化1 4 4 多程序應用

1.4.4 多程序應用 根據上一節中的描述,當乙個程序結束後,它所占用的共享庫記憶體將會被其他仍然使用該共享庫的程序所分擔,共享庫消耗的物理記憶體並不會減少。實際上,對於所有共享使用了這個庫的應用,pss記憶體都會有所增加。對於一般的程序,只是共享著zygote程序的android框架等基礎部分,而...

App效能優化

首先,我們來了解一下,安卓裡面的記憶體分配方式以及它的 方式,的設定最大記憶體這段 不起作用 設定了也沒有什麼用 對於那種太久沒有使用的程序,而且又消耗記憶體的,就直接被gc 安卓的一種 機制 給 掉了。上附帶的功能進行檢視 當然也可以通過 來實現檢視 runtime.getruntime maxt...