פרופילים להפעלה הם קבוצת משנה של פרופילים של Baseline. פרופילים של הפעלה משמשים את מערכת ה-build כדי לבצע אופטימיזציה נוספת של המחלקות והשיטות שהם מכילים, על ידי שיפור הפריסה של הקוד בקובצי ה-DEX של ה-APK. באמצעות פרופילים להפעלה, הפעלת האפליקציה מהירה בדרך כלל ב-15% עד 30% בהשוואה לשימוש בפרופילים של Baseline בלבד.
דרישות
מומלץ להשתמש בפרופילים להפעלה עם הכלים הבאים:
- Jetpack Macrobenchmark מגרסה 1.2.0 ואילך
- Android Gradle Plugin מגרסה 8.2 ואילך
- Android Studio Iguana או גרסה מתקדמת יותר
בנוסף, צריך להגדיר את ההגדרות הבאות באפליקציה:
- R8 מופעל. בגרסת ה-build להפצה, מגדירים את
isMinifyEnabled = true. - אופטימיזציות של פריסת DEX מופעלות. בבלוק
baselineProfile {}של קובץ ה-build של מודול האפליקציה, מגדירים אתdexLayoutOptimization = true.
יצירת פרופיל סטארט-אפ
כשמשתמשים בתבנית ברירת המחדל של Baseline Profile Generator, Android Studio יוצר פרופיל הפעלה לצד פרופיל Baseline.
השלבים הכלליים ליצירה של פרופיל הפעלה זהים לשלבים של יצירת פרופיל Baseline.
דרך ברירת המחדל ליצור פרופיל הפעלה היא באמצעות תבנית המודול Baseline Profile Generator מתוך Android Studio. זה כולל אינטראקציות של הפעלת האפליקציה שיוצרות פרופיל הפעלה בסיסי. כדי להוסיף עוד מסלולי משתמש קריטיים (CUJ) לפרופיל ההפעלה הזה, מוסיפים את מסלולי המשתמש הקריטיים להפעלת האפליקציה לבלוק rule עם הערך true של includeInStartupProfile. באפליקציות פשוטות, יכול להיות שיהיה מספיק להפעיל את MainActivity של האפליקציה. באפליקציות מורכבות יותר, כדאי להוסיף את נקודות הכניסה הנפוצות ביותר לאפליקציה, כמו הפעלת האפליקציה ממסך הבית או הפעלה של קישור עומק.
בקטע הקוד הבא מוצג מחולל פרופיל Baseline (כברירת מחדל, הקובץ BaselineProfileGenerator.kt) שכולל הפעלה של קישור עומק.
קישור העומק מוביל ישירות לפיד החדשות של האפליקציה, ולא למסך הבית של האפליקציה.
@RunWith(AndroidJUnit4::class)
@LargeTest
class BaselineProfileGenerator {
@get:Rule
val rule = BaselineProfileRule()
@Test
fun generate() {
rule.collect(
packageName = "com.example.app",
includeInStartupProfile = true
) {
uiAutomator {
// Launch directly into the NEWS_FEED using startActivityIntent
startIntent(Intent().apply {
setPackage(packageName)
setAction("com.example.app.NEWS_FEED")
})
}
}
}
}
מריצים את ההגדרה Generate Baseline Profile for app ומחפשים את כללי פרופיל ההפעלה ב-src/<variant>/generated/baselineProfiles/startup-prof.txt.
שיקולים ליצירת פרופילים להפעלה
כדי להחליט אילו מסלולים להמרת משתמשים לכלול כשיוצרים פרופיל של אפליקציית סטארט-אפ, כדאי לחשוב איפה רוב המשתמשים מתחילים את השימוש באפליקציה. בדרך כלל זה קורה ממפעיל האפליקציות ואחרי שהם נכנסו לחשבון. זה גם המסלול הבסיסי ביותר של פרופיל Baseline.
אחרי שמכסים את תרחיש השימוש הראשון, עוקבים אחרי משפך המשתמשים להפעלת האפליקציה. במקרים רבים, משפכי ההמרה של הפעלת האפליקציה פועלים לפי הרשימה הזו:
- הפעילות הראשית במרכז האפליקציות
- התראות שמפעילות את האפליקציה
- פעילויות אופציונליות של מרכז האפליקציות
עובדים עם הרשימה הזו מלמעלה למטה, ומפסיקים לפני שהקובץ classes.dex מלא. כדי לעקוב אחרי יותר נסיעות בהמשך, צריך להוציא את הקוד מנתיב ההפעלה ולהוסיף עוד נסיעות. כדי להוציא קוד מנתיב ההפעלה, בודקים את עקבות Perfetto במהלך הפעלת האפליקציה ומחפשים פעולות ממושכות. אפשר גם להשתמש במדד מאקרו עם מעקב אחר שיטות מופעל כדי לקבל תצוגה מלאה של קריאות לשיטות במהלך הפעלת האפליקציה, שאפשר להפוך לאוטומטית.
מומלץ בשבילך
- הערה: טקסט הקישור מוצג כש-JavaScript מושבת
- יצירת פרופיל Baseline {:#creating-profile-rules}
- פרופילים של Baseline {:#baseline-profiles}
- כתיבת Microbenchmark