一,電量分析工具:Battry historian
我們先來看Battry historian
手動搭建環境一 (或者我們可以在這里進行部署和操作:https://github.com/google/battery-historian)
1,Battry historian,因為這個是go語言開發的,所以要先安裝go語言 Golang下載地址:https://studygolang.com/dl
下載后一路安裝,安裝完成以后驗證一下:
2,下載git: https://git-scm.com/downloads
下載以后直接一路安裝,最后在cmd中執行git version
然后打開git bash---在運行中可以找到
執行命令
1, git clone https://github.com/google/battery-historian.git
2, cd battery-historian
3, go get -d -u github.com/google/battery-historian/...
4, go run setup.go
5,go run cmd/battery-historian/ battery-historian.go
配置完成后是一個地址,網頁形式打開,如下圖:
3,開始分析
a,執行命令:adb shell dumpsys batterystats --reset 重置電池數據收集
b,執行電池的數據收集命令
第一種:adb shell dumpsys batterystats > batterystats.txt 這個是把采集的結果導出到txt文件中
第二種:adb bugreport bugreport.zip 安卓7以上使用
adb bugreport > bugreport.txt 安6以下使用
操作之前我們做好先操作一下應用,然后再執行,我們這里用adb bugreport bugreport.zip收集,但是這個命令一直有問題,我們測試發現adb bugreport > bugreport.txt其實可以使用到安卓7以上的
那么就執行adb bugreport > bugreport.txt吧。
操作1:
提交后的結果:
操作2:選中電量的收集選項
操作3:選中應用后查看右側面板:喚醒鎖----手機黑屏等情況,喚醒手機,造成耗電量大增
操作4:應用的服務---這些服務也可能會造成我們耗電的原因
詳細分析可以去官方查看,比較詳細:https://github.com/google/battery-historian
二,電量分析工具ChkBugReport
BugReport 是由 Bug 和 Report 這兩個英語單詞組成。bug 是英語「瑕疵,錯誤」的意思,在計算機領域專指程序中的問題。report 是英語「報告」的意思,顧名思義,BugReport 就是「錯誤報告」的意思。不過,真實的 BugReport 不僅僅記錄錯誤,不同級別的日志也會記錄下來,方便我們 debug,一般來說 Android 的 BugReport 是 .txt 結尾的文本文件,比如公司的 Android app 里的 BugReport 就是命名為 bugreport.txt。當然了,命名沒有限定
Android 的 BugReport 里面包含了 dumpsys,dumpstate,logcat 命令輸出的結果
要生成一個 BugReport,我們可以運行以下命令:adb bugreport > bugreport.txt
這是這個文件的內容
還有MEMORY INFO (/proc/meminfo),CPU INFO (top -n 1 -d 1 -m 30 -t), PROCRANK (procrank) ,VIRTUAL MEMORY STATS (/proc/vmstat) 等
這搭建比較簡單:只有一個jar包就可以:https://github.com/sonyxperiadev/ChkBugReport/downloads
可以用它來解析 BugReport 文件並生成網頁版報告,但是需要配置電腦的jdk環境變量
最后在cmd中執行命令:java -jar D:\app\chkbugreport-0.4-185.jar D:\test\Bugreport.txt
注意,這里java -jar 后面要跟着chkbugreport-0.4-185.jar 和 Bugreport.txt的絕對路徑,當然也可以配置環境變量
執行停止后,會出現Bugreport_out文件夾
里面有這些內容,其中index.html就是我們需要的
打開html文件后如圖:
在這里你還可以查看每一個項目的詳細信息,如:
ok,有了這個報告,就可以盡情的分析了
下面是一個功耗原理解讀,可以參閱哦