نظرة عامة على الملفات الشخصية الأساسية

تعمل "الملفات الشخصية الأساسية" على تحسين سرعة تنفيذ الرموز البرمجية بنسبة% 30 تقريبًا من أول عملية تشغيل من خلال تجنُّب خطوات التفسير والتجميع أثناء التنفيذ (JIT) للمسارات البرمجية المضمّنة.

من خلال توفير ملف مرجعي في تطبيق أو مكتبة، يمكن لـ وقت تشغيل Android (ART) تحسين مسارات برمجية محدّدة من خلال تجميع "قبل التشغيل" (AOT)، ما يوفّر تحسينات في الأداء لكل مستخدم جديد وكل تحديث للتطبيق. يتيح "التحسين المستند إلى الملف الشخصي" (PGO) للتطبيقات تحسين عملية بدء التشغيل وتقليل بطء التفاعل وتحسين الأداء العام لوقت التشغيل للمستخدمين من أول تشغيل.

تؤدي تحسينات الأداء هذه مباشرةً إلى تحسين مقاييس النشاط التجاري، مثل معدّل الحفاظ على المستخدمين والمعاملات والتقييمات. يمكنك الاطّلاع على مزيد من المعلومات حول كيفية تأثير الأداء في مقاييس الأنشطة التجارية في قصص من Josh وLyft وTikTok وZomato.

مزايا "الملفات الشخصية للمرجع"

تتيح "الملفات الشخصية الأساسية" تجميع الرموز البرمجية مسبقًا في تفاعلات المستخدمين المهمة، مثل بدء تشغيل التطبيق أو التنقّل بين الشاشات أو تصفّح المحتوى، ما يجعلها أكثر سلاسة من المرة الأولى التي يتم تشغيلها فيها. من خلال زيادة سرعة التطبيق واستجابته، يمكن أن تؤدي "الملفات الأساسية" إلى زيادة عدد المستخدمين النشطين يوميًا وارتفاع متوسط معدّل تكرار الزيارات.

تساعد "الملفات الشخصية للمرجع" في توجيه عملية التحسين بعد بدء تشغيل التطبيق من خلال توفير تفاعلات شائعة للمستخدمين تعمل على تحسين وقت تشغيل التطبيق من أول تشغيل له. لا تعتمد عملية التجميع الموجَّهة في وقت مبكر على أجهزة المستخدمين، ويمكن إجراؤها مرة واحدة لكل إصدار على جهاز تطوير بدلاً من جهاز جوّال. من خلال شحن الإصدارات باستخدام "ملف أداء أساسي"، تصبح تحسينات التطبيق متاحة بشكل أسرع بكثير من الاعتماد على الملفات السحابية وحدها.

في حال عدم استخدام ملف أساسي، يتم تجميع كل رموز التطبيق أثناء التنفيذ في الذاكرة بعد تفسيرها، أو كتابتها في ملف odex في الخلفية عندما يكون الجهاز في وضع عدم النشاط. بعد تثبيت تطبيق أو تحديثه، يحصل المستخدمون على تجربة دون المستوى الأمثل من المرة الأولى التي يشغّلون فيها التطبيق إلى أن يتم تحسين المسارات البرمجية الجديدة. وتقيس العديد من التطبيقات تحسينات الأداء بنسبة% 30 تقريبًا بعد التحسين.

الملفات الشخصية للشركات الناشئة

تتشابه ملفات بدء التشغيل مع ملفات Baseline Profiles، ولكنّها تُستخدَم في وقت التجميع لتحسين تنسيق DEX من أجل تسريع أوقات بدء التشغيل، بدلاً من تحسين الأداء على الجهاز فقط. لمزيد من المعلومات حول أوجه الاختلاف بين "ملفات تعريف بدء التشغيل" و"الملفات الشخصية للمرجع"، يُرجى الاطّلاع على مقالة مقارنة بين "الملفات الشخصية للمرجع" و"ملفات تعريف بدء التشغيل". لمزيد من المعلومات عن تحسين تنسيق DEX، يُرجى الاطّلاع على تحسينات تنسيق DEX وملفات بدء التشغيل.

