アプリの最適化を有効にする

最適なユーザー エクスペリエンスを実現するには、アプリをできるだけ小さく、高速になるように最適化する必要があります。R8 と呼ばれるアプリ オプティマイザーは、未使用のコードやリソースを削除し、コードを書き換えてランタイム パフォーマンスなどを最適化することで、アプリを効率化します。ユーザーにとって、これは次のことを意味します。

  • 起動時間を短縮
  • レンダリングとランタイム パフォーマンスの向上
  • ANR の減少

アプリの最適化を有効にするには、次のコードに示すように、リリースビルドのアプリレベルのビルド スクリプトで isMinifyEnabled = true(コードの最適化用)と isShrinkResources = true(リソースの最適化用)を設定します。両方の設定を常に有効にすることをおすすめします。最適化によってプロジェクトのビルド時間が長くなり、コードの変更方法によってはデバッグが難しくなる可能性があるため、アプリの最適化は、公開前にテストするアプリの最終バージョン(通常はリリースビルド)でのみ有効にすることをおすすめします。

Kotlin

android {
    buildTypes {
        release {

            // Enables code-related app optimization.
            isMinifyEnabled = true

            // Enables resource shrinking.
            isShrinkResources = true

            proguardFiles(
                // Default file with automatically generated optimization rules.
                getDefaultProguardFile("proguard-android-optimize.txt"),

                ...
            )
            ...
        }
    }
    ...
}

Groovy

android {
    buildTypes {
        release {

            // Enables code-related app optimization.
            minifyEnabled true

            // Enables resource shrinking.
            shrinkResources true

            // Default file with automatically generated optimization rules.
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt')

            ...
        }
    }
}

さらに小さなアプリ向けにリソース圧縮を最適化

Android Gradle プラグイン(AGP)の 8.12.0 バージョンでは、リソースとコードの最適化を統合して、より小さく高速なアプリを作成することを目的とした、最適化されたリソースの縮小が導入されています。

最適化されたリソース圧縮を有効にする

AGP の 9.0.0 より前のバージョンで新しい最適化されたリソース圧縮パイプラインを有効にするには、プロジェクトの gradle.properties ファイルに次の行を追加します。

android.r8.optimizedResourceShrinking=true

AGP 9.0.0 以降のバージョンを使用している場合は、android.r8.optimizedResourceShrinking=true を設定する必要はありません。ビルド構成で isShrinkResources = true が有効になっている場合、最適化されたリソース圧縮が自動的に適用されます。

R8 最適化設定を確認して構成する

R8 の最適化機能を最大限に活用するには、プロジェクトの gradle.properties ファイルから次の行を削除します(存在する場合)。

android.enableR8.fullMode=false # Remove this line from your codebase.

アプリの最適化を有効にすると、スタック トレースが理解しにくくなります。特に、R8 でクラス名やメソッド名が変更された場合は、なおさらです。ソースコードに正しく対応するスタック トレースを取得するには、元のスタック トレースを復元するをご覧ください。

R8 が有効になっている場合は、起動パフォーマンスをさらに向上させるために起動プロファイルを作成することもおすすめします。

アプリの最適化を有効にしてエラーが発生した場合は、次の方法でエラーを修正できます。

ビルド速度の最適化に関心がある場合は、R8 の実行方法を構成するで、環境に基づいて R8 を構成する方法をご覧ください。