Androidの minifyEnabled は必ず有効にしましょう
結論
appにあるbuild.gradleで見かけるisMinifyEnabledはリリース用は必ずtrueにしよう
// app/build.gradle.kts
android {
...
buildTypes {
getByName("release") {
isMinifyEnabled = true // <= これ
proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro")
}
getByName("debug") {
...
有効にしないと何がおきるのか?
apkやaabのファイルサイズがメチャクチャ大きくなる!
実際にaabのファイルサイズをみたところ、、、
minifyEnabledが有効 : aabのファイルサイズ
4.7MB
minifyEnabledが無効 : aabのファイルサイズ
13.8MB
3倍以上もサイズが圧縮されることが分かった。
これはデカイ...
なぜ大きくなるのか?
公式ドキュメントによると、、
R8 によるコードの圧縮がデフォルトで有効になります。
コードの圧縮(ツリー シェイキングとも呼ばれています)とは、ランタイムに必要のないコードを R8 が判断して削除するプロセスです。 たとえば、アプリに多数のライブラリ依存関係が含まれていても、その機能のごく一部しか使用されない場合、このプロセスによってアプリのサイズを大幅に縮小できます。
だそうで、コードの圧縮と最適化を自動で行ってくれる。 便利〜