zipalign
, arşivdeki sıkıştırılmamış tüm dosyaların, dosyanın başlangıcına göre hizalanmasına yardımcı olan bir zip arşiv hizalama aracıdır. Bu sayede dosyalara doğrudan mmap(2)
üzerinden erişilebilir. Böylece bu verileri RAM'e kopyalama ihtiyacı ortadan kalkar ve uygulamanızın bellek kullanımı azalır.
APK dosyanızı son kullanıcılara dağıtmadan önce optimize etmek için zipalign
kullanın. Android Gradle eklentisini (AGP) kullanan Android Studio ile derleme oluşturursanız bu işlem otomatik olarak yapılır. Bu durumda, APK'nın hizalandığını doğrulamak için yine de zipalign
kullanmanız gerekir, ancak APK'yı hizalamanız gerekmez. Bu belgeler çoğunlukla özel derleme sistemlerinin bakım sahiplerine yöneliktir.
Dikkat: Derleme işleminin belirli bir noktasında zipalign
kullanmanız gerekir. Bu nokta, hangi uygulama imzalama aracını kullandığınıza bağlıdır:
Hizalamayı sağlamak için zipalign
, zip Local File Header (Yerel Dosya Başlığı) bölümlerindeki "extra"
alanının boyutunu değiştirir. Bu işlem, "extra"
alanlarındaki mevcut verileri de değiştirebilir.
Kullanım
APK'nız paylaşılan kitaplıklar (.so
dosya) içeriyorsa bunların mmap(2)
için uygun 4KiB sayfa sınırına hizalandığından emin olmak için -p
kullanın. Hizalaması zipalign
öğesine zorunlu hizalama bağımsız değişkeniyle belirlenen diğer dosyalar için Android Studio, hem 32 bit hem de 64 bit sistemlerde 4 bayta hizalanır.
infile.apk
öğesini hizalamak ve outfile.apk
olarak kaydetmek için:
zipalign -p -f -v 4 infile.apk outfile.apk
existing.apk
öğesinin hizalandığını onaylamak için aşağıdaki komutu kullanın. Derleme için Android Studio veya AGP kullanıyorsanız APK'nızın uyumlu olduğunu doğrulamak için kullanmanız gereken komut budur.
zipalign -c -v 4 existing.apk
Seçenekler
Aşağıdaki tabloda mevcut zipalign
seçenekleri listelenmiştir:
Option | Açıklama |
---|---|
-c | Yalnızca hizalamayı kontrol eder (dosyayı değiştirmez). |
-f | Mevcut çıkış dosyasının üzerine yazar. |
-sa | Araç yardımını görüntüler. |
- | Sıkıştırılmamış .so dosyalarını sayfa hizalar. |
-v | Ayrıntılı çıkış. |
-z | Zopfli kullanarak yeniden sıkıştırır. |