[VTSR10R2]CtsStatsdHostTestCases

问题描述

CtsStatsdHostTestCases
android.cts.statsd.atom.UidAtomTests#testDeviceCalculatedPowerBlameUid
android.cts.statsd.validation.BatteryStatsValidationTests#testPowerBlameUid
Fail:
junit.framework.AssertionFailedError: No power value for uid 10149
junit.framework.AssertionFailedError: No power value for uid 10146
junit.framework.AssertionFailedError: Statsd: No power value for uid 10151

解决方案

用测试的版本 执行以下命令,看看frameworkresoverlay是否有编译到系统中:

adb shell cmd overlay dump > tmp.txt

 

从tmp.txt找到frameworkresoverlay 或者 framework-res__auto_generated_rro_product apk,pull出来
然后再反编译apk,看看Power profile 是否存在

 

如果配置文件都在,请看看以下方法中到底是cpuactive时间为0,还是从配置中拿到的配置的Power为0
/frameworks/base/core/java/com/android/internal/os/CpuPowerCalculator.java

public void calculateApp(BatterySipper app, BatteryStats.Uid u, long rawRealtimeUs,

53          cpuPowerMaUs += u.getCpuActiveTime() * 1000 * mProfile.getAveragePower(

54                  PowerProfile.POWER_CPU_ACTIVE);

 

在测试机的dump overlay的执行结果中,以下文件是否有编译到rro apk中呢?
EX: mt6762q/platform/vendor/tinno/u520/trunk/overlay/frameworks/base/core/res/res/xml/power_profile.xml

 

比如mtk原来是放在该目录:
/vendor/mediatek/proprietary/packages/overlay/vendor/FrameworkResOverlay
那么dump overlay出来的结果就可以看到有FrameworkResOverlay  apk,
且在mk文件中加进去了power profile的路径
/vendor/mediatek/proprietary/packages/overlay/vendor/FrameworkResOverlay/Android.mk
LOCAL_RESOURCE_DIR += $(LOCAL_PATH)/power/res ,

aapt dump resources 这个apk的结果中,就可以看到power profile有编译进去。

请客户找到calculateApp的function,在其中加log,看看到底是cpuactive时间为0,还是从配置文件power profile 中拿到的Power为0:
/frameworks/base/core/java/com/android/internal/os/CpuPowerCalculator.java
public void calculateApp(BatterySipper app, BatteryStats.Uid u, long rawRealtimeUs,
53          cpuPowerMaUs += u.getCpuActiveTime() * 1000 * mProfile.getAveragePower(
54                  PowerProfile.POWER_CPU_ACTIVE);

只有cpuPowerMaUs  这个值为0 case才会失败,从代码中的公式也可以看出active时间 和 power配置任一为0都可能导致失败

微信扫码打赏

作者: RESSRC

个人资源站

《[VTSR10R2]CtsStatsdHostTestCases》有一个想法

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据