أداة تثبيت الملف الشخصي

  
لتمكين المكتبات من الملء المسبق لآثار التجميع المسبق لوقت القراءة بواسطة ART.
التعديل الأخير الإصدار المستقر سحب المرشح الإصدار التجريبي إصدار أولي
7 أغسطس 2024 1.3.1 - - 1.4.0-alpha02

إعلان التبعيات

لإضافة تبعية إلى ProfileInstaller، يجب إضافة مستودع Google Maven إلى مشروعك. الاطّلاع على مستودع Maven من Google لمزيد من المعلومات.

أضِف الملحقات التابعة للعناصر التي تحتاجها في ملف build.gradle لـ لتطبيقك أو الوحدة التي تستخدمها:

رائع

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

Kotlin

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

لمزيد من المعلومات حول العناصر الاعتمادية، يُرجى الاطّلاع على إضافة تبعيات الإصدار.

ملاحظات

تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إعلامنا إذا اكتشفت مشاكل جديدة أو كان لديك أفكار لتحسين هذه المكتبة. يُرجى إلقاء نظرة على المشاكل الحالية في هذه المكتبة قبل إنشاء مكتبة جديدة. يمكنك إضافة تصويتك إلى مشكلة حالية عن طريق بالنقر فوق زر النجمة.

إنشاء عدد جديد

يُرجى الاطّلاع على مستندات أداة تتبُّع المشاكل. لمزيد من المعلومات.

الإصدار 1.4

الإصدار 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 من المكوّن الإضافي Android Gradle أو الإصدارات الأحدث، وقد تم تفعيلها حاليًا باستخدام علامة في gradle.properties:

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

تتطلب الملفات الشخصية رصيدًا

  • تجدر الإشارة إلى أنّ الملفات الشخصية المصمَّمة بشكل صحيح والتي تمنح الأولوية بشكل صحيح للأساليب والفئات التي ستكون ضِمن مسار بدء التشغيل وتُحقّق أفضل النتائج. ومع ذلك، فإنّ تضمين عدد كبير جدًا من الأساليب أو الفئات في الملفات الشخصية يمكن أن يُحدث تأثيرًا سلبيًا صافيًا من حيث استهلاك الذاكرة واستخدام القرص، لذا يُنصح بالبدء بتحفظ في حال تحديد قواعد الملف الشخصي الخاصة بك.