البدء

لبدء تحسين الأداء في تطبيقك الحالي، يُرجى الاطّلاع على إنشاء ملفات شخصية للمرجع.

إنشاء الملفات الشخصية مقابل إصدارات التطبيق

من المهم فهم الفرق في إعدادات التصميم المطلوبة عند إنشاء ملفات "الملف الشخصي للمرجع" و"ملف تعريف بدء التشغيل" (على سبيل المثال، baseline-prof.txt وstartup-prof.txt) مقارنةً بإنشاء حزمة APK النهائية للإصدار التي تستخدم هذه الملفات الشخصية.

عند إنشاء ملفات الملف الشخصي (على سبيل المثال، benchmark):

عند تسجيل "ملف أداء أساسي" من خلال اختبار، يجب ألا يكون تطبيقك مخفيًا. للتأكّد من أنّ قواعد الملف الشخصي التي تم إنشاؤها تتطابق بدقة مع توقيعات الطرق في الرمز البرمجي، يجب إيقاف التعتيم والتحسين (R8) لتنويعة التصميم المستخدَمة لإنشاء الملف الشخصي. يجب أن تختلف تنويعة التصميم هذه عن تنويعة التصميم الخاصة ببنية الإصدار التي تم تفعيل ميزتَي التشويش والتحسين فيها. يمكنك تحقيق ذلك من خلال ضبط isMinifyEnabled = false لتنويعة التصميم الخاصة بإنشاء الملف الشخصي. إذا لم تكن تستخدم المكوّن الإضافي Baseline Profile Gradle، عليك أيضًا التأكّد من تطبيق -dontobfuscate و-dontoptimize. يتولّى المكوّن الإضافي Baseline Profile Gradle ضبط هذه الإعدادات تلقائيًا نيابةً عنك.

يمكنك التأكّد من عدم تشويش تطبيقك أثناء إنشاء الملف الشخصي من خلال فتح ملف الملف الشخصي النصي الذي تم إنشاؤه (على سبيل المثال، baseline-prof.txt) و التحقّق من عدم تشويش أسماء الفئات والطرق.

عند إنشاء حزمة APK للإصدار النهائي:

عند إنشاء تطبيق الإصدار، يجب إخفاء تطبيقك. يجب أن تتضمّن بنية الإصدار isMinifyEnabled = true للاستفادة من ميزات إخفاء مفاتيح فك التشفير وإزالة البيانات غير الضرورية والتحسين. تعيد أداة R8 تلقائيًا كتابة القواعد من ملفات الملف الشخصي غير المبهمة لتتطابق مع الرمز المبهم والمحسّن في حزمة APK للإصدار. يستفيد الإصدار من ملف النص غير المبهم من خلال تحويل القواعد بشكل صحيح.

إذا أردت تفعيل ميزة تحسين تنسيق DEX (المستندة إلى ملفات تعريف بدء التشغيل)، يجب إخفاء بيانات إصدار تطبيقك واستخدام R8 مع تفعيل جميع التحسينات.

سير العمل المتقدّم (غير Gradle):

إذا كنت تستخدم سير عمل متقدّمًا لا يعتمد على Gradle (مثل Bazel أو Buck أو مسارات CI المخصّصة المبرمَجة) لإنشاء ملفاتك الشخصية، يجب اتّباع المبادئ نفسها. يجب ألا يكون تطبيقك مخفيًا أو محسّنًا عند تسجيل الملف الشخصي. ومع ذلك، عند إنشاء تطبيق الإصدار، يجب إخفاء رمزه. تعالج أداة R8 ملف قواعد النص غير المبهم وتحوّل القواعد بشكل صحيح لتطبيقها على تطبيق الإصدار المبهم.

