ProfileInstaller

  
מאפשרת לספריות לאכלס מראש את עקבות ה-compilation ש-ART יקרא.
העדכון האחרון גרסה יציבה גרסה מועמדת להפצה גרסת בטא גרסת אלפא
2 באוקטובר 2024 1.4.1 - - -

הצהרת יחסי תלות

כדי להוסיף תלות ב-ProfileInstaller, אתם צריכים להוסיף את מאגר Google Maven לפרויקט. מידע נוסף זמין במאגר Maven של Google.

מוסיפים את יחסי התלות של הארטיפקטים הנדרשים בקובץ build.gradle של האפליקציה או המודול:

מגניב

dependencies {
    implementation "androidx.profileinstaller:profileinstaller:1.3.1"
}

Kotlin

dependencies {
    implementation("androidx.profileinstaller:profileinstaller:1.3.1")
}

מידע נוסף על יחסי תלות זמין במאמר הוספת יחסי תלות ל-build.

משוב

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

דיווח על בעיה חדשה

מידע נוסף זמין במסמכי התיעוד של Issue Tracker.

גרסה 1.4

גרסה 1.4.1

2 באוקטובר 2024

androidx.profileinstaller:profileinstaller:1.4.1 משוחרר. גרסה 1.4.1 כוללת את ההתחייבויות האלה.

תיקוני באגים

  • תוקנה תמיכה בהקלטת פרופיל בסיס מרובה תהליכים על ידי סימון תהליכים מרובים ברצף. כדי לבצע את התיקון הזה, צריך לעדכן את androidx.benchmark:benchmark-macro:1.4.0-alpha02 במודול של פרופיל הבסיס או של מדד הביצועים המאקרו, וגם את androidx.profileinstaller:profileinstaller:1.4.1 באפליקציה. (I0f519,‏ b/366231469)

גרסה 1.4.0

18 בספטמבר 2024

androidx.profileinstaller:profileinstaller:1.4.0 משוחרר. גרסת 1.4.0 כוללת את ההוספות האלה.

שינויים חשובים מאז גרסה 1.3.0

  • ProfileInstaller תומך עכשיו בתיעוד או התקנה של פרופילים ב-API מגרסה 35 ואילך. לא אמורים להיות יותר צורך בעדכונים של ProfileInstaller כדי לעדכן את גרסת הפלטפורמה. (6f9f6fa)
  • תיקון קריסה כשמשחררים שיבושים ב-Android U‏ (API 34), וגם במהדמרים. (I031ca, ‏ b/274314544)
  • תיקון של תיקון שגיאה של דגל השיטה להמרת קוד בפורמט הפרופיל V_015S. (aosp/2906631, ‏ aosp/2847740)

גרסה 1.4.0-rc01

4 בספטמבר 2024

גרסת androidx.profileinstaller:profileinstaller:1.4.0-rc01 פורסמה ללא שינויים לעומת גרסת הבטא האחרונה. גרסת 1.4.0-rc01 כוללת את ההוספות האלה.

גרסה 1.4.0-beta01

21 באוגוסט 2024

androidx.profileinstaller:profileinstaller:1.4.0-beta01 פורסם ללא שינויים מהגרסה הקודמת של אלפא. גרסת 1.4.0-beta01 כוללת את ההוספות האלה.

גרסה 1.4.0-alpha02

7 באוגוסט 2024

androidx.profileinstaller:profileinstaller:1.4.0-alpha02 משוחרר. גרסה 1.4.0-alpha02 מכילה את ההוספות האלה.

תכונות חדשות

  • הוספנו תמיכה ב-API 35 למתקין הפרופילים. (6f9f6fa)

