במהלך השבוע האחרון התמקדנו בשיתוף שיטות מומלצות והנחיות שיעזרו לכם ליצור אפליקציות ל-Android מהירות, קטנות ויציבות יותר. התחלנו עם היכולות הבסיסיות של כלי האופטימיזציה R8 ושל אופטימיזציות מבוססות פרופיל, המשכנו לשיפורים בביצועים באמצעות Jetpack Compose, וסיימנו במדריך חדש לשיפור הביצועים של האפליקציה. כל אלה הם כלים שמאפשרים להשקיע מעט ולקבל הרבה בבניית אפליקציה עם ביצועים טובים.
הפוסט הזה הוא מעין אינדקס ומפת דרכים שיעזרו לכם לחזור למקורות המידע האלה בכל פעם שתרצו לבצע אופטימיזציה. אלו חמש המסקנות העיקריות מהמסע המשותף שלנו.
שימוש ב-R8 Optimizer כדי להאיץ את האפליקציה
השינוי היחיד שתוכלו לבצע כדי להשיג את ההשפעה הגדולה ביותר במינימום מאמץ הוא הפעלה מלאה של R8 Optimizer. הוא לא רק מקטין את גודל האפליקציה, אלא גם מבצע אופטימיזציות מעמיקות בכל התוכנית כדי לשכתב את הקוד שלכם בצורה יעילה. כדאי לבדוק שוב את כללי Keep ולהחזיר את R8 למשימות ההנדסיות.
כדי לעזור לכם, עדכנו והרחבנו את התיעוד בנושא הכלי R8 Optimizer.
ב-Reddit דיווחו על קיצור של 40% בזמן הטעינה של האפליקציה במצב התחלתי (cold start) ועל ירידה של 30% במספר שגיאות ה-ANR אחרי הפעלת מצב מלא של R8.
אפשר לקרוא את המקרה לדוגמה המלא בבלוג שלנו.
מהנדסים ב-Disney+ משקיעים בביצועים של האפליקציה ומבצעים אופטימיזציה של חוויית המשתמש באפליקציה. לפעמים אפילו שינויים שנראים קטנים יכולים להשפיע באופן משמעותי. במהלך הבדיקה של הגדרת R8, הצוות גילה שהדגל -dontoptimize היה בשימוש. אחרי שהצוות של Disney+ הסיר את הדגל הזה והפעיל אופטימיזציות, הוא הבחין בשיפורים משמעותיים בביצועים של האפליקציה.
לכן, בפעם הבאה שמישהו ישאל אתכם מה אפשר לעשות כדי לשפר את ביצועי האפליקציה, פשוט תשלחו לו קישור לפוסט הזה.
מידע נוסף זמין בפוסט בבלוג בנושא היום הראשון: שימוש ב-R8 כדי לצמצם, לבצע אופטימיזציה ולהאיץ את האפליקציה
עזרה בשיפור הביצועים
פרופילים של Baseline מסירים ביעילות את הצורך בקימפול Just in Time, ומשפרים את מהירות ההפעלה, הגלילה, האנימציה וביצועי העיבוד הכוללים. פרופילים להפעלה הופכים את הפעלת האפליקציה לקלה עוד יותר, כי הם מסדרים בצורה חכמה את קובצי ה-classes.dex של האפליקציה.
כדי להבין עד כמה פרופילים של Baseline חשובים לביצועי האפליקציה, אפשר לקרוא את בלוג ההנדסה של Meta שבו הם שיתפו איך פרופילים של Baseline שיפרו מדדי ביצועים קריטיים שונים בשיעור של עד 40% באפליקציות שלהם.
אנחנו ממשיכים לשפר את הביצועים של Jetpack Compose ב-Jetpack Compose 1.10. תכונות כמו השהיית יצירת הקומפוזיציה וחלון המטמון שניתן להתאמה אישית הן חיוניות לשמירה על ביצועים חלקים של גלילה כשמדובר בפריטים מורכבים ברשימה.כדאי לצפות בפרק האחרון של #TheAndroidShow שבו אנחנו מסבירים את זה בפירוט.
מידע נוסף זמין בפוסט בבלוג שפרסמנו ביום רביעי: שיקולים מעמיקים יותר לגבי ביצועים
מדידת הביצועים יכולה להיות פשוטה כמו 1, 2, 3
אי אפשר לנהל את מה שלא מודדים. במדריך לשיפור הביצועים אנחנו מפרטים את תהליך המדידה בחמישה שלבים, החל מנתונים שזמינים בקלות ועד לכלים מקומיים מתקדמים.
ברמה 1 אנחנו מסבירים איך להשתמש בנתונים שזמינים בקלות מAndroid Vitals, שכוללים נתונים מהשטח לגבי ANR, קריסות ושימוש מוגזם בסוללה.
בנוסף, נלמד אתכם איך לעלות רמה. לדוגמה, נראה איך מגיעים לרמה 3 באמצעות בדיקת ביצועים מקומית באמצעות Jetpack Macrobenchmark וממשק ה-API החדש UiAutomator 2.4 כדי למדוד ולאמת בצורה מדויקת כל שינוי בביצועים של האפליקציה.
מידע נוסף זמין בפוסט בבלוג שפרסמנו ביום חמישי: [Link to Thursday's Blog: Leveling Guide for your Performance Journey]
ניפוי באגים משופר בביצועים
אופטימיזציה מתקדמת לא אמורה לגרום לכך שדוחות הקריסה יהיו בלתי קריאים. תכונות חדשות נועדו לעזור לכם לבצע ניפוי באגים ב-R8 ובעבודה ברקע בביטחון:
Automatic Logcat Retrace
החל מ-Android Studio Narwhal, אפשר לבטל את הטשטוש של עקבות מחסנית באופן אוטומטי בחלון Logcat. כך תוכלו לראות ולנפות באגים בקריסות באופן מיידי בגרסה מוכנה לייצור.
צמצום הכללים להרשאות שיתוף
ביום שלישי הסברנו על כללי Keep שנדרשים לתיקון קריסות בזמן ריצה, והדגשנו את החשיבות של כתיבת כללים ספציפיים ברמת החברים, במקום שימוש בתווים כלליים רחבים מדי. בגלל שזה נושא חשוב, יצרנו בשבילך גם סרטון.
בנוסף, ההשקה של התכונות ב-Android Studio Otter 3 כוללת בדיקת lint חדשה לכללי Keep, כך שגם כאן יש לכם פתרון.
פרסמנו גם הנחיות חדשות בנושא בדיקה ופתרון בעיות בהגדרת R8, כדי לעזור לכם להגדיר את הכלי בצורה נכונה ובביטחון.
מידע נוסף זמין בפוסט בבלוג שפרסמנו ביום שלישי: הגדרה ופתרון בעיות של כללי שמירה ב-R8
עבודה ברקע
שיתפנו הנחיות לניפוי באגים בתרחישים נפוצים שבהם אתם עשויים להיתקל כשאתם מתזמנים משימות באמצעות WorkManager.
Background Task Inspector מספק ייצוג חזותי ותצוגת גרף של משימות WorkManager, ועוזר לנפות באגים כדי להבין למה עבודה מתוזמנת מתעכבת או נכשלת. בנוסף, בדף הנחיתה של התיעוד המעודכן בנושא עבודה ברקע מודגשים ממשקי API ספציפיים למשימות שעברו אופטימיזציה לתרחישי שימוש מסוימים, כדי לעזור לכם להשיג ביצועים אמינים יותר.
מידע נוסף זמין בפוסט בבלוג שפרסמנו ביום רביעי: שיקולים לגבי ביצועים של עבודות ברקע
אופטימיזציה של הביצועים היא תהליך מתמשך
אם הצלחתם להפעיל את מצב R8 מלא השבוע, השלב הבא הוא לשלב את הביצועים בתוכנית המוצר באמצעות ציון ביצועי האפליקציה. המסגרת המתוקננת הזו עוזרת לכם למצוא את הפעולות הכי משמעותיות לשיפור מתמיד.
סיימנו את השבוע עם סשן שאלות ותשובות בשידור חי #AskAndroid Live, שבו מהנדסים ענו על השאלות הכי קשות שלכם בנושא R8, אופטימיזציות מבוססות פרופיל ועוד. פספסתם? חפשו את השידור החוזר!
תודה שהצטרפת אלינו. עכשיו אפשר להתחיל לבנות ולשמור על המומנטום.
להמשך הקריאה
-
אירועים ותוכניות
אנחנו מתחילים עם השינוי היחיד שתוכלו לבצע כדי לשפר את הביצועים של האפליקציה שלכם, שיש לו את ההשפעה הכי גדולה ולא דורש מאמץ רב: הפעלת הכלי R8 Optimizer במצב מלא.
Ben Weiss • משך הקריאה: 5 דקות
-
אירועים ותוכניות
אנחנו פותחים את ההרשמה לתוכנית Android XR Developer Catalyst, יוזמה ייעודית שמטרתה להאיץ את הפיתוח של אפליקציות Android XR שיהיו מוכנות להשקה במהלך השנה הקרובה.
משך הקריאה: דקה אחת
-
אירועים ותוכניות
לוח הזמנים של כנס Google I/O כבר כאן!
משך הקריאה: דקה אחת
כדאי תמיד להיות בעניינים
רוצים לקבל טיפים עדכניים לפיתוח Android ישירות לאימייל כל שבוע?