利用adb命令來測試Android手機App的耗電量

準備工做

最近一段時間工做中須要測試android手機app的耗電量。個人測試思路是使用adb命令行工具來統計電池使用信息。 若是你是第一次接觸adb命令,能夠看一下我以前的文章:Android測試中經常使用的adb命令html

adb命令用wifi方式鏈接手機

由於要經過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

adb命令查詢被測試app的uid

啓動要測試的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電池信息相關命令

下面命令能夠查看設備的電池信息:編輯器

$ 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.

app耗電量的具體測試方法

首先經過上面提到的命令正確經過wifi鏈接手機和電腦,經過adb devices命令確認鏈接成功,查詢到被測應用的uid,而且在測試開始前將電池的統計信息重置。 而後開始操做被測應用,例如,持續點擊此應用10分鐘,等時間到了以後,經過下面命令來保存電池信息到本地。

$ adb shell dumpsys batterystats > batterystats_log.txt

再經過文本編輯器打開剛剛保存的文件,並查看Estimated power use (mAh)相關信息,並查看對應uid的耗電信息。 這樣就獲得,10分鐘前端正常使用app後,這個app的具體耗電狀況啦。

參考文獻:

http://www.cnblogs.com/smstars/p/5179321.html

相關文章
相關標籤/搜索