תיקוני באגים

  • הסרנו את התיאור הידני של הגישה לממשקי API חדשים של פלטפורמות, כי זה קורה באופן אוטומטי באמצעות בניית מודלים של API כשמשתמשים ב-R8 עם AGP 7.3 ואילך (למשל, R8 גרסה 3.3) ובכל גרסאות ה-build כשמשתמשים ב-AGP 8.1 ואילך (למשל, D8 גרסה 8.1). לקוחות שלא משתמשים ב-AGP מומלצים לעדכן ל-D8 בגרסה 8.1 ואילך. למידע נוסף, מומלץ לעיין במאמר הזה. (If6b4c, b/345472586)

גרסה 1.4.0-alpha01

7 בפברואר 2024

androidx.profileinstaller:profileinstaller:1.4.0-alpha01 משוחרר. גרסה 1.4.0-alpha01 מכילה את ההצהרות האלה על ביצוע שינויים (commits).

תיקוני באגים

  • נוספ קוד שגיאה ללא פרופיל מוטמע לאימות הפרופיל. (Ifb109, ‏ b/313928520)
  • תיקון הקריסה כשמשחררים תוכנות הצללה (shader) ב-Android U (API 34) וגם באמולטורים. (I031ca, ‏ b/274314544)
  • הפעלנו תמיכה ב-Android U במתקין הפרופיל. (Iaf177)
  • תוקנה בעיה במנהל הפרופיל ב-Android U שבה הפרופיל הנוכחי לא נוצר ריק כשהתהליך מתחיל. (Ie3899)
  • תיקון שגיאה בשיטת ההמרה של קובצי bitmap בפורמט הפרופיל V_015S. (aosp/2906631) ו-(aosp/2847740)

גרסה 1.3

גרסה 1.3.1

3 במאי 2023

androidx.profileinstaller:profileinstaller:1.3.1 משוחרר. גרסה 1.3.1 מכילה את השמירות האלה.

תיקוני באגים

  • הופעלה תמיכה ב-Android U במנהל ההתקנה של הפרופיל (Iaf177)
  • תוקנה בעיה במנהל הפרופיל ב-Android U שבה הפרופיל הנוכחי לא נוצר ריק כשהתהליך מתחיל. (Ie3899)

גרסה 1.3.0

22 במרץ 2023

androidx.profileinstaller:profileinstaller:1.3.0 משוחרר. גרסה 1.3.0 כוללת את ההצהרות האלה.

שינויים חשובים מאז גרסה 1.2.0

  • תוקן NullPointerException ב-ProfileInstallReceiver. (b/243851384)
  • הוספנו את ה-API ProfileVerifier כדי לבדוק מתוך האפליקציה אם פרופיל בסיס עבר הידור, תזמון או חסר (I263a4,‏ b/246653809)
  • הוספת שידור מעטפת חדש שמאפשר ל-Macrobenchmark לרוקן באופן מלא את נתוני הפרופיל ששמורים בזיכרון, כדי להיכלל ביצירת פרופיל בסיסי. הדבר נדרש כדי להשתמש בספריית macrobenchmark כדי לתעד פרופילים בסיסיים באמצעות BaselineProfileRule, ולהעריך את ביצועי הפרופיל באמצעות CompilationMode.Partial(warmupIterations).
  • הוספנו קוד אבחון לזיהוי פרופילים של בסיס נתונים דחוסים. אי אפשר להתקין פרופילים בסיסיים דחוסים על ידי Profileinstaller ב-Macrobenchmark או בסביבת הייצור בגלל תקורה של המעבד (CPU). יש להימנע מכך כשמפתחים את האפליקציה באמצעות עדכון לגרסה של Studio/AGP Electric Eel או של bundletool 1.13.1(I86413, b/261998144)
  • הוספנו ווקים למדדי ביצועים מאקרו כדי לתעד פרופילים ולשחרר מטמון של שפות שרטוט (shader), שנדרשים ליצירת פרופילים בסיסיים או למדדי ביצועים מאקרו במכשירים ללא הרשאת root (Ie0a7d, ‏ b/250083467, ‏ b/253094958) (Ia5171, ‏ b/231455742)

גרסה 1.3.0-rc01

