66 lines
2.6 KiB
Plaintext
66 lines
2.6 KiB
Plaintext
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>
|
|
|
|
|
|
|