【備忘録】Android Studioで生成するAABを圧縮する手順(R8)


概要

Androidアプリを開発していると、いつの間にか生成するAABのサイズが肥大化していきます。
AABが大きいということは、AABをスマートフォンにダウンロードするのも大変なわけで、なるべく小さくしたいと考えるわけです。
Androidでは、「圧縮」をすると同時に難読化なども行うことができます。
ここでは、その設定を備忘録として残してます。

R8 コンパイラ

Androidデベロッパー向けに「圧縮、難読化、最適化」の設定が提供されています。

手順

手順は、至って簡単です。

まずは、build.gradle(app側)の中から、下記の設定を見つけます。

build.gradle(app)
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
}

見つけたら、その部分を下記に書き換えます。
具体的には、「minify」を有効にする。「shrinkResources」を追加し有効にする。以上です。

build.gradle(app)
buildTypes {
    release {
        minifyEnabled true
        shrinkResources true
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
}

効果

単純にどれだけ小さくなるか?はものに寄りけりですが、この設定によって、GooglePlayConsole上でかなりの恩恵を受けます。

例えば、「基本アクティビティ」でサンプルのプロジェクトを作り、何も変更せずにビルドしてAABを作成すると「3,852KB」でした。
一方、R8コンパイラの設定に書き換えると「1,743KB」になりました。
半分以下のサイズになった・・・・

GooglePlayConsole側もアプリサイズの肥大化を気にしているようですし、小さくするのが良いですね。