אירועים ותוכניות

אופטימיזציה מלאה: סיכום שבוע הזרקור על הביצועים

משך הקריאה: 3 דקות
לצפייה בפרופיל של בן וייס הצגת הפרופיל של צ'ארלס מאנגר
Ben Weiss וגם Sara Hamilton

בשבוע האחרון התמקדנו בשיתוף של שיטות מומלצות והנחיות שיעזרו לכם להפוך את האפליקציות ל-Android למהירות, קטנות ויציבות יותר. החל מהיכולות הבסיסיות של כלי האופטימיזציה R8 ואופטימיזציות מבוססות-פרופיל, דרך שיפורי ביצועים באמצעות Jetpack Compose ועד למדריך חדש לשיפור ביצועי האפליקציה, סקרנו את הכלים שדורשים מאמץ קטן ומשפיעים מאוד, שאתם צריכים כדי לפתח אפליקציה עם ביצועים טובים.

הפוסט הזה הוא האינדקס ומפת הדרכים שלכם, ואתם יכולים לחזור למקורות המידע האלה בכל פעם שאתם צריכים לבצע אופטימיזציה. הנה חמשת הדברים העיקריים שלמדנו מהמסע המשותף שלנו.

שימוש בכלי R8 Optimizer כדי להאיץ את האפליקציה

השינוי הכי משמעותי שאתם יכולים לעשות במינימום מאמץ הוא להפעיל באופן מלא את הכלי R8 Optimizer. הוא לא רק מקטין את גודל האפליקציה, אלא גם מבצע אופטימיזציות מעמיקות של כל התוכנית כדי לשכתב את הקוד באופן יסודי ולשפר את היעילות. כדאי לבדוק שוב את כללי Keep ולהחזיר את R8 למשימות ההנדסה.

המסמכים המעודכנים והמורחבים שלנו על הכלי R8 Optimizer יכולים לעזור לכם.

ב-Reddit נצפתה הפעלה מההתחלה (cold startup) מהירה יותר ב-40% וירידה של 30% בשגיאות ANR אחרי הפעלת מצב מלא של R8.

אפשר לקרוא את המקרה המלא לדוגמה בבלוג שלנו.

image.png

המהנדסים ב-Disney+‎ משקיעים בביצועי האפליקציה ומשפרים את חוויית המשתמש בה. לפעמים גם שינויים קטנים לכאורה יכולים להשפיע מאוד. במהלך בדיקת ההגדרות של R8, הצוות גילה שנעשה שימוש בדגל -dontoptimize. אחרי שהצוות של Disney+‎ הסיר את הדגל הזה והפעיל את האופטימיזציות, הוא הבחין בשיפורים משמעותיים בביצועי האפליקציה.

image.png

אז בפעם הבאה שמישהו ישאל אתכם מה אפשר לעשות כדי לשפר את ביצועי האפליקציה, פשוט שלחו לו קישור לפוסט הזה.

מידע נוסף זמין בפוסט בבלוג של היום הראשון: שימוש ב-R8 כדי לכווץ, לבצע אופטימיזציה ולזרז את האפליקציה

הנחיות לשיפור הביצועים

פרופילים של Baseline מייתרים את הצורך בקימפול Just in Time, ומשפרים את מהירות ההפעלה, הגלילה, האנימציה וביצועי הרינדור הכוללים. פרופילים להפעלה הופכים את הפעלת האפליקציה לקלה עוד יותר על ידי סידור חכם של קובצי classes.dex של האפליקציה.

כדי להבין עד כמה פרופילים של Baseline חשובים לביצועי האפליקציה, קראו את הבלוג ההנדסי של Meta, שבו מוסבר איך פרופילים של Baseline שיפרו מדדי ביצועים קריטיים שונים בעד 40% באפליקציות של החברה.

אנחנו ממשיכים לשפר את הביצועים של Jetpack Compose בגרסה 1.10. תכונות כמו קומפוזיציה שניתן להשהות וחלון המטמון שניתן להתאמה אישית הן חיוניות כדי לשמור על גלילה חלקה כשמדובר בפריטים מורכבים ברשימה.כדאי לצפות בפרק האחרון של ‎ #TheAndroidShow שבו אנחנו מסבירים את זה בפירוט.

מידע נוסף זמין בפוסט בבלוג שלנו מיום רביעי: שיקולים מעמיקים יותר בנוגע לביצועים

