במהלך השבוע האחרון התמקדנו בשיתוף שיטות מומלצות והנחיות שיעזרו לכם ליצור אפליקציות ל-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 נלמד אתכם איך להשתמש בנתונים שזמינים בקלות מתפקוד האפליקציה, שכוללים נתונים מהשטח לגבי שגיאות ANR, קריסות ושימוש מוגזם בסוללה.
בנוסף, נלמד אתכם איך לעלות רמה. לדוגמה, נראה לכם איך להגיע לרמה 3 באמצעות בדיקת ביצועים מקומית באמצעות Jetpack Macrobenchmark ו-UiAutomator 2.4 API החדש כדי למדוד ולאמת בצורה מדויקת כל שינוי בביצועים של האפליקציה.
מידע נוסף זמין בפוסט בבלוג שפרסמנו ביום חמישי: [Link to Thursday's Blog: Leveling Guide for your Performance Journey]
ניפוי באגים משופר בביצועים
אופטימיזציה מתקדמת לא צריכה לגרום לכך שדוחות קריסה יהיו בלתי קריאים. תכונות חדשות נועדו לעזור לכם לבצע דיבאגינג ב-R8 ובעבודות ברקע בביטחון:
Automatic Logcat Retrace
החל מ-Android Studio Narwhal, אפשר לבטל את ההסתרה של עקבות מחסנית באופן אוטומטי בחלון Logcat. כך תוכלו לראות ולנפות באגים באופן מיידי בכל קריסה בגרסה מוכנה לייצור.
צמצום הכללים של Keep
ביום שלישי הסברנו על כללי Keep שנדרשים לתיקון קריסות בזמן ריצה, והדגשנו את החשיבות של כתיבת כללים ספציפיים ברמת החברים, במקום שימוש בתווים כלליים רחבים מדי. בגלל שזה נושא חשוב, יצרנו בשבילך גם סרטון.
בנוסף, עם בדיקת ה-lint החדשה לכללי Keep רחבים, גם כאן Android Studio Otter 3 Feature Drop נותן לכם מענה.
פרסמנו גם הנחיות חדשות בנושא בדיקה ופתרון בעיות בהגדרת R8, כדי לעזור לכם להגדיר את ההגדרות בצורה נכונה ובביטחון.
מידע נוסף זמין בפוסט בבלוג שפרסמנו ביום שלישי: הגדרה ופתרון בעיות של כללי שמירה ב-R8
עבודה ברקע
שיתפנו הנחיות לניפוי באגים בתרחישים נפוצים שבהם אתם עשויים להיתקל כשאתם מתזמנים משימות באמצעות WorkManager.
Background Task Inspector מספק ייצוג חזותי ותצוגת תרשים של משימות WorkManager, ועוזר לכם לנפות באגים ולהבין למה עבודה מתוזמנת מתעכבת או נכשלת. בנוסף, בדף הנחיתה של המסמכים המעודכנים בנושא עבודה ברקע מודגשים ממשקי API ספציפיים למשימות שעברו אופטימיזציה לתרחישי שימוש מסוימים, כדי לעזור לכם להשיג ביצועים אמינים יותר.
מידע נוסף זמין בפוסט בבלוג שפרסמנו ביום רביעי: שיקולים לגבי ביצועים של עבודות ברקע
אופטימיזציה של הביצועים היא תהליך מתמשך
אם הצלחתם להפעיל השבוע את המצב המלא של R8, השלב הבא הוא לשלב את הביצועים בתוכנית שיווקית למוצר באמצעות ציון ביצועי האפליקציה. המסגרת המתוקננת הזו עוזרת לכם למצוא את הפעולות הכי משמעותיות לשיפור מתמיד.
סיימנו את השבוע עם סשן שאלות ותשובות בשידור חי #AskAndroid Live, שבו מהנדסים ענו על השאלות הכי קשות שלכם בנושא R8, אופטימיזציות מבוססות פרופיל ועוד. פספסתם? חפשו את השידור החוזר!
תודה שהצטרפת אלינו. עכשיו אפשר להתחיל ליצור ולשמור על המומנטום.
-
אירועים ותוכניותאנחנו מתחילים עם השינוי היחיד שיש לו את ההשפעה הכי גדולה ודורש הכי פחות מאמץ כדי לשפר את הביצועים של האפליקציה: הפעלת הכלי R8 Optimizer במצב מלא.
Ben Weiss • 5 min read -
אירועים ותוכניותאנחנו פותחים את ההרשמה לתוכנית Android XR Developer Catalyst, יוזמה ייעודית שמטרתה להאיץ את הפיתוח של אפליקציות Android XR שמוכנות להשקה בשנה הקרובה.
משך הקריאה: דקה אחת -
אירועים ותוכניותלוח הזמנים של כנס Google I/O כבר כאן!
משך הקריאה: דקה אחת
רוצים לקבל טיפים עדכניים לפיתוח Android ישירות לאימייל כל שבוע?