CTS(Compatibility Test Suite)は、Androidの互換性テストです。 AOSPプロジェクトの中にコードがあるのでAOSPを受信CTSを構築することができます。
CTSのHostsideコードを修正してビルドしようとしたがframeworkの完全なコードと一緒に構築することが 気感じました。依存性のあるjarのみ入手することができている場合gradleだけで構成されることのようでしたよ。 だからAOSP(8.1)のCTSを構築して依存性のあるjarライブラリを得、これと一緒にgradleでCTS hostsideコードがビルドされるようにしてみました。
Project
依存jarは libs/
に入れました。事実、プロジェクトがビルドされ、3つのjarがあれば、されこれまでは知らないCTSでビルドされているすべてのjarを入れました。
ソースはCTS hostsideのmultiuserを例として使用しました。
.
├── build.gradle
├── gradle
│ └── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── libs
│ ├── compatibility-host-util.jar
│ ├── cts-tradefed.jar
│ ├── ddmlib-prebuilt.jar
│ ├── emmalib.jar
│ ├── host-libprotobuf-java-full.jar
│ ├── host-libprotobuf-java-lite.jar
│ ├── hosttestlib.jar
│ ├── jack-jacoco-reporter.jar
│ ├── jarjar-apache-ant.jar
│ ├── jarjar-maven-plugin-api.jar
│ ├── json-prebuilt.jar
│ ├── junit-host.jar
│ ├── kxml2-2.3.0.jar
│ ├── loganalysis.jar
│ ├── tools-common-prebuilt.jar
│ └── tradefed.jar
├── settings.gradle
└── src
├── AndroidTest.xml
└── main
└── java
└── android
└── host
└── multiuser
├── BaseMultiUserTest.java
├── CreateUsersNoAppCrashesTest.java
└── CreateUsersPermissionTest.java
build.gradle
は、以下のように設定しました。
apply plugin: 'java'
apply plugin: 'application'
mainClassName = 'android.host.multiuser'
sourceCompatibility = 1.8
targetCompatibility = 1.8
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
}
Build
$ gradle build
BUILD SUCCESSFUL in 1s
5 actionable tasks: 5 executed
参考
Related Posts
- Android - FusedLocationProviderClientに位置情報を取得する
- Android - GPS、Network位置情報を取得する(LocationManager)
- Android - adbコマンドでActivity実行
- アンドロイド - MediaStoreにメディアファイルを保存する方法
- Android - Runtime permissionリクエスト方法と例(kotlin)
- Android11 - Storage(ストレージ)の変更まとめ
- Jetpack Compose - RowとColumn
- Android 13 - 細かいメディアファイルの権限
- Android 13でNotification権限をリクエスト、通知を表示する
- エラー解決:android gradle plugin requires java 11 to run. you are currently using java 1.8.
- Query method parameters should either be a type that can be converted into a database column or a List
- Android - TabLayoutの実装方法(+ ViewPager2)
- Android - adbコマンドで特定のパッケージのプロセスの終了
- Android - adb push、pullでファイルのコピー、ダウンロード
- Android - adbコマンドでsettings value確認、変更、
- Android 12 - IntentFilterのexported明示的な宣言
- Android - adb logcatコマンドでログ出力
- Android - ACTION_BOOT_COMPLETEDイベント受信
- Android - Foreground Service実行
- Android - ファイル入出力の例(Read、Write、内部、外部ストレージ)
- Android - アプリの権限を確認(Permission check)
- Android - adbで実行中のプロセス、スレッドリスト及びメモリ情報の確認
- Android - Broadcast Receiver登録およびイベントの受信方法
- Android - Cleartext HTTP ... not permitted例外解決方法
- Androidのビルドエラー - Calls to Java default methods are prohibited in JVM target 1.6
- アンドロイド - Assetsでファイルを読み取る方法
- アンドロイドのさまざまなNotification種類と実装方法
- アンドロイド - INSTALL_FAILED_TEST_ONLYエラー解決方法
- Android EspressoのCustom Matcher実装方法
- Android Espressoを使用してUIをテストする方法(3)
- アンドロイド - CTS hostsideをgradleで構築する方法
- Androidのアプリのデータフォルダーのパスと内部/外部ストレージ説明
- アンドロイド - 最初のApp作成
- Androidをインストールする方法(Windows)