8 במרץ 2023

androidx.profileinstaller:profileinstaller:1.3.0-rc01 הושקה ללא שינויים מאז גרסת הבטא האחרונה. גרסה 1.3.0-rc01 כוללת את ההצהרות האלה.

גרסה 1.3.0-beta01

8 בפברואר 2023

androidx.profileinstaller:profileinstaller:1.3.0-beta01 משוחרר. גרסה 1.3.0-beta01 מכילה את התחייבויות אלה.

שינויים ב-API

  • הוסרה התמיכה בטיפול בפרופילים דחוסים – פתיחה ודחיסה מחדש גורמות לנסיגה של 10 אלפיות השנייה בשימוש ב-CPU במהלך ההפעלה. לכן, במקום זאת הוספנו אבחון כדי לזהות פרופילים בסיסיים שנדחסו בצורה שגויה. (I86413, ‏ b/261998144)

גרסה 1.3.0-alpha03

11 בינואר 2023

androidx.profileinstaller:profileinstaller:1.3.0-alpha03 משוחרר. גרסה 1.3.0-alpha03 מכילה את ההצהרות האלה.

תיקוני באגים

  • הפעלת טיפול בפרופילים בסיסיים דחוסים או לא דחוסים (Ic61a0)
  • תיקון MacrobenchmarkScope.dropShaderCache() כדי שהאפליקציה לא תקרוס יותר, על ידי תיקון של רישום השידור במניפסט של profileinstaller (I5c728,‏ b/258619948)

גרסה 1.3.0-alpha02

9 בנובמבר 2022

androidx.profileinstaller:profileinstaller:1.3.0-alpha02 משוחרר. גרסה 1.3.0-alpha02 מכילה את ההצהרות האלה.

שינויים ב-API

  • הוספנו הוק למדדי ביצועים כדי למחוק את מטמון השיזרים, כדי להבטיח ביצועים עקביים בהפעלה מחדש (cold startup), במיוחד כשמפעילים הידור עם פרופילים מחזורי התחממות. העדכון הזה נדרש כדי למדוד הפעלות ראשוניות של אפליקציות באמצעות benchmark-macro-junit4:1.2.0-alpha05 ואילך. כדי לקבל מידע על השינויים ב-API של ספריית Benchmark, אפשר לעיין בדף Benchmark 1.2.0-alpha07. (Ia5171, b/231455742)

גרסה 1.3.0-alpha01

24 באוקטובר 2022

androidx.profileinstaller:profileinstaller:1.3.0-alpha01 משוחרר. גרסה 1.3.0-alpha01 כוללת את ההוספות האלה.

שינויים ב-API

  • הוספנו את ה-API ProfileVerifier כדי לבדוק מתוך האפליקציה אם פרופיל בסיס עבר הידור, תזמון או חסר (I263a4,‏ b/246653809)
  • הוספה של שידור מעטפת חדש שמאפשר ל-Macrobenchmark למחוק לדיסק את נתוני הפרופיל שנשמרו בזיכרון, כדי לכלול אותם ביצירת פרופיל הבסיס. הדבר נדרש כדי להשתמש בספריית macrobenchmark כדי לתעד פרופילים בסיסיים באמצעות BaselineProfileRule, ולהעריך את ביצועי הפרופיל באמצעות CompilationMode.Partial(warmupIterations). (Ie0a7d, b/250083467, b/253094958)

גרסה 1.2.2

גרסה 1.2.2

11 בינואר 2023

androidx.profileinstaller:profileinstaller:1.2.2 משוחרר. גרסה 1.2.2 כוללת את ההצהרות האלה על ביצוע שינויים (commits).

תיקוני באגים

  • הפעלת טיפול בפרופילים בסיסיים דחוסים או לא דחוסים (Ic61a0)

גרסה 1.2.1

גרסה 1.2.1

7 בדצמבר 2022

androidx.profileinstaller:profileinstaller:1.2.1 משוחרר. גרסה 1.2.1 מכילה את השמירות האלה.

