إنّ zipalign
هي أداة لمحاذاة الأرشفة بتنسيق ZIP التي تساعد في ضمان تحميل جميع الملفات غير المضغوطة.
في الأرشيف
تتم محاذاتها مع بداية الملف. يتيح ذلك الوصول إلى الملفات مباشرة عبر
mmap(2)
، ما مِن حاجة إلى نسخ هذه البيانات إلى ذاكرة الوصول العشوائي (RAM) والحدّ من استخدام تطبيقك للذاكرة.
استخدام zipalign
لتحسين ملف APK قبل توزيعه على
المستخدمين النهائيين. إذا كنت تستخدم الإصدار Android Studio الذي يستخدم المكوّن الإضافي لنظام Gradle المتوافق مع Android (AGP)، فهذا يعني
القيام به تلقائيًا. وفي هذه الحالة، يجب مواصلة استخدام zipalign
للتحقّق من أنّ حزمة APK.
موقعك، ولكنك لست بحاجة إلى محاذاته. هذا الوثائق مخصص بشكل أساسي للمحافظين على
وأنظمة التصميم المخصصة.
تنبيه: يجب استخدام zipalign
في نقطة محدّدة من
عملية التصميم. تعتمد هذه النقطة على أداة توقيع التطبيق التي تستخدمها:
لتحقيق المحاذاة، يغيّر zipalign
حجم الحقل "extra"
في عنوان الملف المحلي المضغوط
الأقسام. يمكن أن تؤدي هذه العملية أيضًا إلى تغيير البيانات الحالية في حقول "extra"
.
الاستخدام
إذا كانت حزمة APK تحتوي على مكتبات مشتركة (.so
ملف)، استخدِم -P 16
.
للتأكد من محاذاتها مع حدود صفحة يبلغ حجمها 16 كيلوبايت، وهي مناسبة للسمة mmap(2)
في أجهزة 16 كيلوبايت و4 كيلوبايت. بالنسبة إلى الملفات الأخرى، التي يتم تحديد محاذاتها بواسطة
وسيطة محاذاة إلزامية إلى zipalign
، يجب محاذاتها إلى 4 بايت
على كل من نظامي 32 بت و64 بت.
لمحاذاة 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
" المتاحة:
Option | الوصف |
---|---|
-ج | يتحقق من المحاذاة فقط (لا يؤدي إلى تعديل الملف). |
-f | يؤدي إلى استبدال ملف الإخراج الحالي. |
-س | عرض مساعدة الأداة |
-P <pagesize_kb> | لمحاذاة ملفات .so غير المضغوطة مع حجم الصفحة المحدّد بالكيلوبايت. الخيارات الصالحة
لـ <pagesize_kb> تكون 4 و16 و64. |
-p | 4 كيلوبايت تتم محاذاة ملف .so غير مضغوط. يُنصح باستخدام
-P 16 بدلاً من ذلك، نظرًا لإيقاف -p نهائيًا. |
-v | النتائج المطوّلة. |
-z | يعيد الضغط باستخدام Zopfli. |