diff options
Diffstat (limited to 'docs/html/guide/developing/tools/zipalign.jd')
-rw-r--r-- | docs/html/guide/developing/tools/zipalign.jd | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/docs/html/guide/developing/tools/zipalign.jd b/docs/html/guide/developing/tools/zipalign.jd new file mode 100644 index 0000000..6231798 --- /dev/null +++ b/docs/html/guide/developing/tools/zipalign.jd @@ -0,0 +1,65 @@ +page.title=zipalign +@jd:body + +<p>zipalign is an archive alignment tool that provides important +optimization to Android application (.apk) files. +The purpose is to ensure that all uncompressed data starts +with a particular alignment relative to the start of the file. Specifically, +it causes all uncompressed data within the .apk, such as images or raw files, +to be aligned on 4-byte boundaries. This +allows all portions to be accessed directly with {@code mmap()} even if they +contain binary data with alignment restrictions. +The benefit is a reduction in the amount of RAM consumed +when running the application.</p> + +<p>This tool should always be used to align your .apk file before +distributing it to end-users. The Android build tools can handle +this for you. When using Eclipse with the ADT plugin, the Export Wizard +will automatically zipalign your .apk after it signs it with your private key. +The build scripts used +when compiling your application with Ant will also zipalign your .apk, +as long as you have provided the path to your keystore and the key alias in +your project {@code build.properties} file, so that the build tools +can sign the package first.</p> + +<p class="caution"><strong>Caution:</strong> zipalign must only be performed +<strong>after</strong> the .apk file has been signed with your private key. +If you perform zipalign before signing, then the signing procedure will undo +the alignment. Also, do not make alterations to the aligned package. +Alterations to the archive, such as renaming or deleting entries, will +potentially disrupt the alignment of the modified entry and all later +entries. And any files added to an "aligned" archive will not be aligned.</p> + +<p>The adjustment is made by altering the size of +the "extra" field in the zip Local File Header sections. Existing data +in the "extra" fields may be altered by this process.</p> + +<p>For more information about how to use zipalign when building your +application, please read <a href="{@docRoot}guide/publishing/app-signing.html">Signing +Your Application</a>.</p> + + +<h3>Usage</h3> + +<p>To align {@code infile.apk} and save it as {@code outfile.apk}:</p> + +<pre>zipalign [-f] [-v] <alignment> infile.apk outfile.apk</pre> + +<p>To confirm the alignment of {@code existing.apk}:</p> + +<pre>zipalign -c -v <alignment> existing.apk</pre> + +<p>The {@code <alignment>} is an integer that defines the byte-alignment boundaries. +This must always be 4 (which provides 32-bit alignment) or else it effectively +does nothing.</p> + +<p>Flags:</p> + +<ul> + <li>{@code -f} : overwrite existing outfile.zip</li> + <li>{@code -v} : verbose output</li> + <li>{@code -c} : confirm the alignment of the given file</li> +</ul> + + + |