アンドロイド - CTS hostsideをgradleで構築する方法

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

参考

  • AOSP CTS
  • この記事で使用したコードは、GitHubにあります

Related Posts

codechachaCopyright ©2019 codechacha