自由気ままに趣味な日々

プログラミングや趣味のことを自由気ままに書いていくブログです

Android App Bundle を使ったらアプリのサイズが削減できた

Google Play 様から 11/1 までにアプリの targetSdkVersion を 26 (Oreo) 以上にしろというお達し*1があったので、私の公開しているアプリも久しぶりにアップデートすることにしました。

久しぶりに Android Studio を開くと出るわ出るわアップデートの山。そして失敗する gradle の sync。それらを乗り越え簡単な機能追加と動作確認後、 targetSdkVersion を上げて APK を作成しようとしたところ、見慣れぬオプションが増えていました。

f:id:kimamajin314:20181006234053p:plain

Android App Bundle とな。

調べてみたところ、言語やレイアウトなどのリソースファイルなどを対象の端末ごとに適切に配置した APK を Google Play 側で作成・配信してくれる機能らしいです。ほかにも特徴がありますが詳しくはググってください。これにより APK のサイズ縮小などが期待できるみたいです。オプションの説明にも書いていますね。

せっかくなのでこれを使ってみることにしました。生成手順は通常の APK ファイルと同じで、生成すると .aab という拡張子のファイルが生成されます。

これをいつものように Google Play Console にドラッグアンドドロップして……しかしここでエラーが。Android App Bundle を使うには『アプリの署名』( Google Play App Signing )を有効にしなければいけないそうです。

こちらの記事 (【Android】Google Play App Signingのススメ) を参考に秘密鍵を暗号化してアップロード。今まで Android Studio の Master Password 機能を使っていたので、改めて Key Store Password と Key Password を聞かれたらすっかり忘れていてだいぶ焦りましたが、こちらの記事 (忘れてしまったAndroidの署名情報は見つかるかもしれない - メモ2ブログ) を参考に Android Studio のログから引っ張り出しました。
ちなみにさすがにパスワード平文保存はやばいと思ったのか、 Android Studio 3.1 でビルドした際の log ファイルにはパスワードは全て ******* で置き換えられていました。ここでもヒヤリとしましたが、 Android Studio 2.3 でビルドした際の log ファイルにはパスワードが残っていたので一安心。

さて、『アプリの署名』を有効にして .aab をアップロードすると、 APK のインストールサイズのところが普段と違います。

f:id:kimamajin314:20181007001317p:plain

おお! 最大で 17% 近くインストールのサイズが小さくなるようです。元々がそんなに大きなアプリではないのでこの削減量が多いのか少ないのかは分かりませんが、オプションに説明に真っ先に挙げられているようにファイルサイズが小さくなるのは事実のようです。

あとはいつも通りのアップデートの説明などを加えて無事リリース。忘れるもの筆頭のパスワードも Google Play Console に覚えてもらえるようになって万々歳です。