zipalign הוא כלי להתאמה לארכיון ZIP שעוזר לוודא שכל הקבצים הלא דחוסים
בארכיון
מיושרים ביחס לתחילת הקובץ. כך ניתן לגשת לקבצים ישירות דרך
mmap(2)
, כך לא צריך להעתיק את הנתונים האלה בזיכרון ה-RAM ולהפחית את השימוש בזיכרון של האפליקציה.
יש להשתמש ב-zipalign כדי לבצע אופטימיזציה של קובץ ה-APK לפני ההפצה שלו אל
למשתמשי קצה. אם גרסת ה-build שלך היא באמצעות Android Studio, שבו נעשה שימוש בפלאגין של Android Gradle (AGP),
מתבצע באופן אוטומטי. במקרה זה, עדיין צריך להשתמש ב-zipalign כדי לאמת שה-APK
ישר, אבל אין צורך ליישר אותו. התיעוד הזה מיועד בעיקר למנהלים
ובהתאמה אישית של מערכות build.
זהירות: צריך להשתמש ב-zipalign בנקודה ספציפית ב-
על תהליך ה-build. הנקודה הזו תלויה בכלי לחתימת אפליקציות שבו משתמשים:
כדי להשיג יישור, 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. |