なぜ未調整のapkが必要なのですか?


151

Android Gradleはapkを2つのバイナリで生成します:未整列と整列。

文書は言いました...

秘密鍵でAPKに署名したら、ファイルに対してzipalignを実行します。このツールは、すべての非圧縮データが、ファイルの先頭からの特定のバイトアライメントで始まることを保証します。4バイト境界でのアライメントを保証すると、デバイスにインストールしたときにパフォーマンスが最適化されます。整列すると、Androidシステムは、パッケージからすべてのデータをコピーするのではなく、整列制限付きのバイナリデータが含まれていても、mmap()でファイルを読み取ることができます。利点は、実行中のアプリケーションが消費するRAMの量が減ることです。

整列されたapkのように見えるように配布することを強くお勧めします。私にとって、私は結果製品として整列されたapk のみを使用し、整列されていない apk を無視します。

未調整のAPKには、開発中に特別な使用法がありますか?

回答:


197

これは2段階のプロセスです。未調整のapkは単なる中間製品です。

  1. 未調整のAPKが生成されます
  2. 非整列は整列され、整列されたapkを生成します

3
早速のお返事ありがとうございます。したがって、アラインされていないapkは単なる暫定的なものと言えますか?
Youngjae 14

1
正しい。一部のIDEは、ビルドプロセスを高速化するために、デバッグビルドの最終製品としてそれを生成します。
flx 2014

2
unalign apk fileはアプリケーションのデバッグに役立ちますか?ありがとう:)
hqt

11
いいえ、そうではありません。基本的には、配置されたzipファイルと同じ内容ですが、ファイルの境界が4bブロックに配置されていません。
flx

49

整列されたapkに署名すると整列が取り消されるため、unaligned(signed)APKが必要です。

ドキュメントから:

注意: zipalignは、.apkファイルが秘密鍵で署名された後にのみ実行する必要があります。署名する前にzipalignを実行すると、署名手順によって配置が取り消されます。

詳細については、この回答を参照してください。ここでは、詳細なビルドプロセスは次のとおりです。 ここに画像の説明を入力してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.