אם אתה חובב אנדרואיד הארדקור, רוב הסיכוייםחזק שתנסו בשקיקה את הנושאים החדשים, ה- ROM המותאם אישית וכל אותם מצבים למכשיר שלכם. אחת מנקודות הבלבול העיקריות היא המינוח הקשור למודדים הללו - משהו שמוכר למדי למפתחים, אך לא במידה רבה למשתמש המתחיל. שתיים מהמילים הנפוצות ביותר ב- ROM ותמות מותאמות אישית הן 'מיודקס' ו- 'מיקוד zip'. כמה ימים אחורה, כיסינו בפירוט את 'deodexed'. במאמר זה נחקור מה המשמעות של zipalign ו כיצד ניתן ליישר את ה- APKs עם מיקוד.

מה זה ZIPALIGN?
zipalign הוא כלי ליישור ארכיון שהוצגלראשונה עם 1.6 SDK אנדרואיד (ערכת פיתוח תוכנה). זה מייעל את אופן האריזה של חבילת יישומי Android (APK). פעולה זו מאפשרת למערכת ההפעלה אנדרואיד לקיים אינטראקציה עם היישום בצורה יעילה יותר, ומכאן שיש לה פוטנציאל להפוך את האפליקציה ובכלל למערכת כולה למהירה הרבה יותר. זמן הביצוע ממוזער עבור יישומים עם קו מיקוד, וכתוצאה מכך צריכת RAM פחותה בעת הפעלת ה- APK.
אז איך זה עובד בדיוק?
בסביבת הפעלה אנדרואיד קבצי נתוניםהמאוחסנים בכל חבילת יישומים ניגשים על ידי מספר תהליכים, לדוגמה, המתקין יקרא את מניפסט הנתונים כדי לקבוע את ההרשאות המשויכות; שרת המערכת יכול לקרוא משאבים אלה מסיבות רבות, כגון הצגת התראות; יישום הבית, למשל, יקרא משאבים כדי לקבל את שם וסמל היישום. מכיוון שאנדרואיד מבוסס על תשתית הפעלה אמיתית עם ריבוי משימות, קבצים אלה ניגשים ללא הרף ושוב. לבסוף, אך לא מעט, האפליקציה עצמה קוראת את נתוני המניפסט.
מכיוון שאנדרואיד מבוסס לינוקס, מיפוי זיכרון מנגן אתפקיד מפתח בטיפול יעיל בתהליכים. בעיקרו של דבר, ההתאמה האופטימלית לקוד הטיפול במשאבים של מערכת ההפעלה אנדרואיד היא גבולות של 4 בתים. משמעות הדבר היא שאם APKs ממופים זיכרון לגבולות של 4 בייטים, ומתואמים בהתאם, מערכת ההפעלה לא תצטרך 'לקרוא' את כל חבילת היישומים כדי להגיע למניפסט הנתונים הרצוי. כל תהליך מערכת יידע מראש היכן לחפש את המשאבים הרצויים, ומכאן יבצע הרבה יותר חלק ומהיר.
בסיכומו של דבר, מיקוד APK מביא תוצאות לכלנתונים בלתי דחוסים בתוך החבילה מיושרים בגבולות של 4 בתים, ומאפשרים גישה לכל החלקים ישירות באמצעות מפת הזיכרון. צריכת זיכרון RAM מופחתת במהלך הביצוע מכיוון שקוד השאילתה אינו חייב לקרוא את חבילת היישומים כולה.
חסרונות של אפליקציות לא מקושרות
מובן למדי, המצב יהיה שמורעבור חבילות יישומים שלא הוקמו. קריאת המשאבים תהיה איטית ושימוש בזיכרון יהיה בקצה הגבוה של הספקטרום. זה תלוי גם בכמה יישומים שלא הוקמו. לדוגמה, אם פחות מספר יישומים עם אפליקציה ביתית שלא הותאמה, תראה זמני הפעלת אפליקציות איטי יותר. זהו התרחיש הטוב ביותר. במקרה המקרה הגרוע ביותר, מספר יישומים שאינם מיושרים יביא לכך שהמערכת תתחיל ותהרג שוב ושוב תהליכים, תתמודד עם פיגורים וניקוז סוללה עצום.
איך אתה עושה את זה, אז?
כאמור, הכלי zipalign הפך לחלק מ- SDK אנדרואיד החל מ- 1.6 ואילך. ניתן למצוא אותו תחת תיקיית 'כלים' של ה- SDK. כדי להשתמש בו, פשוט הפעל את הפקודה:
zipalign [-f] [-v] <alignment> infile.apk outfile.apk
איפה infile.apk הוא קובץ המקור, ו- outfile.apk הוא קובץ הפלט.
יתר על כן, אתה יכול גם לאמת את היישור של קובץ APK באמצעות הפקודה הבאה:
zipalign -c -v <alignment> existing.apk
איפה existing.apk יכולה להיות כל חבילת יישומים שעליך לאמת. וגם ה <יישור> התג בשתי הפקודות צריך להיות אינטגרליערך (אחרת הפקודה תחזור לא חוקית). ערך זה, למרות שיכול להיות כל מספר שלם, חייב להיות תמיד 4, שיספק יישור 32 סיביות. כל ערך אחר וזה יעשה דבר.
לבסוף, עבור הדגלים המשמשים בפקודות אלה,
- -פ : מחליף את outfile.zip הקיים
- -v : ייתן פלט מילולי
- -ג : יאשר את יישור הקובץ הנתון
מילת הזהירות: יש לבצע פעולת zipalign בלבד לאחר חתמת על קובץ ה- APK באמצעות הפרטי שלךמפתח. אם מיקוד מיקוד לפני החתימה, נוהל החתימה יפריע ליישור. אותו הדבר תקף לכל שינוי, הוספה או הסרה אחרים לקובץ ה- APK. כל שינוי לאחר הפעלת zipalign יבוטל את היישור.
הצהרה: מדריך זה נועד למטרות חינוכיות בלבד. זה בשום דרך לא מהווה תחליף לערכת הכלים למפתחים של אנדרואיד, ולא מיועד לשמש למטרות פיתוח. AddictiveTips אינו מספק כל תמיכה הקשורה לחומר המוצג כאן.
הערות