תכונות חדשות

  • הפעל את profileinstaller עבור S_V2 (API 32) ו-TIRAMISU (API 33) (b/254900303).

גרסה 1.2.0

גרסה 1.2.0

27 ביולי 2022

androidx.profileinstaller:profileinstaller:1.2.0 משוחרר. גרסה 1.2.0 מכילה את ההוספות האלה.

שינויים חשובים מאז גרסה 1.1.0

  • הוספנו תמיכה בפורמט הפרופיל של ART שמשמש ב-Android 12 ואילך.
  • מוסיפים ממשקי API חדשים ב-ProfileInstallReceiver כדי לקבל תוצאות עקביות יותר ב-Macrobenchmarks כשמשתמשים בפרופילים בסיסיים.

גרסה 1.2.0-rc01

15 ביוני 2022

androidx.profileinstaller:profileinstaller:1.2.0-rc01 משוחרר. גרסה 1.2.0-rc01 כוללת את ההוספות האלה.

  • הגרסה הזו זהה לגרסה androidx.profileinstaller:profileinstaller:1.2.0-beta03.

גרסה 1.2.0-beta03

1 ביוני 2022

androidx.profileinstaller:profileinstaller:1.2.0-beta03 משוחרר. גרסה 1.2.0-beta03 מכילה את התחייבויות אלה.

גרסה 1.2.0-beta02

18 במאי 2022

androidx.profileinstaller:profileinstaller:1.2.0-beta02 משוחרר. גרסה 1.2.0-beta02 מכילה את ההצהרות האלה.

  • אין שינויים, נדרשים כדי לתמוך בגרסאות Compose 1.2.0-beta02.

גרסה 1.2.0-beta01

11 במאי 2022

androidx.profileinstaller:profileinstaller:1.2.0-beta01 משוחרר. גרסה 1.2.0-beta01 מכילה את התחייבויות אלה.

שינויים ב-API

  • מוסיפים ממשקי API חדשים ב-ProfileInstallReceiver כדי לקבל תוצאות עקביות יותר ב-Macrobenchmarks כשמשתמשים בפרופילים בסיסיים. (If2ae5, b/215740637)

תיקוני באגים

  • כשמנסים להשתמש בפורמט V_001 של מטא-נתונים ב-Android מגרסה 12 ואילך, מתקבלת הודעה מועילה מ-Profile Installer. (aosp/1978526, ‏ b/217502387)
  • מנהל ההתקנה של הפרופיל משתמש עכשיו ב-androidx.startup בגרסה 1.1.1. (aosp/2077099, b/229828376)

גרסה 1.2.0-alpha02

26 בינואר 2022

androidx.profileinstaller:profileinstaller:1.2.0-alpha02 משוחרר. גרסה 1.2.0-alpha02 מכילה את ההוספות האלה.

הגרסה הזו זהה ל-1.2.0-alpha01.

גרסה 1.2.0-alpha01

12 בינואר 2022

androidx.profileinstaller:profileinstaller:1.2.0-alpha01 משוחרר. גרסה 1.2.0-alpha01 כוללת את ההוספות האלה.

תכונות חדשות

  • הוספת תמיכה בפורמט של פרופיל ART שמשמש ב-Android 12 ואילך.

גרסה 1.1.0

גרסה 1.1.0

9 בפברואר 2022

androidx.profileinstaller:profileinstaller:1.1.0 משוחרר. גרסה 1.1.0 כוללת את השמירות האלה.

גרסה 1.1.0-rc01

15 בדצמבר 2021

androidx.profileinstaller:profileinstaller:1.1.0-rc01 פורסם ללא עדכונים מאז גרסת 1.1.0-beta04. גרסה 1.1.0-rc01 מכילה את שמירות האלה.

גרסה 1.1.0-beta04

1 בדצמבר 2021

