概要
アプリが対応している言語を app/build.gradle
に指定することで、参照しているライブラリ内の言語リソースのうち不要な言語リソースを削除することができる。
→ apk ファイルサイズを削減できる。
(指定しない場合、ライブラリ内の全ての言語リソースが apk に同梱される)
詳細
https://developer.android.com/studio/build/shrink-code.html?hl=ja#unused-alt-resources
を参照
アプリが日本語と英語しか対応していなくても、アプリが使っているライブラリ(AppCompat や Google Play サービスなど)に使用しない言語の文字列リソース(韓国語など)が含まれている事がある。
app/build.gradle に
android {
defaultConfig {
...
resConfigs "en", "fr"
}
}
などの指定を行うことにより、指定した言語以外のリソースファイルを削除し、apk ファイルサイズを削減することができる。
実際にやってみた
前提
- Android Studio 2.3.3 で
Empty Activity
のテンプレートで新規作成し、apk をリリースビルドで作成する。 - ApkAnalyzer でファイルサイズを確認する。
結果
apk サイズが 約 76KB 削減できた!
設定前(デフォルト)
- Raw FileSize : 1.4 MB
-
resources.arsc
の Raw FileSize : 221.3 KB -
resources.arsc
のstring
にさまざまな言語リソースが含まれていることがわかる
設定
app/build.gradle
に赤下線部の設定を加える(日本語と英語のみ対応する設定)
設定後
- Raw FileSize : 1.4 MB → 1.3 MB
-
resources.arsc
の Raw FileSize : 221.3 KB → 145.2 KB 約 76 KB 削減 -
resources.arsc
のstring
に指定した言語しか含まれていないことがわかる
まとめ
app/build.gradle
に、アプリが対応している言語を resConfigs
で明記すると、外部ライブラリ内の不要な言語リソースを削減でき、 apk ファイル削減につながる。