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

"ملفات تعريف بدء التشغيل" هي مجموعة فرعية من "الملفات الشخصية للمرجع". يستخدم نظام التصميم ملفات تعريف بدء التشغيل لمواصلة تحسين الفئات والطرق التي تحتوي عليها من خلال تحسين تنسيق الرمز في ملفات DEX الخاصة بملف APK. باستخدام "ملفات تعريف بدء التشغيل"، يكون بدء تشغيل تطبيقك أسرع بنسبة تتراوح عادةً بين% 15 و% 30 مقارنةً باستخدام "الملفات الشخصية للمرجع" وحدها.

لمزيد من المعلومات، يُرجى الاطّلاع على نظرة عامة على "ملفات تعريف بدء التشغيل".

المتطلبات

ننصح باستخدام "ملفات تعريف بدء التشغيل" مع الأدوات التالية:

  • الإصدار 1.2.0 أو إصدار أحدث من Jetpack Macrobenchmark
  • الإصدار 8.2 أو إصدار أحدث من "مكوّن إضافي لنظام Gradle المتوافق مع Android" ‏ (AGP)
  • الإصدار Iguana أو إصدار أحدث من "استوديو Android"

بالإضافة إلى ذلك، يجب توفُّر الإعدادات التالية في تطبيقك:

  • تفعيل R8 بالنسبة إلى بنية الإصدار، اضبط isMinifyEnabled = true.
  • تفعيل تحسينات تنسيق DEX لا يتوفّر هذا الخيار إلا بدءًا من الإصدار 8.1 من "مكوّن Android الإضافي لنظام Gradle"، وهو مفعَّل تلقائيًا منذ الإصدار 8.3 من "مكوّن Android الإضافي لنظام Gradle". بالنسبة إلى الإصدارات من 8.1 إلى 8.2 من "مكوّن Android الإضافي لنظام Gradle"، اضبط dexLayoutOptimization = true في كتلة baselineProfile {} لملف الإصدار الخاص بوحدة التطبيق.

إنشاء ملف تعريف بدء التشغيل

ينشئ "استوديو Android" ملف تعريف بدء التشغيل إلى جانب ملف شخصي للمرجع عند استخدام نموذج "أداة إنشاء الملفات الشخصية للمرجع" التلقائي.

تتشابه الخطوات العامة لإنشاء "ملف تعريف بدء التشغيل" وإنشائه مع خطوات إنشاء "ملف شخصي للمرجع".

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

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

@RunWith(AndroidJUnit4::class)
@LargeTest
class BaselineProfileGenerator {

    @get:Rule
    val rule = BaselineProfileRule()

    @Test
    fun generate() {
        rule.collect(
            packageName = "com.example.app",
            includeInStartupProfile = true
        ) {
            uiAutomator {
                // Launch directly into the NEWS_FEED using startActivityIntent
                startIntent(Intent().apply {
                    setPackage(packageName)
                    setAction("com.example.app.NEWS_FEED")
                })
        }
    }
}

شغِّل إعداد إنشاء ملف شخصي للمرجع للتطبيقوابحث عن قواعد "ملف تعريف بدء التشغيل" في src/<variant>/generated/baselineProfiles/startup-prof.txt، حيث يستهلكها "مكوّن Android الإضافي لنظام Gradle" تلقائيًا.

اعتبارات يجب مراعاتها عند إنشاء ملفات تعريف بدء التشغيل

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

بعد تغطية حالة الاستخدام الأولى، اتّبِع مسار المستخدم لبدء تشغيل التطبيق. في كثير من الحالات، تتّبع مسارات بدء تشغيل التطبيق هذه القائمة:

  1. نشاط المشغّل الرئيسي
  2. الإشعارات التي تؤدي إلى بدء تشغيل التطبيق
  3. أنشطة المشغّل الاختيارية

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