apkファイルを最適化する。zipalign

公式ブログが更新されて、新しいzipalignコマンドの紹介が行われている。


Android Developers Blog: Zipalign: an easy optimization


このコマンドはapkファイルの最適化を行う。
上記ブログの筆者は既存のアプリもzipalignを用いて最適化を行い再リリースしたほうが良いと勧めている。


Androidのリソースアクセスを行うコードはリソースがメモリ上にて4バイト境界のアライメントに従ったほうが効率が良いとのこと。
Androidマルチタスクのため複数のプロセスが同時にapk上のリソースにアクセスする。
このときアライメントが正しくないリソースをアクセスすると遅く、より多いメモリを必要とする。
アライメントの正しくない複数のapkをインストールした時、最悪の場合にはプロセスの再起動を繰り返すスラッシングを起こしユーザーに体感速度の低下とバッテリーライフの低下をもたらす。


zipailgnの利用は簡単でSDK1.6のADTを用いて開発している場合、プロジェクトを右クリックして"Export Signed Application Package..."を行うだけで良い。


Antを用いる場合には署名が正しく行われる必要がある。電子署名が完了して初めてzipalignが実行される。


手動でzipalignを行うには次を実行する

zipalign -v 4 source.apk destination.apk

パッケージが正しくalignされたか確認するには次を実行する。

zipalign -c -v application.apk