توفّر سلسلة التبعية نُسخ إصدار ثابتة وتطويرية. لإنشاء ملف شخصي أساسي وتثبيته، استخدِم الإصدارات المتوافقة التالية أو الإصدارات الأحدث من المكوّن الإضافي لنظام Gradle المتوافق مع Android ومكتبة Macrobenchmark وأداة تثبيت الملفات الشخصية. هذه التبعيات مطلوبة في أوقات مختلفة وتعمل معًا كسلسلة أدوات لتفعيل "ملف شخصي للمرجع" مثالي.

  • المكوّن الإضافي لنظام Gradle المتوافق مع Android: ‏com.android.tools.build:8.0.0
  • مكتبة Macrobenchmark: androidx.benchmark:benchmark-macro-junit4:1.5.0
  • أداة تثبيت الملف الشخصي: androidx.profileinstaller:profileinstaller:1.4.1

ننصحك باستخدام أحدث إصدار من AGP لإنشاء "الملفات الأساسية" وإدارتها. في ما يلي الوظائف الرئيسية التي تتوفّر مع الإصدارات المختلفة من المكوّن الإضافي لنظام Gradle المتوافق مع Android:

إصدار "المكوّن الإضافي لنظام Gradle المتوافق مع Android" الميزات
9.1 دعم كامل لدليل مجموعة رموز المصدر (وحدات المكتبة): بالإضافة إلى الأدلة التي تراعي الصيغ، يمكنك تحديد ملفات مصدر متعددة لملف الأداء الأساسي باسم عشوائي، مثل src/free/generated/baselineProfiles/baseline-prof1.txt، لوحدات المكتبة ووحدات التطبيق.
8.4 تثبِّت عمليات تثبيت التطبيقات المحلية للإصدارات غير القابلة للتصحيح باستخدام أداة سطر أوامر Gradle wrapper أو "استوديو Android" ملفات أداء أساسية، وبالتالي يتطابق أداء إصدارك المحلي بشكل أكبر مع إصدار الإنتاج. لا يؤثر هذا التعديل في أداء "الملفات الشخصية للمرجع" في مرحلة الإنتاج.
8.3
  • دعم جزئي لدليل مجموعة رموز المصدر (وحدات المكتبة): يمكنك الإعلان عن ملفات "الملف الشخصي الأساسي" المتوافقة مع الصيغ، مثل src/free/generated/baselineProfiles/baseline-prof.txt، لوحدات المكتبة.
  • تتضمّن "الملفات الشخصية للمرجع" فئات تمت إزالة التجميل اللغوي منها.
8.2
  • إعادة كتابة قواعد R8: يمكن لأداتَي D8 وR8 تحويل قواعد "الملف الشخصي الأساسي" و"الملف الشخصي لبدء التشغيل" التي يمكن لشخص عادي قراءتها لتسجيل جميع القواعد التي تحتاج إليها لتحسين أداء التطبيق بشكل كامل. يتيح لك ذلك إنشاء ملفات شخصية من إصدار غير مصغّر وتطبيقها على بنية إصدار مصغّرة. تزيد من تغطية "الملف الشخصي للمرجع" للطرق بنسبة% 30 تقريبًا وتحسِّن أداء التطبيق بنسبة %15 تقريبًا.
  • ملفات بدء التشغيل: يمكنك إنشاء هذا النوع من ملفات Baseline Profile لتحديد تنسيق الرمز داخل DEX. يؤدي ذلك إلى زيادة أداء بدء التشغيل بنسبة %15 تقريبًا، أو أكثر من ذلك بكثير في التطبيقات الكبيرة.
من نظام التشغيل Android الحد الأدنى للإصدار المقترَح: استخدِم المكوّن الإضافي Baseline Profile Gradle لإنشاء "ملفات شخصية أساسية" باستخدام مهمة Gradle واحدة.
  • دعم كامل لدليل مجموعة رموز المصدر (وحدات التطبيق): يمكنك تحديد ملفات مصدر متعددة لملف الأداء الأساسي واستخدام الأدلة التي تراعي الصيغ، مثل src/free/generated/baselineProfiles/baseline-prof1.txt.