androidx.profileinstaller:profileinstaller:1.1.0-beta04 משוחרר. גרסה 1.1.0-beta04 מכילה את התחייבויות אלה.

גרסה 1.1.0-beta03

17 בנובמבר 2021

androidx.profileinstaller:profileinstaller:1.1.0-beta03 משוחרר. גרסה 1.1.0-beta03 כוללת את ההצהרות האלה.

תיקוני באגים

  • עודכן לתמיכה ב-Compose 1.1.0-beta03

גרסה 1.1.0-beta02

3 בנובמבר 2021

androidx.profileinstaller:profileinstaller:1.1.0-beta02 משוחרר. גרסה 1.1.0-beta02 כוללת את ההצהרות האלה.

תיקוני באגים

  • עדכון לתמיכה ב-Compose 1.1.0-beta02

גרסה 1.1.0-beta01

27 באוקטובר 2021

androidx.profileinstaller:profileinstaller:1.1.0-beta01 משוחרר. גרסה 1.1.0-beta01 כוללת את ההצהרות האלה.

  • אין שינויים מאז 1.1.0-alpha07.

גרסה 1.1.0-alpha07

13 באוקטובר 2021

androidx.profileinstaller:profileinstaller:1.1.0-alpha07 משוחרר. גרסה 1.1.0-alpha07 מכילה את התחייבויות אלה.

תכונות חדשות

  • הוספנו תמיכה ב-profm ב-Android N

גרסה 1.1.0-alpha06

29 בספטמבר 2021

androidx.profileinstaller:profileinstaller:1.1.0-alpha06 משוחרר. גרסה 1.1.0-alpha06 מכילה את ההוספות האלה.

תיקוני באגים

  • תיקון בעיות בהמרה של profileinstaller בגרסאות N,‏ O ו-O_MR1. (I12d75)

גרסה 1.1.0-alpha05

15 בספטמבר 2021

androidx.profileinstaller:profileinstaller:1.1.0-alpha05 משוחרר. גרסה 1.1.0-alpha05 מכילה את ההצהרות האלה.

תיקוני באגים

  • תוקנה בעיה בהמרת קוד של פרופיל Android Nougat ו-Android Oreo עבור קובצי APK עם multidex.

גרסה 1.1.0-alpha04

1 בספטמבר 2021

androidx.profileinstaller:profileinstaller:1.1.0-alpha04 משוחרר. גרסה 1.1.0-alpha04 מכילה את ההוספות האלה.

תיקוני באגים

  • תיקון של ProfileInstaller כדי שיהיה קל יותר לאפליקציות שמשתמשות בפרופילים בסיסיים להריץ בדיקות MacroBenchmark באמצעות CompilationMode.BaselineProfile. (I42657, ‏ b/196074999)

גרסה 1.1.0-alpha03

18 באוגוסט 2021

androidx.profileinstaller:profileinstaller:1.1.0-alpha03 משוחרר. גרסה 1.1.0-alpha03 מכילה את התחייבויות אלה.

תיקוני באגים

  • משנים את התנהגות הדילוג של profileinstaller כך שתתועד ביומן הערך PackageInfo.lastUpdatedTime בקובץ בספריית הקבצים של האפליקציה, ומשווים אותו לפני התקנת הפרופיל בהפעלה הבאה. (Ib93d1)
  • שינוי פורמט הפרופיל במכשירי P,‏ Q ו-R כך שיתאים לדרישות של ART‏ (I84e89)

גרסה 1.1.0-alpha02

4 באוגוסט 2021

androidx.profileinstaller:profileinstaller:1.1.0-alpha02 משוחרר. גרסה 1.1.0-alpha02 מכילה את ההוספות האלה.

בוצע עדכון להתאמה לכתיבה בגרסה 1.1.0-alpha01.

גרסה 1.1.0-alpha01

21 ביולי 2021

androidx.profileinstaller:profileinstaller:1.1.0-alpha01 משוחרר. גרסה 1.1.0-alpha01 כוללת את ההוספות האלה.

