zipalign - ZIP/APK alignment tool for Android application files
To align infile.zip and save it as outfile.zip:
zipalign [-f] [-p] [-v] [-z]
align infile.zip
outfile.zip
To confirm the alignment of existing.zip:
zipalign -c [-p] [-v]
align existing.zip
The
align 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.
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 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.
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. Android Studio
automatically aligns your APK.
Caution: You must use zipalign at one of two specific points in the app-building
process, depending on which app-signing tool you use:
- •
- If you use apksigner, zipalign must only be performed
before the APK file has been signed. If you sign your APK using
apksigner and make further changes to the APK, its signature is
invalidated.
- •
- If you use jarsigner, zipalign must only be performed
after the APK file has been signed.
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.
For more information about how to use zipalign when building your application,
please read “Signing Your Application”:
https://developer.android.com/tools/publishing/app-signing.html
- -c
- Check alignment only (does not modify file)
- -f
- Overwrite existing outfile.zip
- -p
- Memory page alignment for stored shared object files
- -v
- Verbose output
- -z
- Recompress using Zopfli
ZIPTIME(1)
https://developer.android.com/studio/command-line/zipalign.html
The Android Open Source Project.