zipalign
یک ابزار هم ترازی بایگانی فشرده است که کمک می کند اطمینان حاصل شود که تمام فایل های فشرده نشده در بایگانی نسبت به ابتدای فایل تراز شده اند. این امکان دسترسی مستقیم به فایلها از طریق mmap(2)
را فراهم میآورد و نیاز به کپی کردن این دادهها در RAM را از بین میبرد و مصرف حافظه برنامه شما را کاهش میدهد.
از zipalign
برای بهینه سازی فایل APK خود قبل از توزیع آن برای کاربران نهایی استفاده کنید. اگر با استفاده از Android Studio که از پلاگین Android Gradle (AGP) استفاده می کند، این کار به صورت خودکار انجام می شود. در این مورد، همچنان باید از zipalign
برای تأیید تراز بودن APK استفاده کنید، اما نیازی به تراز کردن آن ندارید. این مستندات عمدتاً برای نگهبانان سیستم های ساخت سفارشی است.
احتیاط: شما باید از zipalign
در نقطه خاصی از فرآیند ساخت استفاده کنید. این نکته بستگی به این دارد که از کدام ابزار امضای برنامه استفاده می کنید:
برای دستیابی به تراز، zipalign
اندازه فیلد "extra"
را در بخشهای زیپ Local File Header تغییر میدهد. این فرآیند همچنین می تواند داده های موجود در فیلدهای "extra"
را تغییر دهد.
استفاده
اگر APK شما حاوی کتابخانههای مشترک (فایلهای .so
) است، از -P 16
استفاده کنید تا مطمئن شوید که آنها با مرز صفحه 16KiB مناسب برای mmap(2)
در دستگاههای 16KiB و 4KiB هستند. برای فایلهای دیگری که همترازی آنها با آرگومان تراز اجباری به zipalign
تعیین میشود، باید در سیستمهای 32 بیتی و 64 بیتی به 4 بایت تراز شوند.
برای تراز کردن infile.apk
و ذخیره آن به عنوان outfile.apk
:
zipalign -P 16 -f -v 4 infile.apk outfile.apk
برای تأیید تراز بودن existing.apk
از دستور زیر استفاده کنید.
zipalign -c -P 16 -v 4 existing.apk
گزینه ها
جدول زیر گزینه های موجود zipalign
را فهرست می کند:
گزینه | توضیحات |
---|---|
ج | فقط تراز را بررسی می کند (فایل را تغییر نمی دهد). |
-ف | فایل خروجی موجود را رونویسی می کند. |
-h | راهنمای ابزار را نمایش می دهد. |
-P <pagesize_kb> | فایل های .so فشرده نشده را با اندازه صفحه مشخص شده در KiB تراز می کند. گزینه های معتبر برای <pagesize_kb> 4، 16 و 64 هستند. |
-ص | صفحه 4KiB فایل های .so فشرده نشده را تراز می کند. توصیه می شود به جای آن از -P 16 استفاده کنید، زیرا -p منسوخ شده است. |
-v | خروجی پرمخاطب |
-z | با استفاده از Zopfli دوباره فشرده می شود. |