תיקוני באגים

  • תוקן באג שגרם להפעלת מצב קפדני בנסיבות מסוימות.

גירסה 1.0

גרסה 1.0.4

13 באוקטובר 2021

androidx.profileinstaller:profileinstaller:1.0.4 משוחרר. גרסה 1.0.4 מכילה את ההצהרות האלה על ביצוע שינויים (commits).

  • עודכן ל-Compose 1.0.4

גרסה 1.0.3

29 בספטמבר 2021

androidx.profileinstaller:profileinstaller:1.0.3 משוחרר. גרסה 1.0.3 מכילה את ההתחייבויות האלה.

  • עודכן לתמיכה ב-Compose 1.0.3

גרסה 1.0.2

1 בספטמבר 2021

androidx.profileinstaller:profileinstaller:1.0.2 משוחרר. גרסה 1.0.2 כוללת את השמירות האלה.

תיקוני באגים

  • נוספה המרה של פרופיל למכשירי P,‏ Q ו-R. בעקבות השינוי הזה, המכשירים האלה יבצעו קידוד מחדש של הפרופיל, כדי להבטיח ש-ART תמיד תוכל להשתמש בפרופיל הכתוב. בעבר, המערכת דילגה על המרת הקידוד בפלטפורמות האלה, וכתוצאה מכך לפעמים ART לא יכול לעבד את פרופיל המקור. אין שינויים בממשקי ה-API למפתחים.

גרסה 1.0.1

4 באוגוסט 2021

androidx.profileinstaller:profileinstaller:1.0.1 משוחרר. גרסה 1.0.1 מכילה את ההצהרות האלה על ביצוע שינויים (commits).

עודכנה להתאמה לכתיבה 1.0.1.

גרסה 1.0.0

28 ביולי 2021

androidx.profileinstaller:profileinstaller:1.0.0 משוחרר. גרסה 1.0.0 כוללת את ההצהרות האלה.

תכונות עיקריות בגרסה 1.0.0

מנהל ההתקנה של הפרופילים הוא ספרייה חדשה שמאפשרת לספריות ולאפליקציות להגדיר 'כללי פרופיל' ולקבץ את הפרטים של פרופיל ART עם APK. הספרייה הזו תתקין את הפרופילים האלה לאחר השקת האפליקציה. ניתן להשתמש בכך כדי לשפר את ביצועי האפליקציה.

מידע נוסף על כללי הפרופיל האלה ועל אופן הפעולה שלהם זמין בנתוני הגרסה המפורטים בכתובת 1.0.0-beta01.

גרסה 1.0.0-rc02

14 ביולי 2021

androidx.profileinstaller:profileinstaller:1.0.0-rc02 משוחרר. גרסה 1.0.0-rc02 כוללת את ההצהרות האלה.

גרסה 1.0.0-rc01

1 ביולי 2021

androidx.profileinstaller:profileinstaller:1.0.0-rc01 משוחרר. גרסה 1.0.0-rc01 כוללת את ההוספות האלה.

זוהי גרסה זמנית ללא שינויים מגרסת הבטא.

גרסה 1.0.0-beta01

16 ביוני 2021

androidx.profileinstaller:profileinstaller:1.0.0-beta01 משוחרר. גרסה 1.0.0-beta01 כוללת את ההצהרות האלה.

מטרת הספרייה

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

התקנת הפרופיל מתבצעת באמצעות הספרייה androidx.startup. אם רוצים להשבית את התקנת הפרופיל מכל סיבה שהיא, אפשר לשנות את המניפסט כדי להסיר אותו:


       <provider
           android:name="androidx.startup.InitializationProvider"
           android:authorities="${applicationId}.androidx-startup"
           android:exported="false"
           tools:node="merge">
           <meta-data android:name="androidx.profileinstaller.ProfileInstallerInitializer"
                     tools:node="remove" />
       </provider>

