Android Gradle プラグイン 2.2.0(2016 年 9 月)
- 依存関係:
- 新規:
-
- パフォーマンスの改善と新機能が含まれる Gradle 2.14.1 を使用します。また、Gradle デーモン使用時のローカル権限昇格を可能にするセキュリティ脆弱性を修正しました。詳細については、Gradle リリースノートをご覧ください。
externalNativeBuild {}
DSL を使用することで、Gradle でネイティブ ソースにリンクし、CMake や ndk-build を使用してネイティブ ライブラリをコンパイルできるようになりました。Gradle は、ネイティブ ライブラリを作成した後、APK にパッケージ化します。CMake と ndk-build を Gradle で使用する方法については、プロジェクトへの C / C++ コードの追加をご覧ください。- コマンドラインからビルド実行すると、Gradle は不足している SDK コンポーネントやプロジェクトが依存しているアップデートの自動ダウンロードを試みます。 詳細については、不足しているパッケージの Gradle での自動ダウンロードをご覧ください。
- 新しい試験運用版のキャッシュ機能により、Gradle では、pre-dex をかけ、保存し、pre-dex がかけられたバージョンのライブラリを再利用することで、ビルド時間を短縮できます。この試験運用版機能の使用方法について詳しくは、ビルド キャッシュのガイドをご覧ください。
- 圧縮、署名、zipalign を 1 つのタスクで処理する新しいデフォルトのパッケージ化パイプラインを採用することで、ビルドのパフォーマンスを改善しました。
gradle.properties
ファイルにandroid.useOldPackaging=true
を追加すると、以前のパッケージ化ツールを使用するように戻せます。新しいパッケージ化ツールの使用中、zipalignDebug
タスクは使用できません。ただし、createZipAlignTask(String taskName, File inputFile, File outputFile)
メソッドを呼び出すことで、独自に作成できます。 - APK 署名では、従来の JAR 署名に加えて APK 署名スキーム v2 が使用されるようになりました。生成される APK は、すべての Android プラットフォームで受け入れられます。署名後にこれらの APK を変更すると、v2 署名が無効になり、デバイスへのインストールができなくなります。この機能を無効にするには、モジュール レベルの
build.gradle
ファイルに次のコードを追加します。Groovy
android { ... signingConfigs { config { ... v2SigningEnabled false } } }
Kotlin
android { ... signingConfigs { create("config") { ... v2SigningEnabled = false } } }
- Multidex ビルドでは、ProGuard ルールを使用して、Gradle でアプリのメインの DEX ファイルにコンパイルする必要があるクラスを決定できるようになりました。Android システムはアプリの起動時にメインの DEX ファイルを最初に読み込むため、特定のクラスをメインの DEX ファイルにコンパイルすることで、起動時に優先順位を付けられます。メインの DEX ファイル専用の ProGuard 設定ファイルを作成してから、
buildTypes.multiDexKeepProguard
を使用して、設定ファイルのパスを Gradle に渡します。この DSL の使用は、アプリの一般的な ProGuard ルールを提供しメイン DEX ファイルのクラスを指定しないbuildTypes.proguardFiles
の使用とは異なります。 - デバイスにインストールするときにアプリのサイズを小さくできる
android:extractNativeLibs
フラグのサポートを追加しました。アプリのマニフェストの<application>
要素でこのフラグをfalse
に設定すると、Gradle は圧縮されていないバージョンと調整されたバージョンのネイティブ ライブラリを APK にパッケージ化します。PackageManager
がインストール時に APK からデバイスのファイル システムにネイティブ ライブラリをコピーできなくなり、アプリの差分アップデートを小さくできるというメリットもあります。 - プロダクト フレーバーに
versionNameSuffix
とapplicationIdSuffix
を指定できるようになりました(問題 #59614)。
- 変更内容:
-
getDefaultProguardFile
は、Android Plugin for Gradle が提供するデフォルトの ProGuard ファイルを返すようになり、Android SDK のファイルを使用しなくなりました。- Jack コンパイラのパフォーマンスと機能を改善しました:
testCoverageEnabled
をtrue
に設定すると、Jack で Jacoco テスト カバレッジがサポートされるようになりました。- アノテーション プロセッサのサポートを改善しました。
compile
依存関係など、クラスパス上のアノテーション プロセッサは、ビルドに自動的に適用されます。ビルドでアノテーション プロセッサを指定し、モジュール レベルのbuild.gradle
ファイルでjavaCompileOptions.annotationProcessorOptions {}
DSL を使用して引数を渡すこともできます。Groovy
android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { className 'com.example.MyProcessor' // Arguments are optional. arguments = [ foo : 'bar' ] } } } }
Kotlin
android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { className = "com.example.MyProcessor" // Arguments are optional. arguments(mapOf(foo to "bar")) } } } }
コンパイル時にアノテーション プロセッサを適用するが APK に含めないという場合は、
annotationProcessor
依存関係スコープを使用します。Groovy
dependencies { compile 'com.google.dagger:dagger:2.0' annotationProcessor 'com.google.dagger:dagger-compiler:2.0' // or use buildVariantAnnotationProcessor to target a specific build variant }
Kotlin
dependencies { implementation("com.google.dagger:dagger:2.0") annotationProcessor("com.google.dagger:dagger-compiler:2.0") // or use buildVariantAnnotationProcessor to target a specific build variant }
設定可能なパラメータのリストを表示するには、コマンドラインから次のコマンドを実行します。
java -jar /build-tools/jack.jar --help-properties
- Gradle デーモンのヒープサイズが 1.5 GB 以上の場合、Jack はデフォルトで Gradle と同じプロセスで実行されるようになりました。デーモンのヒープサイズを調整するには、
gradle.properties
ファイルに次の行を追加します。# This sets the daemon heap size to 1.5GB. org.gradle.jvmargs=-Xmx1536M
最小バージョン | デフォルトのバージョン | 備考 | |
---|---|---|---|
Gradle | 2.14.1 | 2.14.1 | 詳細については、Gradle のアップデートをご覧ください。 |
SDK Build Tools | 23.0.2 | 23.0.2 | SDK Build Tools をインストールまたは設定します。 |