7.4 الحد الأدنى للإصدار المتوافق: يمكن للتطبيقات استخدام "الملفات الأساسية" من المكتبات، وتوفير "الملف الأساسي" الخاص بها في ملف src/main/baseline-prof.txt.
  • يتم تجميع "الملفات الشخصية الأساسية" بشكل صحيح عند إنشاء حزمة APK من حزمة تطبيق (المشكلة رقم 230361284).
  • بالنسبة إلى التطبيقات التي تحتوي على أكثر من ملف واحد من نوع .dex، يتم تجميع "الملفات الشخصية للمرجع" بشكل صحيح لملف .dex الأساسي.
  • تتيح أداتا D8 وR8 إنشاء ملفات شخصية لبدء التشغيل من إصدار تم فيه ضبط isMinifyEnabled على false.

إعدادات مصدر الملف الشخصي المتوافقة مع الصيغ

باستخدام الإصدار 8.0 من "مكوّن إضافي لنظام Gradle المتوافق مع Android" (AGP) للتطبيقات والإصدار 8.3 من AGP للمكتبات، يمكنك وضع قواعد "الملف الشخصي للمرجع" في دليل مخصّص لمجموعة رموز المصدر، ما يتيح لك تجاوز قيود المسار الثابت الواحد (على سبيل المثال، src/main/baseline-prof.txt) واستخدام ملفات متعددة.

يسهّل ذلك توفير دعم قوي للخيارات المتنوعة، ما يتيح لك تحديد ملفات شخصية أساسية متميزة مخصّصة لأنواع وأنماط إصدارات معيّنة (على سبيل المثال، باستخدام أدلة مثل src/variant/baselineProfiles/)، ما يضمن تطبيق قواعد تحسين الأداء بدقة لكل تطبيق فريد أو ملف ثنائي للمكتبة.

مثال على إنشاء ملف شخصي

في ما يلي مثال على فئة لإنشاء ملف شخصي أساسي لبدء تشغيل التطبيق، بالإضافة إلى العديد من أحداث التنقّل والتمرير باستخدام مكتبة Macrobenchmark المقترَحة:

class BaselineProfileGenerator {
    @get:Rule
    val baselineProfileRule = BaselineProfileRule()

    @Test
    fun appStartupAndUserJourneys() {
        baselineProfileRule.collect(packageName = PACKAGE_NAME) {
            uiAutomator {
                // App startup journey.
                startApp(PACKAGE_NAME)

                // Find and click elements using the new DSL
                onElement { textAsString() == "COMPOSE LAZYLIST" }.click()
                onElement { viewIdResourceName == "myLazyColumn" }.also {
                    it.fling(Direction.DOWN)
                    it.fling(Direction.UP)
                }
                pressBack()
            }
        }
    }
}

لمزيد من المعلومات حول استخدام مكتبة UI Automator في برمجة تجارب المستخدمين، يُرجى الاطّلاع على مقالة كتابة اختبارات مبرمَجة باستخدام UI Automator.

يمكنك الاطّلاع على هذا الرمز في سياقه الكامل وبمزيد من التفاصيل كجزء من نماذج الأداء على GitHub.

مضمون الفيديو

عند استخدام "الملفات الأساسية" في تطبيق، يمكنك تضمين رمز بدء تشغيل التطبيق وتفاعلات المستخدم الشائعة، مثل التنقّل بين الشاشات أو الانتقال للأعلى أو للأسفل. يمكنك أيضًا جمع تدفقات كاملة مثل التسجيل أو تسجيل الدخول أو الدفع. يمكن لأي تجربة مستخدم تعتبرها مهمة أن تستفيد من "الملفات الشخصية للمرجع" من خلال تحسين أدائها أثناء التشغيل.

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

