רוכסן

zipalign הוא כלי להתאמה לארכיון ZIP שעוזר לוודא שכל הקבצים הלא דחוסים בארכיון מיושרים ביחס לתחילת הקובץ. כך ניתן לגשת לקבצים ישירות דרך mmap(2) , כך לא צריך להעתיק את הנתונים האלה בזיכרון ה-RAM ולהפחית את השימוש בזיכרון של האפליקציה.

יש להשתמש ב-zipalign כדי לבצע אופטימיזציה של קובץ ה-APK לפני ההפצה שלו אל למשתמשי קצה. אם גרסת ה-build שלך היא באמצעות Android Studio, שבו נעשה שימוש בפלאגין של Android Gradle (AGP), מתבצע באופן אוטומטי. במקרה זה, עדיין צריך להשתמש ב-zipalign כדי לאמת שה-APK ישר, אבל אין צורך ליישר אותו. התיעוד הזה מיועד בעיקר למנהלים ובהתאמה אישית של מערכות build.

זהירות: צריך להשתמש ב-zipalign בנקודה ספציפית ב- על תהליך ה-build. הנקודה הזו תלויה בכלי לחתימת אפליקציות שבו משתמשים:

  • אם משתמשים ב-apksigner, zipalign חייב להיות בשימוש לפני שקובץ ה-APK חתום. אם חותמים על ה-APK משתמש ב-apksigner ומבצע שינויים נוספים ב-APK. החתימה שלו לא תקפה.
  • אם משתמשים ב-jarsigner (לא מומלץ), יש להשתמש ב-zipalign אחרי שקובץ ה-APK נחתמה.

כדי להשיג יישור, zipalign משנה את גודל השדה "extra" בכותרת הקובץ המקומי ב-ZIP . התהליך הזה יכול גם לשנות את הנתונים הקיימים בשדות של "extra".

שימוש

אם ה-APK מכיל ספריות משותפות (.so קבצים), יש להשתמש ב--P 16 כדי לוודא שהם מותאמים לגבול דף של 16KiB שמתאים עבור mmap(2) במכשירים בגודל 16KiB וגם 4KiB. עבור קבצים אחרים, שההתאמה שלהם נקבעת לפי הארגומנט 'חובה' ל-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:

אפשרות תיאור
-c בודק את היישור בלבד (לא משנה את הקובץ).
-f החלפת קובץ פלט קיים.
-שע' הצגת עזרה בכלי.
-P <pagesize_kb> התאמת קובצי .so לא דחוסים לגודל הדף שצוין ב-KiB. אפשרויות תקינות עבור <pagesize_kb> הם 4, 16 ו-64.
-p 4KiB page-יישור של קובצי .so לא דחוסים. מומלץ להשתמש ב- -P 16 במקום זאת, כי -p הוצא משימוש.
-v פלט מילולי.
-z נדחס מחדש באמצעות Zopfli.