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

المتطلبات
ننصحك باستخدام "ملفات بدء التشغيل" مع الأدوات التالية:
- الإصدار 1.2.0 من Jetpack Macrobenchmark أو الإصدارات الأحدث
- الإصدار 8.2 من المكوّن الإضافي لنظام Gradle المتوافق مع Android أو إصدار أحدث
- الإصدار Iguana من "استوديو Android" أو إصدار أحدث
بالإضافة إلى ذلك، تحتاج إلى الإعدادات التالية في تطبيقك:
- تم تفعيل R8. بالنسبة إلى إصدارك، اضبط قيمة
isMinifyEnabled = true
. - تم تفعيل تحسينات تنسيق DEX. في الحزمة
baselineProfile {}
ضمن ملف إنشاء وحدة التطبيق، اضبطdexLayoutOptimization = true
.
إنشاء ملف شخصي خاص بالشركات الناشئة
ينشئ Android Studio ملف Startup Profile إلى جانب ملف Baseline Profile عند استخدام نموذج Baseline Profile Generator التلقائي.
إنّ الخطوات العامة لإنشاء ملف إعداد وبدء تشغيل هي نفسها الخطوات المتّبعة لإنشاء ملف أساسي.
الطريقة التلقائية لإنشاء ملف بدء التشغيل هي استخدام نموذج وحدة 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
) {
// Launch directly into the NEWS_FEED.
startActivityAndWait(Intent().apply {
setPackage(packageName)
setAction("com.example.app.NEWS_FEED")
})
}
}
}
نفِّذ عملية الإعداد إنشاء ملف تعريف أساسي للتطبيق وابحث عن قواعد ملف تعريف بدء التشغيل في src/<variant>/generated/baselineProfiles/startup-prof.txt
.
اعتبارات عند إنشاء ملفات شخصية للشركات الناشئة
إذا لم يكن ذلك ممكنًا، سيتجاوز رمز بدء التشغيل ملفات DEX التالية، التي يتم ملؤها بعد ذلك بفئات وطرق أخرى. راجِع مقالة تأكيد تحسين ملفات تعريف بدء التشغيل لمعرفة ما إذا كان ذلك يحدث، والإجراءات التي يمكنك اتّخاذها لتقليل حجم بدء تشغيل تطبيقك وتسريعه.لتحديد رحلات المستخدمين التي يجب تغطيتها عند إنشاء ملف شخصي لشركة ناشئة، ضع في اعتبارك المكان الذي يبدأ فيه معظم المستخدمين استخدام التطبيق. ويحدث ذلك عادةً من مشغّل التطبيقات وبعد تسجيل الدخول. وهذه هي أيضًا أبسط رحلة للملف الشخصي الأساسي.
بعد تغطية حالة الاستخدام الأولى، اتّبِع مسار الإحالة الناجحة للمستخدم عند بدء تشغيل التطبيق. في كثير من الحالات، تتّبع مسارات إحالة بدء تشغيل التطبيق القائمة التالية:
- نشاط المشغّل الرئيسي
- الإشعارات التي تؤدي إلى بدء تشغيل التطبيق
- أنشطة المشغّل الاختيارية
يمكنك العمل على هذه القائمة من الأعلى والتوقّف قبل أن يصبح الملف classes.dex ممتلئًا. لتغطية المزيد من رحلات المستخدمين بعد ذلك، يمكنك نقل الرمز البرمجي خارج مسار بدء التشغيل وإضافة المزيد من رحلات المستخدمين. لنقل الرمز البرمجي خارج مسار بدء التشغيل، افحص بيانات تتبُّع Perfetto أثناء بدء تشغيل التطبيق وابحث عن العمليات التي تستغرق وقتًا طويلاً. يمكنك أيضًا استخدام Macrobenchmark مع تفعيل تتبُّع الدوال البرمجية للحصول على عرض كامل وقابل للتشغيل التلقائي لعمليات استدعاء الدوال البرمجية أثناء بدء تشغيل التطبيق.
أفلام مُقترَحة لك
- ملاحظة: يتم عرض نص الرابط عندما تكون JavaScript غير مفعّلة
- إنشاء ملفات Baseline Profiles {:#creating-profile-rules}
- ملفات Baseline Profiles {:#baseline-profiles}
- كتابة اختبار أداء صغير