zipalign
Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
zipalign
, sıkıştırılmamış tüm dosyaların otomatik olarak
arşivde
dosyanın başına göre hizalanır. Bu sayede dosyalara doğrudan
mmap(2)
, bu verileri RAM'de kopyalama ihtiyacını ortadan kaldırır ve uygulamanızın bellek kullanımını azaltır.
APK dosyanızı şu kullanıcılara dağıtmadan önce optimize etmek için zipalign
kullanın:
son kullanıcılara
ulaşabilirsiniz. Android Gradle eklentisini (AGP) kullanan Android Studio kullanarak derliyorsanız
otomatik olarak yapılır. Bu durumda, APK'nın mevcut olduğunu doğrulamak için zipalign
yönergesini kullanmaya devam etmeniz gerekir
hizalanır, ancak bunu hizalamanız gerekmez. Bu belge temel olarak proje yöneticilerinin
geliştirmenizi sağlar.
Dikkat: zipalign
web sitesini belirli bir noktada kullanmanız gerekir.
bahsedeceğim. Bu nokta, hangi uygulama imzalama aracını kullandığınıza bağlıdır:
-
apksigner
kullanıyorsanız zipalign
APK dosyası imzalanmadan önce kullanılmalıdır. Sözleşmeyi
apksigner
kullanan APK ve APK'da başka değişiklikler yaparsanız imza geçersiz hale gelir.
-
jarsigner
kullanıyorsanız
(önerilmez), zipalign
, APK dosyası aşağıdaki işlemler yapıldıktan sonra kullanılmalıdır:
imzalandı.
zipalign
, hizalamayı sağlamak için zip Local File Header (Yerel Dosya Başlığı) içindeki "extra"
alanının boyutunu değiştirir.
bölümlerini kontrol edin. 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 -P 16
kullanın
mmap(2)
için uygun bir 16 KiB sayfa sınırıyla hizalandıklarından emin olun.
16 KiB ve 4KiB cihazlarda kullanılabilir. Hizalama,
zipalign
için zorunlu hizalama bağımsız değişkeni, 4 bayt olarak hizalanmalıdır
hem 32 bit hem de 64 bit sistemlerde kullanılabilir.
infile.apk
öğesini hizalayıp outfile.apk
olarak kaydetmek için:
zipalign -P 16 -f -v 4 infile.apk outfile.apk
existing.apk
hizalamasını onaylamak için aşağıdaki komutu kullanın.
zipalign -c -P 16 -v 4 existing.apk
Seçenekler
Kullanabileceğiniz zipalign
seçenekleri aşağıdaki tabloda listelenmiştir:
Option |
Açıklama |
-c |
Yalnızca hizalamayı kontrol eder (dosyayı değiştirmez). |
-k |
Mevcut çıkış dosyasının üzerine yazar. |
-sa. |
Ekranlar aracı yardımı. |
-P <pagesize_kb> |
sıkıştırılmamış .so dosyalarını KiB'de belirtilen sayfa boyutuna hizalar. Geçerli seçenekler
<pagesize_kb> için 4, 16 ve 64. |
-p |
4 KiB sayfa hizalaması, sıkıştırılmamış .so dosyalarıdır. Optimum kampanya performansı için
-p desteği sonlandırıldığından bunun yerine -P 16 . |
-v |
Ayrıntılı çıkış. |
-z |
Zopfli kullanarak yeniden sıkıştırır. |
Bu sayfadaki içerik ve kod örnekleri, İçerik Lisansı sayfasında açıklanan lisanslara tabidir. Java ve OpenJDK, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.
Son güncelleme tarihi: 2025-07-27 UTC.
[[["Anlaması kolay","easyToUnderstand","thumb-up"],["Sorunumu çözdü","solvedMyProblem","thumb-up"],["Diğer","otherUp","thumb-up"]],[["İhtiyacım olan bilgiler yok","missingTheInformationINeed","thumb-down"],["Çok karmaşık / çok fazla adım var","tooComplicatedTooManySteps","thumb-down"],["Güncel değil","outOfDate","thumb-down"],["Çeviri sorunu","translationIssue","thumb-down"],["Örnek veya kod sorunu","samplesCodeIssue","thumb-down"],["Diğer","otherDown","thumb-down"]],["Son güncelleme tarihi: 2025-07-27 UTC."],[],[],null,["# zipalign\n\n`zipalign` is a zip archive alignment tool that helps ensure that all uncompressed files\nin the archive\nare aligned relative to the start of the file. This lets the files be accessed directly via\n[mmap(2)](https://man7.org/linux/man-pages/man2/mmap.2.html)`\n`, removing the need to copy this data in RAM and reducing your app's memory usage.\n\nUse `zipalign` to optimize your APK file before distributing it to\nend users. If you build using Android Studio, which uses the Android Gradle plugin (AGP), this is\ndone automatically. In this case, you should still use `zipalign` to verify that the APK\nis aligned, but you don't need to align it. This documentation is mainly for maintainers of\ncustom build systems. \n\n**Caution:** You must use `zipalign` at a specific point in\nthe build process. That point depends on which app-signing tool you use:\n\n- If you use [apksigner](/studio/command-line/apksigner), `zipalign` must be used **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.\n- If you use [jarsigner](//docs.oracle.com/javase/tutorial/deployment/jar/signing.html) (not recommended), `zipalign` must be used **after** the APK file has been signed.\n\nTo achieve alignment, `zipalign` alters the size of the `\"extra\"` field in the zip **Local File Header**\nsections. This process can also alter existing data in the `\"extra\"` fields.\n\nUsage\n-----\n\nIf your APK contains shared libraries (`.so` files), use `-P 16`\nto ensure that they're aligned to a 16KiB page boundary suitable for `mmap(2)`\nin both 16KiB and 4KiB devices. For other files, whose alignment is determined by the\nmandatory alignment argument to `zipalign`, should be aligned to 4 bytes\non both 32-bit and 64-bit systems.\n\nTo align `infile.apk` and save it as `outfile.apk`: \n\n```\nzipalign -P 16 -f -v 4 infile.apk outfile.apk\n```\n\nTo confirm the alignment of `existing.apk`, use the following command. \n\n```\nzipalign -c -P 16 -v 4 existing.apk\n```\n\n### Options\n\nThe following table lists the available `zipalign` options:\n\n| Option | Description |\n|--------------------|-------------------------------------------------------------------------------------------------------------------------|\n| -c | Checks alignment only (does not modify file). |\n| -f | Overwrites existing output file. |\n| -h | Displays tool help. |\n| -P \\\u003cpagesize_kb\\\u003e | aligns uncompressed `.so` files to the specified page size in KiB. Valid options for `\u003cpagesize_kb\u003e` are 4, 16, and 64. |\n| -p | 4KiB page-aligns uncompressed `.so` files. It is recommended to use `-P 16` instead, as `-p` is deprecated. |\n| -v | Verbose output. |\n| -z | Recompresses using Zopfli. |"]]