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

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

الشكل 1. تحسين موضع الرمز البرمجي من خلال تحسين تنسيق DEX

المتطلبات

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

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

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

  • تم تفعيل R8. بالنسبة إلى إصدارك، اضبط قيمة isMinifyEnabled = true.
  • تم تفعيل تحسينات تنسيق DEX. في حزمة baselineProfile {} ضمن ملف الإصدار الخاص بوحدة التطبيق، اضبط dexLayoutOptimization = true.

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

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

إنّ الخطوات العامة لإنشاء ملف Startup Profile هي نفسها الخطوات المتّبعة لإنشاء ملف Baseline Profile.

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

يوضّح مقتطف الرمز التالي أداة إنشاء ملفات Baseline Profile (ملف 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.

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

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

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

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

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