يمكن للمكتبات توفير "ملفات شخصية للمرجع" خاصة بها وشحنها مع الإصدارات لتحسين أداء التطبيق. على سبيل المثال، يمكنك الاطّلاع على قسم استخدام ملف شخصي أساسي في أداء Jetpack Compose.

طريقة عمل "الملفات الشخصية للمرجع"

أثناء تطوير تطبيقك أو مكتبتك، ننصحك بتحديد "ملفات الأداء الأساسية" لتغطية تفاعلات المستخدمين الشائعة التي يكون فيها الوقت المستغرَق للعرض أو وقت الاستجابة مهمًا. إليكم كيفية العمل:

  1. يتم إنشاء قواعد الملف الشخصي التي يمكن لشخص عادي قراءتها لتطبيقك وتجميعها في نموذج ثنائي في التطبيق. يمكنك العثور عليها في assets/dexopt/baseline.prof. بعد ذلك، يمكنك تحميل مجموعة حزمات تطبيق Android‏ (AAB) إلى Google Play كالمعتاد.

  2. يعالج Google Play الملف الشخصي ويرسله مباشرةً إلى المستخدمين مع حزمة APK. أثناء التثبيت، ينفّذ وقت تشغيل Android عملية تجميع مسبق للطرق في الملف الشخصي، ما يؤدي إلى تنفيذ هذه الطرق بشكل أسرع. إذا كان الملف الشخصي يحتوي على طرق مستخدَمة في تشغيل التطبيق أو أثناء عرض اللقطات، قد يلاحظ المستخدم أوقات تشغيل أسرع وانخفاضًا في معدّل حدوث الأخطاء.

  3. يتعاون هذا المسار مع تجميع "الملفات الشخصية على السحابة الإلكترونية" لتحسين الأداء استنادًا إلى الاستخدام الفعلي للتطبيق بمرور الوقت.

الشكل 1. يوضّح هذا المخطّط البياني سير عمل "الملف الشخصي الأساسي" من التحميل إلى التسليم للمستخدم النهائي، وكيفية ارتباط سير العمل هذا بـ "الملفات الشخصية على السحابة الإلكترونية".

مقارنة بين "الملفات الشخصية للمرجع" و"ملفات تعريف بدء التشغيل"

يمكنك استخدام المكوّن الإضافي Baseline Profile Gradle لتحديد ملفات الملفات الشخصية وإنشائها. يرتبط هذا المكوّن الإضافي بعملية الإنشاء، ويجمع المكوّن الإضافي لنظام Gradle المتوافق مع Android قواعد الملف الشخصي هذه التي يمكن لشخص عادي قراءتها في تنسيق ثنائي، ويتم تجميعها كملف baseline.prof ضمن حزمة APK أو حزمة تطبيق Android‏ (AAB)، والذي يمكن لوقت تشغيل Android‏ (ART) استخدامه بفعالية للتجميع على الجهاز فقط، شرط أن يكون حجمه أقل من 1.5 ميغابايت.

عادةً ما تتم تسمية ملفات الملف الشخصي هذه باسم startup-prof.txt وbaseline-prof.txt. على الرغم من أنّ محتواهما قد يبدو متشابهًا في بعض الأحيان، خاصةً إذا كنت تركّز بشكل أساسي على بدء التشغيل، إلا أنّهما يخدمان أغراضًا مختلفة ويؤثران في الأداء في مراحل مختلفة:

الملف الشخصي للمرجع

يحتوي ملف "الملف الشخصي الأساسي" على مجموعة شاملة من القواعد التي يستخدمها وقت تشغيل Android (ART) لتجميع المسارات البرمجية المُستخدَمة بشكل متكرر مسبقًا، ما يحسِّن أداء التطبيق بعد بدء التشغيل.

