% ZIPALIGN(1)
% The Android Open Source Project

# NAME

zipalign - ZIP/APK alignment tool for Android application files

# SYNOPSIS

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.

# DESCRIPTION

`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

# OPTIONS

-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

# SEE ALSO

ZIPTIME(1)

https://developer.android.com/studio/command-line/zipalign.html

