最近羅列了一些功耗分析需要的常見日志:
測試功耗前: adb shell dumpsys batterystats --reset adb shell dumpsys batterystats --enable full-wake-history 測試功耗后,使用腳本導出如下功耗日志: | 腳本 chmod +x collect_logs.sh ./collect_logs.sh 運行腳本后,所有日志將被保存到 logs_<時間戳>.zip 文件中 | |
抓取命令 | 說明 | #!/bin/bash # 定義日志保存目錄 LOG_DIR="logs" mkdir -p $LOG_DIR # 1. adb bugreport echo "Collecting adb bugreport..." adb bugreport > $LOG_DIR/bugreport.txt # 2. adb shell dumpsys batterystats echo "Collecting batterystats..." adb shell dumpsys batterystats > $LOG_DIR/batterystats.txt # 3. adb shell dumpsys power echo "Collecting power info..." adb shell dumpsys power > $LOG_DIR/power.txt # 4. adb shell dumpsys window echo "Collecting window info..." adb shell dumpsys window > $LOG_DIR/window.txt # 5. adb shell dumpsys activity processes echo "Collecting process status..." adb shell dumpsys activity processes > $LOG_DIR/process_status.txt # 6. adb logcat echo "Collecting logcat..." adb logcat -d > $LOG_DIR/logcat.txt # 7. adb shell dumpsys cpuinfo echo "Collecting CPU info..." adb shell dumpsys cpuinfo > $LOG_DIR/cpuinfo.txt # 8. adb shell dumpsys netstats echo "Collecting netstats..." adb shell dumpsys netstats > $LOG_DIR/netstats.txt # 9. adb shell getprop echo "Collecting system properties..." adb shell getprop > $LOG_DIR/getprop.txt # 10. adb shell dumpsys jobscheduler echo "Collecting jobscheduler info..." adb shell dumpsys jobscheduler > $LOG_DIR/jobscheduler.txt # 11. adb shell dumpsys usagestats echo "Collecting usagestats..." adb shell dumpsys usagestats > $LOG_DIR/usagestats.txt # 12. adb shell dumpsys settings echo "Collecting settings info..." adb shell dumpsys settings > $LOG_DIR/settings.txt # 13. adb shell dumpsys sensorservice echo "Collecting sensor info..." adb shell dumpsys sensorservice > $LOG_DIR/sensorservice.txt # 14. adb shell dumpsys device_policy echo "Collecting device policy info..." adb shell dumpsys device_policy > $LOG_DIR/device_policy.txt # 15. adb shell tcpdump echo "Collecting tcpdump (this may take a while)..." adb shell tcpdump -i any -s 0 -w /sdcard/capture.pcap & TCPDUMP_PID=$! sleep 10 ?# 抓包 10 秒 kill $TCPDUMP_PID adb pull /sdcard/capture.pcap $LOG_DIR/capture.pcap adb shell rm /sdcard/capture.pcap # 16. adb shell dumpsys wifi echo "Collecting Wi-Fi info..." adb shell dumpsys wifi > $LOG_DIR/wifi.txt # 17. adb shell dumpsys location echo "Collecting location info..." adb shell dumpsys location > $LOG_DIR/location.txt # 18. adb shell iptables echo "Collecting iptables rules..." adb shell iptables -L -v -n > $LOG_DIR/iptables.txt # 19. adb shell dumpsys netpolicy echo "Collecting netpolicy info..." adb shell dumpsys netpolicy > $LOG_DIR/netpolicy.txt # 20. adb shell dumpsys deviceidle echo "Collecting deviceidle info..." adb shell dumpsys deviceidle > $LOG_DIR/deviceidle.txt # 21. adb shell dumpsys connmetrics echo "Collecting connmetrics info..." adb shell dumpsys connmetrics > $LOG_DIR/connmetrics.txt # 打包日志 echo "Compressing logs..." TIMESTAMP=$(date +"%Y%m%d_%H%M%S") ZIP_FILE="logs_$TIMESTAMP.zip" zip -r $ZIP_FILE $LOG_DIR echo "Logs have been saved to $ZIP_FILE" |
adb bugreport | 內部提單:雖然是最佳的功耗日志,但是抓取耗時且日志大,故實驗室環境抓就行 | |
adb shell dumpsys batterystats | 大數據提單:BatteryStats日志可以理解為簡版的BugReport日志,優點日志小 | |
adb shell dumpsys power | 電源管理信息,也包含wakelock日志 | |
adb shell dumpsys window | 窗口管理信息 | |
adb shell dumpsys activity processes | 進程狀態信息 | |
adb logcat | 1.內部提單需完整流水日志,例如完整的mtklog、展訊log 2.大數據提單,需至少最近2小時內的logcat流水日志 | |
adb shell dumpsys cpuinfo | 獲取 CPU 使用情況 | |
adb shell dumpsys netstats | 網絡 socket 狀態 | |
adb shell getprop | 獲取系統屬性 | |
adb shell dumpsys jobscheduler | 獲取 JobScheduler 任務信息 | |
adb shell dumpsys usagestats | 獲取應用使用統計信息 | |
adb shell dumpsys settings | 獲取系統設置信息 | |
adb shell dumpsys sensorservice | 獲取傳感器信息 | |
adb shell dumpsys device_policy | 獲取設備策略信息 | |
adb shell tcpdump -i any -s 0 -w /sdcard/capture.pcap | 抓取網絡數據包(需要 root 權限) | |
adb shell dumpsys wifi | 獲取 Wi-Fi 狀態信息 | |
adb shell dumpsys location | 獲取 GPS 狀態信息 | |
adb shell iptables -L -v -n | 獲取 iptables 規則 | |
adb shell dumpsys netpolicy | 獲取網絡策略信息 | |
adb shell dumpsys deviceidle | 獲取Doze模式管控信息 | |
adb shell dumpsys connmetrics | 待機中packet wakeup events | |
/power/log | 定制的通用、場景、資源監控、溫升等7天內的精簡日志 |
例如導出如下bugReport日志和dump日志,其中流水日志建議使用方案商給的流水日志單獨導出