2013/07/31

Titanium Mobile Android ダイエット

先日Twitter上で、Android 用の Ti アプリのサイズが大きいのでなんとかしたいって話があって、@uk1124
[Titanium]APKのサイズを小さくする方法で結果をレポートしてくださった。
今回はこの補足です。

まず、@isis331 のいうandroid/builder.pyを修正する方法では、ディストリビューション用のapkでは何の効果もありません。
なぜかというと、Ti SDK 3.1.1 GAで生成されるディストリビューションのパッケージには、デフォルトでは、ARMv5(armeabi)とARMv7(armeabi-v7a)のコードしか含まれないからです。
では、x86を含めるにはどうするかというと@infosiaさんの指摘されたtiapp.xml の<abi>で、allを指定する必要があります。これで、ARM用2つに加えてx86も含まれることになります。
反対にarmeabiだけを指定すれば最小サイズのものが出来上がります。

さて、android/builder.pyを修正する方法が有効なのは、ディトリビューション用ではなく手元でテストする場合に生成されるapkに対してです。"Install to Android Device"等のコマンドで、ビルドされたときには、全てのabiが含まれた状態でビルドされます。この場合には、android/builder.pyを修正して、必要なabiだけ配列に入れておけば、最小限のサイズのapkが生成されます(x86を省けば、8.7Mから6.2M程度になります)。
デバイスへの転送速度が気になる向きには、有効な手段かも知れません。

(注)
apkの中身は、zipとして解凍してlibs以下のフォルダをみれば、確認できます。