يكون ملف "الملف الشخصي للمرجع" بشكل عام مجموعة شاملة من القواعد المتوفّرة في "الملف الشخصي لبدء التشغيل". يتضمّن هذا الملف جميع القواعد المطلوبة لتحسين بدء تشغيل التطبيق (التي يتم إنشاؤها من خلال مهمة Gradle‏ baselineProfile)، بالإضافة إلى ملفات شخصية إضافية لرحلات المستخدمين الأساسية الأخرى. على سبيل المثال، التمرير والتنقل بين الشاشات المختلفة.

يتم إنشاء هذه القواعد الإضافية غير المتعلّقة ببدء التشغيل بغض النظر عن قيمة حقل الإعداد includeInStartupProfile.

الملف التجاري للشركة الناشئة

يحتوي ملف Startup Profile على قواعد محسَّنة خصيصًا لمسار بدء تشغيل تطبيقك. أثناء عملية التجميع، يحوّل D8 رمز بايت Java إلى تنسيق DEX. يستخدم R8 بعد ذلك هذا الملف للتأثير في تنسيق ملفات DEX، ما يضمن وضع الرمز البرمجي المهم لبدء التشغيل في ملف DEX الأساسي لتنفيذه بشكل أسرع. يجب بشكل عام ضبط includeInStartupProfile على true فقط لسيناريوهات الاختبار الأساسية للعرض الأولي للتطبيق. لمزيد من المعلومات، يُرجى الاطّلاع على إنشاء ملفات شخصية لبدء التشغيل.

الملفات الشخصية على السحابة الإلكترونية

توفّر "الملفات الشخصية على السحابة الإلكترونية" شكلاً إضافيًا من "التحسين الموجَّه بالملف الشخصي"، والذي يتم تجميعه من خلال "متجر Google Play" وتوزيعه لتجميع وقت التثبيت، بالإضافة إلى "الملفات الشخصية الأساسية".

على الرغم من أنّ "الملفات الشخصية للسحابة الإلكترونية" تعتمد على تفاعلات المستخدمين الحقيقية مع التطبيق، فإنّها تستغرق عدة ساعات إلى أيام بعد التحديث ليتم توزيعها، ما يحدّ من مدى توفّرها. وإلى أن يتم توزيع ملفات التعريف بالكامل، يكون أداء التطبيق دون المستوى الأمثل لمستخدمي التطبيقات الجديدة أو المحدَّثة. بالإضافة إلى ذلك، لا تتوافق ميزة "الملفات الشخصية على السحابة الإلكترونية" إلا مع أجهزة Android التي تعمل بالإصدار Android 9 (مستوى واجهة برمجة التطبيقات 28) أو الإصدارات الأحدث، ولا يمكن توسيع نطاقها إلا للتطبيقات التي لديها قاعدة مستخدمين كبيرة بما يكفي.

سلوك التجميع على مستوى إصدارات Android

تستخدم إصدارات نظام Android الأساسي أساليب مختلفة لتجميع التطبيقات، ولكل منها مقايضة أداء مقابلة. تُحسِّن "الملفات الشخصية للمرجع" من طرق التجميع السابقة من خلال توفير ملف شخصي لجميع عمليات التثبيت.