האפשרות הזו שימושית במיוחד אם לאפליקציה שלכם יש דרישות לא פשוטות לטעינה בזמן ההפעלה, ואתם רוצים להפעיל את התקנת הפרופיל באופן ידני באמצעות ה-API של ProfileInstaller.writeProfile.

מהם כללי הפרופיל?

  • כללי פרופיל עבור ספרייה מוגדרים בקובץ הטקסט baseline-prof.txt שנמצא בספרייה src/main או בספרייה מקבילה. בקובץ מצוין כלל לכל שורה, כאשר כלל במקרה הזה הוא דפוס להתאמה לשיטות או לכיתות בספרייה. התחביר של הכללים האלה הוא קבוצת-על של פורמט הפרופיל של ART שקריא לבני אדם, שבו נעשה שימוש כשמשתמשים ב-adb shell profman --dump-classes-and-methods .... הכללים האלה יכולים להיות באחת משתי צורות כדי לטרגט שיטות או כיתות.

  • כלל שיטה צריך לכלול את הדפוס הבא:

    <FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
    
  • וכלל כיתה יהיה בעל התבנית הבאה:

    <CLASS_DESCRIPTOR>
    
  • כאן, <FLAGS> הוא אחד או יותר מהתווים H, ‏ S ו-P, שמציינים אם צריך לסמן את השיטה הזו בתווית 'חמה', 'הפעלה' או 'לאחר ההפעלה'.

  • <CLASS_DESCRIPTOR> הוא המתאר של המחלקה שאליה שייכת שיטת הטירגוט. לדוגמה, המחלקה androidx.compose.runtime.SlotTable תקבל מתאר של Landroidx/compose/runtime/SlotTable;.

  • <METHOD_SIGNATURE> הוא החתימה של השיטה, והוא כולל את השם, סוגי הפרמטרים וסוג המידע המוחזר של השיטה. לדוגמה, לשיטה fun isPlaced(): Boolean ב-LayoutNode יש את החתימה isPlaced()Z.

  • התבניות האלה יכולות לכלול תווים כלליים (**,‏ * ו-?) כדי שכלל אחד יכלול כמה שיטות או כיתות.

מהם הכללים?

  • שיטה עם הדגל H מציינת שהשיטה הזו היא שיטה 'פופולרית' וצריך להדר אותה מראש.

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

  • שיטה עם הדגל P מציינת שזו שיטה שנקראת אחרי ההפעלה.

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

כיצד זה עובד?

  • ספריות יכולות להגדיר את הכללים האלה, שיישמרו בפריטי מידע שנוצרו בתהליך הפיתוח (Artifact) של AAR. לאחר מכן, כשמפתחים קובץ APK שכולל את הארטיפקטים האלה, הכללים האלה ממוזגים יחד והכללים הממוזגים משמשים ליצירת פרופיל ART בינארי קומפקטי שספציפי לקובץ ה-APK. לאחר מכן, ART יכול להשתמש בפרופיל הזה כשה-APK מותקן במכשירים כדי ליצור מראש קבוצת משנה ספציפית של האפליקציה ולשפר את הביצועים של האפליקציה, במיוחד בהפעלה הראשונה. לתשומת ליבכם: לא תהיה לכך השפעה על אפליקציות שניתן לנפות באגים בהן.

  • שם קובצי הכללים צריך להיות baseline-prof.txt והם צריכים להיות ממוקמים בתיקיית השורש של קבוצת המקורות הראשית (הוא צריך להיות קובץ אח של קובץ AndroidManifset.xml).

  • נכון לעכשיו, ייעשה שימוש בקבצים האלה רק אם אתם משתמשים בפלאגין Android Gradle מגרסה 7.0 ואילך, וכרגע מופעל רק עם דגל ב-gradle.properties:

    # Enable adding baseline-prof.txt files to AAR artifacts, and binary profiles to APKs
    android.experimental.enableArtProfiles=true
    

בפרופילים נדרשת יתרה

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