محاذاة إلى الخلف

"zipalign" هي أداة لمحاذاة أرشيف ملفات ZIP تساعد في ضمان توافق جميع الملفات غير المضغوطة في الأرشيف مع بداية الملف. ويسمح هذا الإجراء بالوصول إلى الملفات مباشرةً عبر mmap(2) ، ما يلغي الحاجة إلى نسخ هذه البيانات في ذاكرة الوصول العشوائي (RAM) ويحدّ من استخدام التطبيق للذاكرة.

يمكنك استخدام zipalign لتحسين ملف APK قبل توزيعه على المستخدمين النهائيين. إذا كنت تطوِّر تطبيقك باستخدام "استوديو Android" الذي يستخدم المكوّن الإضافي لنظام Gradle المتوافق مع Android (AGP)، يتم تنفيذ ذلك تلقائيًا. في هذه الحالة، لا يزال يتعين عليك استخدام zipalign للتحقق من محاذاة APK بدون الحاجة إلى محاذاتها. هذه الوثائق مخصصة بشكل أساسي لصيانة أنظمة الإنشاء المخصصة.

تنبيه: يجب استخدام السمة zipalign عند مرحلة محدّدة من عملية الإنشاء. تعتمد هذه النقطة على أداة توقيع التطبيق التي تستخدمها:

  • إذا كنت تستخدم apksigner، يجب استخدام zipalign قبل توقيع ملف APK. إذا وقَّعت حزمة APK باستخدام apksigner وأجريت تغييرات أخرى على حزمة APK، سيتم إلغاء توقيعها.
  • إذا كنت تستخدم العلامة jarsigner (لا يُنصح باستخدامها)، يجب استخدام zipalign بعد توقيع ملف APK.

لتحقيق المحاذاة، يغيّر zipalign حجم الحقل "extra" في أقسام عنوان الملف المحلي بتنسيق zip. يمكن أن تؤدي هذه العملية أيضًا إلى تغيير البيانات الحالية في حقول "extra".

الاستخدام

إذا كان ملف APK يحتوي على مكتبات مشتركة (ملفات .so)، استخدِم -p لضمان توافقها مع حدود صفحة بحجم 4KiB مناسبة لـ mmap(2). بالنسبة إلى الملفات الأخرى التي يتم تحديد محاذاتها من خلال وسيطة المحاذاة الإلزامية مع zipalign، تتم محاذاة "استوديو Android" مع 4 بايت على كل من نظامَي 32 بت و64 بت.

لمحاذاة infile.apk وحفظها باسم outfile.apk:

zipalign -p -f -v 4 infile.apk outfile.apk

لتأكيد محاذاة existing.apk، استخدِم الأمر التالي. إذا كنت تستخدم "استوديو Android" أو AGP لإنشاء المحتوى، هذا هو الأمر الذي يجب عليك استخدامه للتأكد من محاذاة ملف APK.

zipalign -c -v 4 existing.apk

الخيارات

يسرد الجدول التالي خيارات zipalign المتاحة:

Option الوصف
لفحص المحاذاة فقط (بدون تعديل الملف)
-f يؤدي إلى استبدال ملف الإخراج الحالي.
عرض مساعدة الأداة.
-p محاذاة ملفات .so غير المضغوطة.
-v الاستماع المطوَّل
-z لإعادة ضغطه باستخدام Zopfli