最近罗列了一些功耗分析需要的常见日志:
测试功耗前: 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日志,其中流水日志建议使用方案商给的流水日志单独导出