מדידת הביצועים יכולה להיות פשוטה מאוד

אי אפשר לנהל את מה שלא מודדים. המדריך שלנו לשיפור הביצועים מחלק את תהליך המדידה לחמישה שלבים, החל מנתונים שזמינים בקלות ועד לכלים מקומיים מתקדמים.

החל מרמה 1, נלמד אתכם איך להשתמש בנתונים שזמינים בקלות מתפקוד האפליקציה, שמספק לכם נתונים מהשטח על מקרי ANR, קריסות ושימוש מוגזם בסוללה.

אנחנו גם נלמד אתכם איך לעלות רמה. לדוגמה, נדגים איך להגיע לרמה 3 באמצעות בדיקת ביצועים מקומית בעזרת Jetpack Macrobenchmark ו-UiAutomator 2.4 API החדש, כדי למדוד ולאמת בצורה מדויקת כל שינוי בביצועי האפליקציה.

מידע נוסף זמין בפוסט בבלוג שלנו שפורסם ביום חמישי: [קישור לפוסט בבלוג שפורסם ביום חמישי: מדריך לשדרוג הביצועים]

ניפוי באגים בביצועים – עכשיו בגרסה משודרגת

אופטימיזציה מתקדמת לא צריכה לגרום לדוחות קריסה לא קריאים. התכונות החדשות נועדו לעזור לכם לנפות באגים ב-R8 ובעבודה ברקע:

מעקב אוטומטי אחרי Logcat

החל מגרסת Android Studio Narwhal, אפשר לבטל באופן אוטומטי את הערפול של דוחות הקריסות בחלון Logcat. כך תוכלו לראות מיד כל קריסה בגרסה שמוכנה לייצור ולנפות באגים.

צמצום כללי השמירה

ביום שלישי הסברנו על כללי ה-Keep שצריך כדי לתקן קריסות בזמן ריצה, והדגשנו את החשיבות של כתיבת כללים ספציפיים ברמת החבר, במקום תווי כלליים רחבים מדי. ומכיוון שמדובר בנושא חשוב, הכנו גם סרטון.

גם כאן, השקת התכונות ב-Android Studio Otter 3 כוללת בדיקת איתור שגיאות בקוד (lint) לכללי Keep רחבים.

image.png

פרסמנו גם הנחיות חדשות בנושא בדיקה ופתרון בעיות בהגדרות של R8, כדי לעזור לכם להגדיר את R8 בצורה נכונה ובטוחה.

מידע נוסף זמין בפוסט בבלוג שלנו: הגדרה ופתרון בעיות של כללי Keep ב-R8

עבודה ברקע

שיתפנו הנחיות לניפוי באגים בתרחישים נפוצים שבהם אתם עשויים להיתקל כשאתם מתזמנים משימות באמצעות WorkManager.

הכלי Background Task Inspector מספק ייצוג חזותי ותצוגת תרשים של משימות WorkManager, שעוזרים לנפות באגים ולגלות למה עבודה מתוזמנת מתעכבת או נכשלת. בנוסף, דף הנחיתה של התיעוד המעודכן בנושא עבודה ברקע מדגיש ממשקי API ספציפיים למשימות, שעברו אופטימיזציה לתרחישי שימוש מסוימים, כדי לעזור לכם להשיג ביצועים אמינים יותר.
 

מידע נוסף זמין בפוסט בבלוג של יום רביעי: שיקולים לגבי ביצועים של עבודה ברקע

אופטימיזציה של הביצועים היא תהליך מתמשך

אם הצלחתם להפעיל את המצב המלא של R8 השבוע, השלב הבא הוא לשלב את הביצועים בתוכנית השיווקית של המוצר באמצעות ציון ביצועי האפליקציה. המסגרת הסטנדרטית הזו עוזרת לכם למצוא את הפעולות לביצוע עם ההשפעה הגדולה ביותר, כדי שתוכלו להשתפר כל הזמן.

סיימנו את השבוע עם סשן שאלות ותשובות בשידור חי של ‎#AskAndroid, שבו מהנדסים ענו על השאלות הכי קשות שלכם בנושא R8, אופטימיזציות מבוססות-פרופיל ועוד. אם פספסתם, חפשו את ההקלטה.

תודה שהצטרפת אלינו! עכשיו, התחילו ליצור ושמרו על המומנטום.

כותב/ת המסמך:
להמשך קריאה