Android---CTS失败项解析

修改tips:
1、查看CTS测试代码中使用hasSystemFeature判断是否有系统feature,如果没有return(不进行后面的测试)如果刚好设备没有这个feature,可以把这个feature移除掉,这样CTS就不会对这个feature进行测试,即可pass。
2、CTS测试开始会安装相应的进程包,测试结束就会卸载这个包。可以通过接收广播来进行相应的操作。代码如下:

        String currentPackage = intent.getData().getSchemeSpecificPart();//被安装/卸载的包名
        switch (action) {
            case Intent.ACTION_PACKAGE_ADDED:
                if ("".equals(currentPackage)) {
                    //判断CTS正在运行的时候,做相应的处理
                }
                break;
            case Intent.ACTION_PACKAGE_REMOVED:
                if ("".equals(currentPackage)) {
                    //判断CTS结束的时候,做相应的处理
                }
                break;
            default:
                break;
        }

1、CtsThemeHostTestCases

在PackageManagerService.java中

@SuppressWarnings("resource")
@Override
protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
	.......
	synchronized (mAvailableFeatures) {
                    for (FeatureInfo feat : mAvailableFeatures.values()) {
                        if (checkin) {
                            pw.print("feat,");
                            pw.print(feat.name);
                            pw.print(",");
                            pw.println(feat.version);
                        } else {
                            pw.print("  ");
                            pw.print(feat.name);
                            if (feat.version > 0) {
                                pw.print(" version=");
                                pw.print(feat.version);
                            }
                            pw.println();
                        }
                    }
                    //判断CTS运行跳过此项测试
                    if (isPackageAvailable("android.theme.app",mContext.getUserId())) {
                        pw.print("  ");
                        pw.print("android.hardware.type.television");
                        pw.println();
                    }
                }
}

2、CtsMultiUserHostTestCases

如果不支持多用户,可以把最大用户数config_multiuserMaximumUsers改成1

3、CtsAppTestCases:android.app.cts.ActivityManagerMemoryClassTest#testGetMemoryClass

如果发生了OOM,可能是设备定义的最大内存增长值dalvik.vm.heapgrowthlimit(注意这个值要大于192)与init.target.rc中定义的不相同

4、CtsAppTestCases:android.app.cts.ActivityManagerTest#testIsUserAMonkey

代码中有调用ActivityManagerService.java的setActivityController方法,并且传的第二个boolean值传入的是true,这样会将设备设置成monkey

5、CtsUiAutomationTestCases:android.app.uiautomation.cts.UiAutomationTest#testWindowAnimationFrameStats

activity跳转动画,将禁止跳转的config config_disableTransitionAnimation的值修改为false

6、CtsContentTestCases:android.content.cts.AvailableIntentsTest

此条测试的内容是测至少有一个接收对应action的activity,但是对应的app没有安装到设备中。装上原生的app即可pass。

7、CtsOsTestCases:android.os.cts.StrictModeTest

设备中没有模块有对应的android.intent.action.VIEW和typ=image/jpeg的activity可以隐式启动测试用例中的jpg,装上原生的Gallery2即可pass

8、CtsProviderTestCases:android.provider.cts.MediaStoreIntentsTest

此条测试的内容是是否有ResolveInfo能够解析与IntentFilter相对应的intent得到的信息,装上原生的Gallery2即可pass

9、CtsWindowManagerDeviceTestCases:

android.server.wm.MultiDisplaySystemDecorationTests#testLaunchSingleHomeActivityOnDisplayWithDecorations

android.server.wm.MultiDisplaySystemDecorationTests#testLaunchHomeActivityOnDisplayWithDecorations

android.server.wm.MultiDisplaySystemDecorationTests#testLaunchSingleSecondaryHomeActivityOnDisplayWithDecorations

无法返回到launcher3导致的错误,装上原生的launcher3即可pass

10、CtsKeystoreTestCases:android.keystore.cts.KeyAttestationTest

需预制谷歌提供的 Attestion Key,否则cts 相关测试失败

11、CtsAppSecurityHostTestCases:android.appsecurity.cts.AdoptableHostTest#testPrimaryStorage

需要sd卡

12、CtsOmapiTestCases

跟NFC相关,需要使用CTS专用白卡测试

13、CtsSystemUiTestCases:

android.systemui.cts.WindowInsetsBehaviorTests#tappableElements_tapSamplePoints_notExcludeViewRects_withoutAnyCancel

android.systemui.cts.WindowInsetsBehaviorTests#tappableElements_tapSamplePoints_excludeViewRects_withoutAnyCancel

屏幕密度低,点击采样点还没执行完就到达timeout时间,调大屏幕密度可以pass:adb shell wm density 480

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值