מקרים לדוגמה
Monzo משפרת את מדדי הביצועים בשיעור של עד 35% באמצעות עדכון פשוט ל-R8
משך הקריאה: 2 דקות
Monzo הוא בנק דיגיטלי בבריטניה עם 15 מיליון לקוחות, והמספרים ממשיכים לגדול. כשהאפליקציה גדלה, צוות ההנדסה זיהה שזמן ההפעלה של האפליקציה הוא תחום קריטי לשיפור, אבל חשש שיידרשו שינויים משמעותיים בבסיס הקוד.
אחרי שהפעילו באופן מלא את האופטימיזציות של R8, ב-Monzo הצליחו להקטין ב-35% את שיעור המקרים שבהם האפליקציה לא מגיבה (ANR). השינוי הפשוט הזה הוכיח שאופטימיזציות משמעותיות לא תמיד דורשות מאמצי הנדסה מורכבים.
שיפורים משמעותיים בביצועים באמצעות מצב מלא של R8
ב-Monzo זיהו שמצב מלא של R8 הוא פתרון פשוט שכדאי לנסות, והוא עבד. הביצועים השתפרו בכל התחומים:
- מהימנות ההפעלה: שיפור של 30% בהפעלות במצב התחלתי (cold start), שיפור של 24% בהפעלות במצב ביניים (warm start) ושיפור של 14% בהפעלות מתוך הזיכרון (hot start).
- מהירות ההשקה: זמני ההשקה של P50 השתפרו ב-11% וזמני ההשקה של P90 השתפרו ב-12%.
- יעילות: הגודל הכולל של האפליקציה קטן ב-9%.
- יציבות: ירידה של 35% בשיעור מקרי ה-ANR.
הפעלת אופטימיזציות באמצעות שינוי אחד
הרבה אפליקציות ל-Android משתמשות בקובץ תצורה מיושן שמוגדר כברירת מחדל, שמשבית את רוב הפונקציות של כלי האופטימיזציה R8. השינוי העיקרי ש-Monzo ביצעה כדי לשפר את הביצועים היה החלפת קובץ ברירת המחדל proguard-android.txt בקובץ proguard-android-optimize.txt. השינוי הזה מסיר את ההוראה -dontoptimize ומאפשר ל-R8 לבצע את העבודה שלו כמו שצריך.
buildTypes {
release {
isMinifyEnabled = true
isShrinkResources = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
)
}
}
אחרי שמבצעים את השינוי הזה, כדאי לבדוק את קובצי ההגדרה של Keep. הקבצים האלה מציינים ל-R8 אילו חלקים בקוד לא לשנות (בדרך כלל כי הם נקראים באופן דינמי או על ידי ספריות חיצוניות). ניקוי של כללי Keep מיותרים מאפשר ל-R8 לבצע יותר פעולות.
שיפור הביצועים של הגלילה באמצעות פרופילים של Baseline
כדי לשפר עוד יותר את חוויית המשתמש, ב-Monzo הטמיעו פרופילים של בסיסי ביצועים, במטרה לשפר את הביצועים של הגלילה והעיבוד בפיד הראשי. האסטרטגיה הזו הבטיחה שהתהליכים הנפוצים ביותר שעוברים משתמשים – פתיחת האפליקציה וגלילה בפיד – יעברו אופטימיזציה מלאה. ההשפעה על הרינדור הייתה משמעותית: ביצועי הגלילה ב-P90 השתפרו ב-71%, וביצועי הגלילה ב-P95 השתפרו ב-87%. עכשיו הגלילה באפליקציה חלקה יותר מבעבר.
חברת Monzo שילבה את השיפור הזה בתהליך ההפצה שלה כדי לשמור על השיפורים האלה לאורך זמן. "אנחנו מפעילים את יצירת פרופיל הבסיס בכל יום חול (לפני הפעלת הבנייה היומית שלנו) ומבצעים את השינויים האחרונים אחרי שהיא מסתיימת", מסביר נומאייר.
התעדכנות בפיתוח מודרני של אפליקציות ל-Android
הניסיון של Monzo מראה מה אפשר להשיג כשמתעדכנים בהמלצות לגבי כלי בנייה ל-Android. אפליקציות מדור קודם מתקשות בדרך כלל בשימוש מורכב בהשתקפות, אבל ב-Monzo מצאו שהמעבר פשוט כי הם תיעדו את כללי השמירה שלהם בצורה נכונה. "אנחנו תמיד מוסיפים תגובה שמסבירה למה הכללים של Keep קיימים, כדי שנדע מתי אפשר להסיר אותם", מציין נומאייר.
העצה של נומאייר לצוותים אחרים? בודקים באופן קבוע את השיטות שבהן אתם משתמשים בהשוואה לסטנדרטים הנוכחיים: "כדאי לעיין בהמלצות האחרונות של Google לגבי ביצועי האפליקציה ולבדוק אם אתם פועלים לפי כל העצות העדכניות".
כדי להתחיל ולהבין יותר על R8, אפשר לעבור לכתובת https://d.android.com/r8
להמשך הקריאה
-
מקרים לדוגמה
Karrot היא אפליקציה של זירת מסחר בין עמיתים שמבוססת על קהילה מקומית. האפליקציה מאפשרת למשתמשים לקנות, למכור ולסחור בפריטים עם משתמשים מאומתים אחרים. מאז ההשקה בדרום קוריאה בשנת 2015, הפלטפורמה התרחבה לשווקים גלובליים וצברה יותר מ-43 מיליון משתמשים רשומים.
Thomas Ezan, Tracy Agyemang • משך הקריאה: 2 דקות
-
מקרים לדוגמה
בעולם הדינמי של הרשתות החברתיות, תשומת הלב של המשתמשים נמשכת או נעלמת במהירות. אפליקציות Meta (פייסבוק ואינסטגרם) הן בין הפלטפורמות החברתיות הגדולות בעולם, והן משרתות מיליארדי משתמשים ברחבי העולם.
Mayuri Khinvasara Khabya, Tracy Agyemang • משך הקריאה: 4 דקות
-
מקרים לדוגמה
כשמפתחים אפליקציית Android למכשיר לביש, העבודה האמיתית מתחילה כשהמסך כבוי.
Breana Tate, Tracy Agyemang • משך הקריאה: 4 דקות
כדאי תמיד להיות בעניינים
רוצים לקבל טיפים עדכניים לפיתוח Android ישירות לאימייל כל שבוע?