APKのサイズを34KBから21KBまで減らすために行ったこと🐱
EasterEgg Neko Atsume LauncherのAPKサイズを極限まで小さくすることに取り組んだ成果を適当に書いておく。
EasterEgg Neko Atsume Launcherがそもそもなんだ??って話だろうけど、以下とか読めばOK。
どのようにAPKのサイズを小さくしたか
コードはGithub上に公開してある。読むほどの価値はない...🐱
具体的にAPKサイズのチューニングを行ったPull Requestは以下の2つ。
不要なリソースファイルを削除する
EasterEgg Neko Atsume Launcherはアプリの性質上、ほとんどリソースを必要としない。
R.javaさえ消し去りたいくらいだ。
styles.xmlはいらないね。テーマの定義なんてAndroidManifest.xmlに直接書けばいい。さらば、styles.xml。
次はstrings.xml、いらないね。アプリ名なんてAndroidManifest.xmlに直接書けばいい。さらば、strings.xml。
これでres配下はアプリアイコンが配置してあるmipmapだけになった。
不要なリソースの削除はココらへんが限界。(mipmap-mdpiとか消してよくね?とかもあるけど、そこは消さずに残す縛り
アプリアイコンを最適化(optimize)する
不要なリソースファイルを消したところで削れるのは所詮 数十 〜 百 byteほどだ。
ということでアプリ唯一のリソースであるアプリアイコンを最適化してみよう。
使うツールは画像最適化ツールの「ImageOptim」。
ImageOptim — better Save for Web
使い方が簡単なのでとても嬉しい。ファイルをDropするだけで最適化してくれて、どれくらい最適化できてのかも表示してくれる。
んで、ImageOptimにアプリアイコンをDropして最適化してみる。
アプリアイコンが 30%くらい最適化された。素晴らしい!
ImageOptimでもうひと押し最適化する
ImageOptimのメニューバーの「ツール」を開いてみると最適化の方式が選べることに気づいた。
「品質: 100%」というのがデフォルトの設定みたい。最適化しても品質は落ちさないというのは当たり前か。
んじゃ、その下にある「非可逆圧縮」の動作に変えて再度アプリアイコンを最適化してみた。
画像のサイズは小さくなるが、画像の品質が落ちるので適材適所ではあるが、ここは心を鬼にしてAPKのサイズを小さくすることに優先するぞ!
ぐぬぬ...🐱よ... ちょっと品質落ちるけどごめんなー!!という気持ち...
その結果、Release APKのサイズが21KBになった!!
最適化前のVersion 1のRelease APKのサイズが 34KBだったので、 34 - 21 = 13KBの削減だ。
最高だ🐱!!
21KBになったVersion 2のAPKをリリース
最高のアップデートだ🐱
まとめ
アプリの性質によってはリリースを限界まで削減できる。
コードをいじったり、削除したりで限界がきたら画像をImageOptim等で最適化してみるといい。
🐱最高!!