أداة تثبيت الملف الشخصي
التعديل الأخير | الإصدار المستقر | سحب المرشح | الإصدار التجريبي | إصدار أولي |
---|---|---|---|---|
4 سبتمبر 2024 | 1.3.1 | 1.4.0-rc01 | - | - |
إعلان التبعيات
لإضافة تبعية إلى ProfileInstaller، يجب إضافة مستودع Google Maven إلى مشروعك. الاطّلاع على مستودع Maven من Google لمزيد من المعلومات.
أضِف الملحقات التابعة للعناصر التي تحتاجها في ملف build.gradle
لـ
لتطبيقك أو الوحدة التي تستخدمها:
Groovy
dependencies { implementation "androidx.profileinstaller:profileinstaller:1.3.1" }
Kotlin
dependencies { implementation("androidx.profileinstaller:profileinstaller:1.3.1") }
لمزيد من المعلومات حول العناصر الاعتمادية، يُرجى الاطّلاع على إضافة تبعيات الإصدار.
ملاحظات
تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إعلامنا إذا اكتشفت مشاكل جديدة أو كان لديك أفكار لتحسين هذه المكتبة. يُرجى إلقاء نظرة على المشاكل الحالية في هذه المكتبة قبل إنشاء مكتبة جديدة. يمكنك إضافة تصويتك إلى مشكلة حالية عن طريق بالنقر فوق زر النجمة.
يُرجى الاطّلاع على مستندات أداة تتبُّع المشاكل. لمزيد من المعلومات.
الإصدار 1.4
الإصدار 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 على عمليات التنفيذ هذه.
الميزات الجديدة
- تمت إضافة دعم واجهة برمجة التطبيقات 35 إلى مثبت الملف الشخصي. (6f9f6fa)
إصلاح الأخطاء
- تمت إزالة التخطيط اليدوي للوصول إلى واجهات برمجة التطبيقات الجديدة للنظام الأساسي نظرًا لحدوث ذلك تلقائيًا عبر نماذج واجهة برمجة التطبيقات عند استخدام R8 مع AGP 7.3 أو إصدار أحدث (مثل R8 الإصدار 3.3) وكذلك لجميع الإصدارات عند استخدام AGP 8.1 أو الإصدارات الأحدث (مثل D8 الإصدار 8.1). وننصح العملاء الذين لا يستخدمون AGP بالتحديث إلى الإصدار 8.1 من نظام التشغيل D8 أو الإصدارات الأحدث. يُرجى مراجعة هذه المقالة للاطّلاع على مزيد من التفاصيل. (If6b4c، وb/345472586)
الإصدار 1.4.0-alpha01
7 فبراير 2024
تم طرح androidx.profileinstaller:profileinstaller:1.4.0-alpha01
. يحتوي الإصدار 1.4.0-alpha01 على هذه عمليات التنفيذ.
إصلاح الأخطاء
- تمت إضافة رمز الخطأ لعدم تضمين ملف شخصي في أداة التحقّق من الملف الشخصي. (Ifb109 وb/313928520)
- يتم إصلاح التعطُّل عند إسقاط أدوات التظليل على Android U (واجهة برمجة التطبيقات 34)، وكذلك في أدوات المحاكاة. (I031ca، b/274314544)
- تم تفعيل الدعم لنظام Android U في أداة تثبيت الملف الشخصي. (Iaf177)
- تم إصلاح عطل في أداة تثبيت الملف الشخصي على Android U بسبب عدم إنشاء الملف الشخصي الحالي فارغًا عند بدء العملية. (Ie3899)
- إصلاح طريقة تحويل ترميز الصور النقطية في تنسيق الملف الشخصي
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) - تمت إضافة واجهة برمجة تطبيقات
ProfileVerifier
للتحقّق من داخل التطبيق ممّا إذا كان ملف شخصي أساسي قد تم تجميعه أو جدولته أو عدم توفّره (I263a4 وb/246653809). - لإضافة بث هيكلي جديد يتيح لمعيار ماكرو تدفق بيانات الملف الشخصي داخل الذاكرة بالكامل إلى القرص، لتضمينها في إنشاء الملف الشخصي الأساسي. هذا الإجراء مطلوب لاستخدام مكتبة مقاييس الأداء الكلية لتسجيل الملفات الشخصية المرجعية من خلال
BaselineProfileRule
، وتقييم أداء الملف الشخصي باستخدامCompilationMode.Partial(warmupIterations)
. - تمت إضافة رمز تشخيصي لرصد الملفات الشخصية الأساسية المضغوطة. لا يمكن تثبيت الملفات الشخصية الأساسية المضغوطة باستخدام أداة تثبيت الملفات الشخصية في مقاييس الأداء القصوى أو في مرحلة الإنتاج بسبب أعباء استخدام وحدة المعالجة المركزية (CPU)، ويجب تجنُّبها عند إنشاء التطبيق من خلال تحديث التطبيق إلى الإصدار Studio/AGP Electric Eel أو الإصدار
bundletool
1.13.1
(I86413، b/261998144) - تمت إضافة عناصر الجذب إلى مقياس الأداء المصغَّر لتسجيل الملفات الشخصية وذاكرة التخزين المؤقت الخاصة بأداة التظليل، وهي عناصر مطلوبة لإنشاء الملفات الشخصية الأساسية أو قياس الأداء الماكرو على الأجهزة غير الجذر (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 على عمليات التنفيذ هذه.
التغييرات في واجهة برمجة التطبيقات
- إزالة إمكانية التعامل مع الملفات الشخصية المضغوطة - يؤدي الفتح وفك ضغط الملفات إلى تراجع مدته 10 ثوانٍ من ملي ثانية في استخدام وحدة المعالجة المركزية أثناء بدء التشغيل، ولذلك تمت إضافة تشخيص لاكتشاف الملفات الشخصية الأساسية المضغوطة بشكل غير صحيح. (I86413، b/261998144)
الإصدار 1.3.0-alpha03
11 كانون الثاني (يناير) 2023
تم طرح androidx.profileinstaller:profileinstaller:1.3.0-alpha03
. يحتوي الإصدار 1.3.0-alpha03 على هذه عمليات التنفيذ.
إصلاح الأخطاء
- تتيح هذه السياسة معالجة الملفات الشخصية الأساسية المضغوطة أو غير المضغوطة (Ic61a0).
- إصلاح
MacrobenchmarkScope.dropShaderCache()
لمنع تعطّله من خلال إصلاح سجلّ البث في بيان أداة تثبيت الملف الشخصي (I5c728، b/258619948)
الإصدار 1.3.0-alpha02
9 تشرين الثاني (نوفمبر) 2022
تم طرح androidx.profileinstaller:profileinstaller:1.3.0-alpha02
. يحتوي الإصدار 1.3.0-alpha02 على هذه عمليات التنفيذ.
التغييرات في واجهة برمجة التطبيقات
- تمت إضافة عنصر جذب لمقاييس الأداء من أجل إزالة ذاكرة التخزين المؤقت الخاصة بأدوات التظليل، وذلك لضمان أداء متّسق للشركات الناشئة الباردة، خاصةً عند الدمج مع الملفات الشخصية من تكرارات التحضير. هذا التحديث مطلوب لقياس عمليات التشغيل على البارد باستخدام
benchmark-macro-junit4:1.2.0-alpha05
أو إصدار أحدث. للاطّلاع على تغييرات واجهة برمجة التطبيقات في مكتبة مقاييس الأداء، يُرجى الرجوع إلى صفحة مقياس الأداء 1.2.0-alpha07. (Ia5171، b/231455742)
الإصدار 1.3.0-alpha01
24 تشرين الأول (أكتوبر) 2022
تم طرح androidx.profileinstaller:profileinstaller:1.3.0-alpha01
. يحتوي الإصدار 1.3.0-alpha01 على هذه عمليات التنفيذ.
التغييرات في واجهة برمجة التطبيقات
- تمت إضافة واجهة برمجة تطبيقات
ProfileVerifier
للتحقّق من داخل التطبيق ممّا إذا كان ملف شخصي أساسي قد تم تجميعه أو جدولته أو عدم توفّره (I263a4، b/246653809). - لإضافة بث هيكلي جديد يتيح لمعيار ماكرو تدفق بيانات الملف الشخصي داخل الذاكرة بالكامل إلى القرص، لتضمينها في إنشاء الملف الشخصي الأساسي. هذا الإجراء مطلوب لاستخدام مكتبة مقاييس الأداء الكلية لتسجيل الملفات الشخصية المرجعية من خلال
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 على عمليات الالتزام هذه.
إصلاح الأخطاء
- تتيح هذه السياسة معالجة الملفات الشخصية الأساسية المضغوطة أو غير المضغوطة (Ic61a0).
الإصدار 1.2.1
الإصدار 1.2.1
7 كانون الأول (ديسمبر) 2022
تم طرح androidx.profileinstaller:profileinstaller:1.2.1
. يحتوي الإصدار 1.2.1 على عمليات الالتزام هذه.
الميزات الجديدة
- تفعيل أداة تثبيت الملف الشخصي في S_V2 (واجهة برمجة التطبيقات 32) وTIRAMISU (واجهة برمجة التطبيقات 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 والإصدارات اللاحقة.
- يمكنك إضافة واجهات برمجة تطبيقات جديدة في
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 على عمليات التنفيذ هذه.
- ما مِن تغييرات مطلوبة لإتاحة الإصدارات 1.2.0-beta02 من Compose.
الإصدار 1.2.0-beta01
11 أيار (مايو) 2022
تم طرح androidx.profileinstaller:profileinstaller:1.2.0-beta01
. يحتوي الإصدار 1.2.0-beta01 على عمليات التنفيذ هذه.
التغييرات في واجهة برمجة التطبيقات
- يمكنك إضافة واجهات برمجة تطبيقات جديدة في
ProfileInstallReceiver
للحصول على نتائج أكثر اتساقًا معMacrobenchmarks
عند استخدام الملفات الشخصية الأساسية. (If2ae5، وb/215740637)
إصلاح الأخطاء
- تعرض "أداة تثبيت الملف الشخصي" رسالة مفيدة عند محاولة استخدام تنسيق
V_001
للبيانات الوصفية على الإصدار 12 من Android والإصدارات الأحدث. (aosp/1978526، b/217502387) - تستخدم أداة تثبيت الملف الشخصي الآن الإصدار
1.1.1
منandroidx.startup
. (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 على هذه الالتزامات.
إصلاح الأخطاء
- تم التحديث لإتاحة الإصدار 1.1.0-beta03 من Compose
الإصدار 1.1.0-beta02
3 تشرين الثاني (نوفمبر) 2021
تم طرح androidx.profileinstaller:profileinstaller:1.1.0-beta02
. يحتوي الإصدار 1.1.0-beta02 على عمليات التنفيذ هذه.
إصلاح الأخطاء
- تم التحديث لإتاحة الإصدار 1.1.0-beta02 من Compose
الإصدار 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 على هذه عمليات التنفيذ.
الميزات الجديدة
- إضافة دعم للمصوّرين على Android N
الإصدار 1.1.0-alpha06
29 أيلول (سبتمبر) 2021
تم طرح androidx.profileinstaller:profileinstaller:1.1.0-alpha06
. يحتوي الإصدار 1.1.0-alpha06 على هذه عمليات التنفيذ.
إصلاح الأخطاء
- إصلاح مشاكل تحويل ترميز أداة تثبيت الملف الشخصي على 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 المتعدّدة.
الإصدار 1.1.0-alpha04
1 أيلول (سبتمبر) 2021
تم طرح androidx.profileinstaller:profileinstaller:1.1.0-alpha04
. يحتوي الإصدار 1.1.0-alpha04 على هذه عمليات التنفيذ.
إصلاح الأخطاء
- يجب حل مشكلة
ProfileInstaller
لتسهيل تشغيل التطبيقات التي تستخدم الملفات الشخصية الأساسية لمقاييس الماكرو باستخدامCompilationMode.BaselineProfile
. (I42657، b/196074999)
الإصدار 1.1.0-alpha03
18 آب (أغسطس) 2021
تم طرح androidx.profileinstaller:profileinstaller:1.1.0-alpha03
. يحتوي الإصدار 1.1.0-alpha03 على هذه عمليات التنفيذ.
إصلاح الأخطاء
- تغيير سلوك التخطّي لأداة تثبيت الملف الشخصي لتسجيل 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 من Compose.
الإصدار 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 على عمليات الالتزام هذه.
- تم التحديث لإتاحة الإصدار 1.0.4 من Compose
الإصدار 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 من معالجة الملف الشخصي المصدر. ما مِن تغييرات على واجهات برمجة التطبيقات للمطوّرين.
الإصدار 1.0.1
4 آب (أغسطس) 2021
تم طرح androidx.profileinstaller:profileinstaller:1.0.1
. يحتوي الإصدار 1.0.1 على عمليات الالتزام هذه.
تم تعديلها لتكون متوافقة مع الإصدار 1.0.1 من Compose.
الإصدار 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 على هذه عمليات التنفيذ.
هذا إصدار من RC بدون تغييرات من الإصدار التجريبي.
الإصدار 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>
يكون ذلك مفيدًا على وجه الخصوص إذا كانت هناك متطلبات غير بسيطة لبدء التشغيل الخاصة بتطبيقك وكنت تريد بدء تثبيت الملف الشخصي يدويًا باستخدام واجهة برمجة تطبيقات 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
إلى أنّ هذه الطريقة يتم طلبها بعد بدء التشغيل.تشير الفئة المتوفّرة في هذا الملف إلى أنّه يتم استخدامه أثناء بدء التشغيل ويجب تخصيصها مسبقًا في الذاكرة لتجنُّب تحمُّل تكلفة تحميل الفئة.
ما هي آلية العمل؟
يمكن للمكتبات تحديد هذه القواعد التي سيتم جمعها في عناصر AAR. عند إنشاء ملف APK يتضمّن هذه العناصر، يتم دمج هذه القواعد معًا ويتم استخدام القواعد المدمجة لإنشاء ملف شخصي ثنائي مكثّف خاص بحِزمة APK. ويمكن لـ ART بعد ذلك الاستفادة من هذا الملف الشخصي عند تثبيت APK على الأجهزة من أجل تجميع مجموعة فرعية محددة من التطبيق مسبقًا لتحسين أداء التطبيق، وخاصة عند التشغيل الأول. يُرجى العلم أنّ ذلك لن يؤثر في التطبيقات التي يمكن تصحيح الأخطاء بها.
يجب تسمية ملفات القواعد باسم
baseline-prof.txt
ووضعها في الدليل الجذري لمجموعة المصادر الرئيسية (يجب أن تكون ملفًا تابعًا لملفAndroidManifset.xml
).لن يتم حاليًا استخدام هذه الملفات إلا إذا كنت تستخدم الإصدار 7.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android أو الإصدارات الأحدث، وقد تم تفعيله حاليًا باستخدام علامة في جهاز
gradle.properties
فقط:# Enable adding baseline-prof.txt files to AAR artifacts, and binary profiles to APKs android.experimental.enableArtProfiles=true
تتطلب الملفات الشخصية رصيدًا
- تجدر الإشارة إلى أنّ الملفات الشخصية المصمَّمة بشكل صحيح والتي تمنح الأولوية بشكل صحيح للأساليب والفئات التي ستكون ضِمن مسار بدء التشغيل وتُحقّق أفضل النتائج. ومع ذلك، فإنّ تضمين عدد كبير جدًا من الأساليب أو الفئات في الملفات الشخصية قد يؤدي إلى تأثير سلبي صافي من حيث استهلاك الذاكرة واستخدام القرص، لذا يُنصح بالبدء بتحفظ في حالة تحديد قواعد الملف الشخصي الخاصة بك.