在 Android 像素设备上,有一些内核路径可以用于测量 CPU/GPU 的功耗。
首先,我们需要获取 CPU 和 GPU 相关的内核路径。可以通过以下方式:
adb shell ls /sys/class/power_supply/*/uevent # CPU电源相关路径
adb shell ls /sys/class/power_supply/battery/uevent # 电池电源相关路径
adb shell cat /sys/class/power_supply/*/uevent | grep POWER_SUPPLY_NAME # 其他电源属性
adb shell dumpsys batterystats # 电量统计信息
adb shell dumpsys batterystats --reset # 重置电量统计信息
接下来,我们可以使用以下内核路径计算 CPU 和 GPU 的功耗:
adb shell cat /sys/class/power_supply/battery/current_now # 电池电流
adb shell cat /sys/class/power_supply/battery/voltage_now # 电池电压
adb shell cat /sys/class/power_supply/battery/capacity # 电池电量
adb shell cat /sys/class/kgsl/kgsl-3d0/gpuclk # GPU 频率
adb shell cat /sys/class/kgsl/kgsl-3d0/gpubusy # GPU 占用率
adb shell cat /proc/stat | grep "cpu " | awk '{print ($2+$3+$4+$5+$6+$7+$8)}' # CPU 时间戳
adb shell cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq # CPU 频率
使用这些数据,我们可以通过一些公式来计算 CPU 和 GPU 的功耗:
CPU 功耗 = (CPU 电流 x CPU 电压) / 1000000000(请注意单位转换)
GPU 功耗 = (GPU 占用率 x GPU 频率 x GPU 电压) / 1000000(请注意单位转换)
使用上面提供的内核路径和公
上一篇:Android向其他模块发送广播