背 / 景 / 介 / 紹
目前對于移動裝置而言,電量是很重要的一個方面。現在大家使用手機基本每天都需要充電,是以使用者也非常關注耗電的問題,如果應用設計不合理導緻電量大量消耗,那麼對于關注耗電的使用者而言,這款應用将會是首要解除安裝目标。是以,作為測試人員,我們也應該對應用的耗電做一些針對性測試。
Android電量測試
1
使用硬體測試儀
如安捷倫N6705B,這種的硬體功耗測試儀可以比較精确的測試手機的電量消耗。
使用方法:
這個方法需要拆卸手機,将手機電池拿掉,将電量表串接在手機和外部電源之間,這樣手機的供電就會經過電量表,可以擷取比較準确的電量資料。
優點:擷取的電流資料比較精确
缺點:需要硬體投入,需要拆卸手機,隻能獲得手機整體的電流值,無法判斷某一個app在哪些方面消耗電流多少。
2
基于Battery Historian檢視電量消耗
Battery-Historian是谷歌推出的一款專門分析Bugreport的工具,是谷歌2015年I/O大會上推出的一款檢測運作在android5.0(Lollipop)及以後版本的裝置上電池的相關資訊和事件的工具,是一款對于分析手機狀态,曆史運作情況很好的可視化分析工具,當裝置在使用電池的時候,它可以使開發者們看到系統級和應用級事件圖表,在圖表時間軸上可以縮放和平移,能夠直覺的看到自上一次充滿電到現在裝置電池的統計彙總資訊,它可以選中一個應用程式來檢查該應用影響電池電量的一些參數。
目前Battery historian有兩個版本,Battery Historian 1.0 通過python腳本轉換成html檔案,而新版本 Battery Historian 2.0 釋出了,新版本帶來了很多的改進:更清晰的報告,每個應用程式的摘要,更快的執行等等。
一、安裝因為2.0版本的一些優勢,建議大家安裝2.0版本,安裝上可能需要花費一些時間。目前網上安裝教程較多,這裡不做詳細介紹。 二、使用方法 1、先使用adb kill-server斷開服務,再使用adb start-server開啟adb服務。這一步很重要,因為我們開發時做電量記錄會打開很多可能造成沖突的東西。 2、重置電池資料收集資料,我們在開始的時候需要通過以下指令來打開電池資料的擷取以及重置:adb shell dumpsys batterystats --enable full-wake-historyadb shell dumpsys batterystats --reset
執行的效果如下:
以上即為一些初始化操作,避免了幹擾資料,之後拔掉資料線。
1)執行一些想要測試的場景。2)重新連接配接手機,導出bugreport檔案(adb bugreport > bugreport.txt)
3)打開battery historian(localhost:9999),将bugreport導入
4)結果如下
各參數意義 battery_level: 電量,可以看出電量的變化 plugged: 充電狀态,這一欄顯示是否進行了充電,以及充電的時間範圍。 Screen: 螢幕是否點亮,這一點可以考慮到睡眠狀态和點亮狀态下電量的使用資訊。
Top: 該欄顯示目前時刻哪個app處于最上層,就是目前手機運作的app,用來判斷某個app對手機電量的影響,這樣也能判斷出該app的耗電量資訊。該欄記錄了應用在某一個時刻啟動,以及運作的時間,這對我們比對不同應用對性能的影響有很大的幫助。
wake_lock*: wake_lock該屬性是記錄wake_lock子產品的工作時間。是否有停止的時候等。 running: 界面的狀态,主要判斷是否處于idle的狀态。用來判斷無操作狀态下電量的消耗。 wake_lock_in: wake_lock有不同的元件,這個地方記錄在某一個時刻,有哪些部件開始工作,以及工作的時間。 Gps: gps是否開啟。 phone_in_call: 是否進行通話。 Sync: 是否跟背景同步。可以把滑鼠停在某一項上面。可以看到何時sync同步啟動的,持續時間Duration多久。電池容量不會顯示單一行為消耗的具體電量,這裡隻能顯示使用電池的頻率和時長,你可以看分時段的剩餘電量來了解具體消耗了多少電量。 Job: 背景的工作,比如服務service的運作。
data_conn: 資料連接配接方式的改變,上面的edge是說明采用的gprs的方式連接配接網絡的。此資料可以看出手機是使用2g,3g,4g還是wifi進行資料交換的。這一欄可以看出不同的連接配接方式對電量使用的影響。
Status: 電池狀态資訊,有充電,放電,未充電,已充滿,未知等不同狀态。這一欄記錄了電池狀态的改變資訊。 phone_signal_strength: 手機信号狀态的改變。這一欄記錄手機信号的強弱變化圖,依次來判斷手機信号對電量的影響。 Health: 電池健康狀态的資訊,這個資訊一定程度上反映了這塊電池使用了多長時間。這一欄記錄電池狀态在何時發生改變,上面的圖中電池狀态一直處于good狀态。 Plug: 充電方式,usb或者插座,以及顯示連接配接的時間。這一欄顯示了不同的充電方式對電量使用的影響。 優點:結果直覺,有詳細的耗電資料
缺點:不支援5.0以下的android系統
耗電子產品總結:
擷取資料注意事項:擷取測試結果時我們也要注意資料的有效性,避免資料誤差,讓資料更有效的說明問題,下面提供兩種方法,來提高擷取資料的有效性。 一、橫向對比法:分兩步測試,第一步測量手機硬體運作消耗的電量;第二步測試手機硬體和軟體運作綜合的耗電量。最後将兩次的耗電進行對比,得出軟體消耗的電量大小; 二、縱向對比法:同時進行兩台手機,其中一台手機不運作軟體,另一台手機運作軟體;分别獲得兩台手機的耗電量,對比兩台手機耗電量差異,得出軟體消耗的電量大小。這兩種方法在測試上有一定的差異,很多應用軟體都是需要移動網絡的支援,而手機接收的網絡信号是會随時間變化的。
是以,第一種方法的誤差主要來源于手機在不同的基站網絡下工作狀态的變化。
第二種方法的差異則展現在兩台手機本身硬體消耗的電量可能存在差異,是以需要盡可能使用同一型号,同一批次的手機。
關注我們
界世的你當不
隻做你的肩膀
無
360官方技術公衆号
技術幹貨|一手資訊|精彩活動
空·