最近一段時間工做中須要測試android手機app的耗電量。個人測試思路是使用adb命令行工具來統計電池使用信息。 若是你是第一次接觸adb命令,能夠看一下我以前的文章:Android測試中經常使用的adb命令。html
由於要經過adb命令來監控手機的耗電量,因此建議經過wifi的方式來鏈接手機,而不是用usb線來鏈接手機設備。usb方式鏈接手機會自動給手機充電,這樣會影響對耗電量的統計的準確性。經過下面方式來鏈接手機:前端
$ adb connect 10.1.217.238 #經過輸入手機的ip地址來鏈接手機,ip地址能夠在手機的wifi設置中找到 connected to 10.1.217.238:5555
若是看到connected字樣就是證實鏈接成功了,能夠經過下面adb命令來驗證:android
$ adb devices List of devices attached 10.1.217.238:5555 device 04c5a5af52197902 device
注意若是你遇到下面的錯誤提示,請經過adb tcpip 5555
命令來重啓端口,具體命令代碼以下:shell
$ adb connect 10.1.217.238 unable to connect to 10.1.217.238:5555: Connection refused $ adb tcpip 5555 # 要先經過usb正確鏈接手機和電腦 restarting in TCP mode port: 5555 $ adb connect 10.1.217.238 #再次嘗試鏈接手機 connected to 10.1.217.238:5555
成功經過wifi鏈接好手機後,就能夠斷開usb數據線鏈接了。app
啓動要測試的app後,再使用下面命令來查詢被測應用的uidless
$ adb shell ps | grep com.package.name # 輸入被測試應用的包名稱 u0_a138 30976 202 1738008 131660 ffffffff 00000000 S com.package.name
輸出結果中第一個字段就是這個應用的uid,後面在查看電池統計報告中須要用到,可是注意要將字段中的下劃線「_」去掉。例如u0_a138,替換爲u0a138。tcp
下面命令能夠查看設備的電池信息:編輯器
$ adb shell dumpsys battery Current Battery Service state: AC powered: false USB powered: false Wireless powered: false status: 3 health: 2 present: true level: 93 #剩餘電量百分比 scale: 100 voltage: 4293 temperature: 350 technology: Li-ion
上面比較有用的是剩餘電量百分比(level)工具
能夠用下面命令來查看詳細的電池使用信息:測試
$ adb shell dumpsys batterystats | less
由於輸出的信息不少,因此使用less命令來查看。也能夠將輸出重定向到一個日誌文件中。
$ adb shell dumpsys batterystats > batterystats_log.txt
經過下面命令來重置電池的統計信息:
$ adb shell dumpsys batterystats --reset Battery stats reset.
首先經過上面提到的命令正確經過wifi鏈接手機和電腦,經過adb devices
命令確認鏈接成功,查詢到被測應用的uid,而且在測試開始前將電池的統計信息重置。 而後開始操做被測應用,例如,持續點擊此應用10分鐘,等時間到了以後,經過下面命令來保存電池信息到本地。
$ adb shell dumpsys batterystats > batterystats_log.txt
再經過文本編輯器打開剛剛保存的文件,並查看Estimated power use (mAh)相關信息,並查看對應uid的耗電信息。 這樣就獲得,10分鐘前端正常使用app後,這個app的具體耗電狀況啦。
參考文獻: