במסמך הזה מוסבר ההבדל בין פרופילים של Baseline לבין פרופילים של Startup.
אפשר להשתמש בפלאגין Baseline Profile Gradle כדי לתעד באופן אוטומטי את קובצי פרופיל ה-Baseline שנוצרו על ידי בדיקות BaselineProfileRule וקלים לקריאה. כשמבצעים build של האפליקציה, Android Gradle Plugin (AGP) מהדר את כללי הפרופיל האלה שניתנים לקריאה על ידי בני אדם לפורמט בינארי, שארוז כ-baseline.prof בתוך Android Package Kit (APK) או Android App Bundle (AAB). מערכת Android Runtime (ART) יכולה להשתמש בפורמט הזה ביעילות כדי לבצע הידור במכשיר, בתנאי שהפרופיל הבינארי קטן מ-1.5MB.
שמות קובצי הפרופיל שנוצרים הם בדרך כלל startup-prof.txt ו-baseline-prof.txt.
פרופיל Baseline
קובץ פרופיל ה-Baseline מכיל קבוצה מקיפה של כללים שסביבת זמן הריצה ל-Android (ART) משתמשת בהם כדי לבצע קומפילציה מראש של נתיבי קוד שנמצאים בשימוש תדיר. כך מתבצעת אופטימיזציה של הפעלת האפליקציה, מצטמצמות בעיות בממשק (jank) שקשורות לאינטראקציה ומשתפרים הביצועים הכוללים של זמן הריצה.
קובץ פרופיל ה-Baseline הוא בדרך כלל קבוצת-על של הכללים שנמצאים בפרופיל ה-Startup. הקובץ הזה כולל את כל הכללים שנדרשים לאופטימיזציה של הפעלת האפליקציה (נוצר באמצעות משימת Gradle baselineProfile), וגם פרופילים נוספים לחוויות משתמשים קריטיות אחרות. לדוגמה, גלילה ומעבר בין מסכים שונים.
הכללים האלה שאינם מופעלים עם ההפעלה נוצרים ללא קשר לערך של שדה ההגדרה includeInStartupProfile. מידע נוסף זמין במאמר סקירה כללית של פרופילי Baseline.
פרופיל להפעלה
קובץ פרופיל ההפעלה מכיל כללים שעברו אופטימיזציה ספציפית לנתיב ההפעלה של האפליקציה. במהלך הקומפילציה, D8 ו-R8 צורכים בייטקוד של Java כדי ליצור קבצים של קוד הפעלה של Dalvik (DEX). הקומפיילרים D8 ו-R8 משתמשים בפרופילים של הפעלה כדי לבצע אופטימיזציה של פריסת DEX. הם עושים זאת על ידי הצבת קוד הפעלה קריטי בקובץ .dex הראשי, כדי להאיץ את הטעינה של המחלקה. כדי להשיג את שיפורי הביצועים המשמעותיים ביותר, קוד ההפעלה צריך להיות בקובץ הראשי .dex הזה. אם הגודל המצטבר של קוד ההפעלה גדול מדי, הוא גולש לקובצי DEX הבאים, שבדרך כלל מאוכלסים במחלקות ובשיטות לא חיוניות, והדבר מאט את ההפעלה.
פרופיל הפעלה מספק את המטא-נתונים שנדרשים לאופטימיזציה של פריסת DEX, אבל אופטימיזציה של קוד R8 יכולה להיות יעילה מאוד בתהליך הזה. על ידי הסרת קוד שלא נמצא בשימוש וצמצום קוד בייט, R8 מצמצם את טביעת הרגל הכוללת של לוגיקת ההפעלה. הצמצום הזה מגדיל את הסיכוי שהקוד הקריטי יישאר בקובץ .dex הראשי, וכך ימנע גלישה ויבטיח ביצוע יעיל יותר במגוון רחב יותר של גרסאות Android.
בדרך כלל, צריך להגדיר את includeInStartupProfile לערך true רק לתרחישי בדיקה שחיוניים להצגה הראשונית של האפליקציה.
מידע נוסף זמין במאמר סקירה כללית על פרופילים של סטארטאפים.