إصدار Android طريقة التجميع نهج التحسين
‫5 إلى 6 (مستوى واجهة برمجة التطبيقات 21 إلى 23) AOT الكامل يتم تحسين التطبيق بالكامل أثناء التثبيت، ما يؤدي إلى طول أوقات الانتظار لاستخدام التطبيق، وزيادة استخدام ذاكرة الوصول العشوائي ومساحة القرص، وزيادة أوقات تحميل الرمز من القرص، ما قد يؤدي إلى زيادة أوقات التشغيل على البارد.
‫7 إلى 8.1 (المستوى 24 إلى 27 من واجهة برمجة التطبيقات) تجميع جزئي قبل التشغيل (الملف الشخصي للمرجع) يتم تثبيت "الملفات الأساسية" بواسطة androidx.profileinstaller عند التشغيل الأول عندما تحدّد وحدة التطبيق هذه التبعية. ويمكن لـ ART تحسين ذلك بشكل أكبر من خلال إضافة قواعد ملفات شخصية إضافية أثناء استخدام التطبيق، وتجميعها عندما يكون الجهاز في وضع عدم النشاط. يؤدي ذلك إلى تحسين مساحة القرص والوقت المستغرَق لتحميل الرمز من القرص، وبالتالي تقليل وقت انتظار التطبيق.
‫9 (المستوى 28 لواجهة برمجة التطبيقات) والإصدارات الأحدث تجميع جزئي قبل التشغيل (الملف الشخصي للمرجع + الملف الشخصي على السحابة الإلكترونية) يستخدم Play "الملفات الشخصية الأساسية" أثناء عمليات تثبيت التطبيقات لتحسين حزمة APK والملفات الشخصية على السحابة الإلكترونية، إذا كانت متاحة. بعد التثبيت، يتم تحميل ملفات تعريف "وقت تشغيل Android" إلى Play، ويتم تجميعها، ثم توفيرها كملفات تعريف سحابية للمستخدمين الآخرين عند تثبيت التطبيق أو تحديثه.

المشاكل المعروفة

في ما يلي المشاكل والحلول المحتملة، أو المشاكل التي يتم تطوير حلول بديلة لها:

  • قد يتعذّر إنشاء "الملف الشخصي الأساسي" بسبب إعدادات الأذونات على بعض الأجهزة، بما في ذلك أجهزة OnePlus. لتجنُّب هذه المشكلة، أوقِف خيار إيقاف مراقبة الأذونات في إعدادات خيارات المطوّرين.

  • لتوفير ملفات Baseline Profiles للمكتبات بنجاح، استخدِم الإصدار 1.2.3 من مكوّن Baseline Profile Gradle الإضافي أو الإصدار 8.3 من "مكوّن Android الإضافي في Gradle" كحد أدنى (المشكلة رقم 313992099).

  • إذا أنشأت ملفات أداء أساسية باستخدام الأمر ./gradlew app:generateBaselineProfile، يتم أيضًا تشغيل مقاييس الأداء في وحدة الاختبار، ويتم تجاهل النتائج. في هذه الحالة، يمكنك إنشاء "ملفات الأداء الأساسية" فقط من خلال تشغيل الأمر باستخدام -P android.testInstrumentationRunnerArguments.androidx.benchmark.enabledRules=BaselineProfile. تم إصلاح هذه المشكلة في الإصدار 8.2 من AGP.

  • إنّ الأمر الخاص بإنشاء "الملفات الشخصية للمرجع" لجميع أنواع التصميم، وهو ./gradlew app:generateBaselineProfile، لا ينشئ "الملفات الشخصية للمرجع" إلا لنوع بنية الإصدار. تم إصلاح هذه المشكلة في الإصدار 8.1 من "المكوّن الإضافي لنظام Gradle المتوافق مع Android".

  • قد لا تتيح قنوات توزيع التطبيقات غير التابعة لـ "متجر Google Play" استخدام "الملفات الأساسية" عند التثبيت. ولا تظهر مزايا dexopt لمستخدمي التطبيقات المثبَّتة من خلال هذه القنوات إلا بعد تشغيل dexopt في الخلفية، وهو ما يحدث على الأرجح أثناء الليل.

  • لا تتوافق ميزة مشاركة التطبيقات مع الفريق الداخلي في "متجر Google Play" مع "الملفات الشخصية للمرجع"، ولكن يتوافق معها مسار الاختبار الداخلي.

  • يمكن أن تتداخل تحسينات البطارية على بعض الأجهزة، مثل أجهزة Huawei، مع تثبيت الملف الشخصي. للمساعدة في ضمان تثبيت ملفاتك الشخصية بشكل فعّال، عليك إيقاف أي تحسينات للبطارية في أجهزة قياس الأداء.

مراجع إضافية

التطبيقات المقترَحة لك