修正のヒント:
1. CTS テスト コードを確認し、hasSystemFeature を使用してシステム機能があるかどうかを判断します。リターンがない場合 (後続のテストがない場合)、デバイスにこの機能がない場合は、この機能を削除して CTS がではこの機能は検出されません。機能をテストすると合格できます。
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、Ctsテーマホストテストケース
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_multiuserMinimumUsers を 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 メソッドがコード内で呼び出され、渡された 2 番目のブール値が true になり、デバイスがモンキーに設定されます。
5、CtsUiAutomationTestCases:android.app.uiautomation.cts.UiAutomationTest#testWindowAnimationFrameStats
アクティビティジャンプアニメーション、ジャンプを禁止するconfig_disableTransitionAnimationの値をfalseに変更
6、CtsContentTestCases:android.content.cts.AvailableIntentsTest
このテストの内容は、対応するアクションを受け取るアクティビティが少なくとも 1 つあるが、対応するアプリがデバイスにインストールされていないことをテストすることです。ネイティブアプリをインストールしてパスするだけです。
7、CtsOsTestCases:android.os.cts.StrictModeTest
対応する android.intent.action.VIEW と typ=image/jpeg のアクティビティを持つモジュールがデバイスにない場合、テスト ケース内の jpg を暗黙的に開始し、ネイティブの Gallery2 をインストールして渡すことができます。
8、CtsProviderTestCases:android.provider.cts.MediaStoreIntentsTest
このテストの内容は、IntentFilterに対応するインテントで取得した情報を解析できるResolveInfoがあるかどうかですが、ネイティブのGallery2をインストールすることで合格できます。
9、CtsWindowManagerDeviceTestCases:
android.server.wm.MultiDisplaySystemDecorationTests#testLaunchSingleHomeActivityOnDisplayWithDecorations
android.server.wm.MultiDisplaySystemDecorationTests#testLaunchHomeActivityOnDisplayWithDecorations
android.server.wm.MultiDisplaySystemDecorationTests#testLaunchSingleSecondaryHomeActivityOnDisplayWithDecorations
launcher3に戻れないことによるエラー ネイティブのlauncher3をインストールしてパスします。
10、CtsKeystoreTestCases:android.keystore.cts.KeyAttestationTest
Google が提供する認証キーは事前に作成する必要があります。そうしないと、cts 関連のテストが失敗します。
11、CtsAppSecurityHostTestCases:android.appsecurity.cts.AdoptableHostTest#testPrimaryStorage
SDカードが必要です
12、CtsOmapiテストケース
NFC に関連して、CTS の特別なホワイト カード テストを使用する必要があります。
13、CtsSystemUiTestCases:
android.systemui.cts.WindowInsetsBehaviorTests#tappableElements_tapSamplePoints_notExcludeViewRects_withoutAnyCancel
android.systemui.cts.WindowInsetsBehaviorTests#tappableElements_tapSamplePoints_excludeViewRects_withoutAnyCancel
画面密度が低く、クリック サンプリング ポイントが完了する前にタイムアウト時間に達しました。画面密度を上げるには、次のように渡します: adb Shell wm Density 480