ProfileInstaller
העדכון האחרון | גרסה יציבה | גרסה מועמדת להפצה | גרסת בטא | גרסת אלפא |
---|---|---|---|---|
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
בפרופילים נדרשת יתרה
- פרופילים שנוצרו בצורה נכונה, שמתעדפים בצורה נכונה שיטות ומחלקות שיהיו בנתיב ההפעלה וביצועים קריטיים, יניבו את התוצאות הטובות ביותר. עם זאת, אם כוללים יותר מדי שיטות או מחלקות בפרופילים, יכולה להיות השפעה שלילית נטו על צריכת הזיכרון והשימוש בדיסק. לכן מומלץ להתחיל באופן שמרנית אם מגדירים כללי פרופיל משלכם.