zipalign
, arşivdeki sıkıştırılmamış tüm dosyaların dosyanın başlangıcına göre hizalanmasını sağlayan bir zip arşivi hizalama aracıdır. Bu sayede dosyalara mmap(2)
üzerinden doğrudan erişebilirsiniz. Böylece bu verileri RAM içinde 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 derlerseniz bu işlem otomatik olarak gerçekleştirilir. Bu durumda, APK'nın hizalandığını doğrulamak için yine de zipalign
kullanmanız gerekir, ancak bunu hizalamanız gerekmez. Bu belgeler genel olarak özel derleme sistemlerinin bakım sorumlularına 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 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 4 KiB sayfa sınırına hizalandığından emin olmak amacıyla -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 hizalayıp outfile.apk
olarak kaydetmek için:
zipalign -p -f -v 4 infile.apk outfile.apk
existing.apk
öğesinin hizalaması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 kullanılabilen zipalign
seçenekleri listelenmiştir:
Option | Açıklama |
---|---|
-c | Yalnızca hizalamayı kontrol eder (dosyayı değiştirmez). |
-t | Mevcut çıkış dosyasının üzerine yazar. |
- sa. | Araç yardımını görüntüler. |
-y | Sıkıştırılmamış .so dosyayı sayfa hizalar. |
-v | Ayrıntılı çıkış. |
-z | Zopfli kullanarak yeniden sıkıştırır. |