一、Android端耗电量测试
1、手机连接电脑,清除手机耗电量数据
adb shell dumpsys batterystats --enable full-wake-history #打开全量日志记录
adb shell dumpsys batterystats --reset #清除已有的耗电量数据
2、断开手机与电脑的连接,在app中操作需要测试的场景,操作完业务场景后,杀掉该app进程
3、手机连接电脑,收集耗电量数据
adb shell dumpsys batterystats > batterystats.txt
4、根据测试的包名找到对应的UID
adb shell ps | grep com.package.name
u0_a85 1836 990 1562948 60860 ffffffff 00000000 S com.package.name
UID为u0_a85去掉下划线,即为u0a85
5、打开batterystats.txt文件,找到Estimated power use,并找到对应UID的耗电量情况,下图2.71mAh即UID为u0a405操作该业务的耗电量
6、不要忘了关闭全量记录唤醒。保持开启会造成性能问题
adb shell dumpsys batterystats --disable full-wake-history
二、iOS端耗电量测试
Sysdiagnose是苹果的日志系统,通过Sysdiagnose可以获取到电量消耗,电流、电压、温度等
1、苹果开发者网站https://developer.apple.com/bug-reporting/profiles-and-logs/,下载证书BatteryLife
2、通过airdrop传送到手机,并在设置-通用-VPN与设备管理安装该证书
3、在app中操作需要测试的场景,操作完后杀掉app进程,静置约半小时(因为数据库写入会有延迟)
4、手机连接电脑,文件系统中选中手机,将数据同步到电脑
5、进入~/Library/Logs/CrashReporter/MobileDevice下的被测手机目录下,找到powerlog
6、使用DB Browser for SQLite可以查看数据,将powerlog文件直接拖进去。DB Browser for SQLite下载地址:Downloads - DB Browser for SQLite
7、获取appid
appid表 :PLAccountingOperator_EventNone_Nodes
8、查询app电量消耗
电量消耗表 :PLAccountingOperator_Aggregate_RootNodeEnergy,nodeid是通过appid表中查询出来id字段。Energy即为耗电量,数据每小时更新一次。查询语句如下:
select sum(energy) from PLAccountingOperator_Aggregate_RootNodeEnergy where nodeid=10560 and timestamp=1711482126.0;