zipalign は、zip アーカイブのアライメント ツールです。このツールを使用すると、アーカイブに含まれるすべての未圧縮ファイルが、ファイルの先頭を基準にアライメントされます。これらのファイルに mmap(2)
から直接アクセスできるようになるため、このデータを RAM にコピーする必要がなくなり、アプリのメモリ使用量を減らせます。
APK ファイルをエンドユーザーに配布する前に、必ず zipalign を使用してファイルを最適化するようにしてください。Android Studio を使用してビルドすると、この処理が自動的に行われます。このドキュメントは、カスタム ビルドシステムの管理者を対象としています。
注意: 使用するアプリ署名ツールに応じて、アプリビルド プロセス内の 2 つのポイントのいずれかで zipalign を使用する必要があります。
アライメントは、zip ローカル ファイル ヘッダー セクションの「extra」フィールドのサイズを変更することで行われます。このプロセスによって、「extra」フィールド内の既存のデータが変更される場合があります。
アプリのビルド時に zipalign を使用する方法について詳しくは、アプリへの署名をご覧ください。
使用方法
APK に共有ライブラリ(.so
ファイル)が含まれている場合、-p
を使用して、mmap(2)
に適した 4 KiB のページ境界にライブラリがアライメントされるようにしてください。それ以外のファイル(zipalign に対する必須のアライメント引数によってアライメントが決定される)の場合、Studio は 32 ビットシステムと 64 ビットシステムの両方で 4 バイトにアライメントします。
infile.apk
のアライメントを調整して outfile.apk
として保存するには:
zipalign -p -f -v 4 infile.apk outfile.apk
existing.apk
のアライメントを確定するには:
zipalign -c -v 4 existing.apk
zipalign -h
を使用すると、サポートされているフラグの一覧を確認できます。