page.title=zipalign
parent.title=Tools
parent.link=index.html
@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 ant.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}tools/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] &lt;alignment> infile.apk outfile.apk</pre>

<p>To confirm the alignment of {@code existing.apk}:</p>

<pre>zipalign -c -v &lt;alignment> existing.apk</pre>

<p>The {@code &lt;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>



