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. |