Jetpack Compose מספק ביצועים מצוינים כבר מההתחלה. כדי להימנע ממלכודות נפוצות ולשפר את הביצועים של אפליקציית Compose, כדאי להגדיר את האפליקציה לפי השיטות המומלצות.
מיומנויות ב-Android
הצגת הקוד ב-GitHubביצועים ב-Jetpack Compose
android skills add jetpack-compose-performanceבדיקת ביצועים של Jetpack Compose
כדי לאמת את הביצועים של Jetpack Compose בהשוואה לתצוגות, אנחנו משתמשים בבדיקות ביצועים של Hero – בדיקות ביצועים שמתמקדות בתהליכים חשובים שהמשתמשים עוברים בעולם האמיתי, כמו הפעלה קרה של אפליקציה או גלילה ברשימה או ברשת עם תמונות. אנחנו מבצעים את הבדיקות האלה באמצעות אפליקציית Pokedex בקוד פתוח, ומשווים בין ההטמעות שלה ב-Views וב-Compose.
הבדיקות האלה מראות ש-Compose בגרסה 1.9 ואילך תואם לביצועים של Views מבחינת קפיצות בזמן הגלילה.
כדי לראות מדדים נוספים ולקבל מידע על המתודולוגיות שלנו, אפשר לעיין במאמר נקודות השוואה של Hero.
מושגים מרכזיים
אלה כמה מהמושגים העיקריים שקשורים לביצועים ב-Compose:
- שלבים: חשוב להבין את שלבי הקומפוזיציה, הפריסה והשרטוט כדי לבצע אופטימיזציה של האופן שבו פיתוח נייטיב מעדכן את ממשק המשתמש.
- פרופילים של Baseline: הפרופילים האלה מבצעים הידור מראש של קוד חיוני, וכך מאפשרים הפעלה מהירה יותר של האפליקציה ואינטראקציות חלקות יותר.
- יציבות: חשוב להבין איך Compose משווה בין פרמטרים במהלך הרכבה מחדש, כדי שתוכלו לדלג על עבודה מיותרת בלי להוסיף בדיקות שוויון יקרות.
הגדרת האפליקציה בצורה נכונה
אם הביצועים של האפליקציה לא טובים, יכול להיות שיש בעיה בהגדרות. כדאי להתחיל בבדיקה של אפשרויות ההגדרה הבאות:
- פיתוח במצב הפצה באמצעות R8: נסו להפעיל את האפליקציה במצב הפצה. מצב ניפוי באגים שימושי לזיהוי בעיות רבות, אבל הוא פוגע בביצועים ויכול להקשות על זיהוי בעיות אחרות. כדאי גם להפעיל אופטימיזציה וכיווץ באמצעות הקומפיילר R8 כדי לוודא שגרסת ה-build להפצה תהיה יעילה ובעלת ביצועים טובים.
- שימוש בפרופילים של Baseline: פרופילים של Baseline משפרים את הביצועים על ידי הידור מראש של קוד עבור חוויית שימוש הכרחית. Compose כולל פרופיל ברירת מחדל, אבל מומלץ ליצור גם פרופיל ספציפי לאפליקציה. מידע נוסף על פרופילים של Baseline במסמכי התיעוד הכלליים בנושא ביצועים ב-Android
כלים
כדאי להכיר את חבילת הכלים שזמינים למדידה ולניתוח של ביצועי האפליקציה ב-Compose.
שיטות מומלצות
כשמפתחים אפליקציה באמצעות Compose, חשוב לזכור את השיטות המומלצות הבאות:
- הימנעו מחישובים יקרים: השתמשו ב-
rememberכדי לשמור במטמון את התוצאות של חישובים יקרים. - עזרה לפריסות עם טעינה מדורגת: ספקו פרמטרים יציבים של
keyו-contentTypeלפריסות עם טעינה מדורגת כדי לצמצם את היצירה מחדש המיותרת ולאפשר שימוש חוזר במשבצות. - הגבלת הרכבות מחדש מיותרות: השתמשו ב-
computedStateOf(ב-Compose מגרסה 1.13 ואילך) או ב-derivedStateOfכדי להגביל את ההרכבות מחדש כשקוראים מצב שמשתנה במהירות. - דחיית קריאות של מצבים: דוחים את הקריאות של המצבים כמה שאפשר על ידי הוספת פונקציות lambda.
- שימוש ב-lambda modifiers לשינוי מצב: השתמשו ב-modifiers מבוססי lambda כמו
Modifier.offset { ... }למשתני מצב שמשתנים לעיתים קרובות. - הימנעו מכתיבה לאחור: אל תכתבו אף פעם לערך דינמי שכבר נקרא בפונקציה קומפוזבילית.
מידע נוסף זמין במדריך השיטות המומלצות.
צפיות
אם אתם עובדים עם תצוגות במקום עם Compose, עיינו במדריך הייעודי שיפור הביצועים של הפריסה.
מקורות מידע נוספים
- מדריך לביצועי האפליקציה: שיטות מומלצות, ספריות וכלים לשיפור הביצועים ב-Android.
- בדיקת הביצועים: בדיקת ביצועי האפליקציה.
- השוואה לשוק: השוואת ביצועי האפליקציה לשוק.
- הפעלת האפליקציה: אופטימיזציה של הפעלת האפליקציה.
- פרופילים של Baseline: הסבר על פרופילים של Baseline.