إنشاء ملفات شخصية أساسية
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
تُعدّ "الملفات الشخصية للمرجع" ضرورية لتحسين أداء Jetpack Compose إلى أقصى حد.
يساعد التجميع المُسبَق لرحلات المستخدم الأساسية في ضمان عرض واجهة مستخدم Compose بسلاسة.
يمكنك إنشاء ملفات شخصية تلقائيًا لكل إصدار من التطبيق باستخدام مكتبة Jetpack
Macrobenchmark وBaselineProfileRule. ننصحك باستخدام الإصدار com.android.tools.build:gradle:8.0.0 أو إصدار أحدث للاستفادة من تحسينات عملية الإنشاء عند استخدام "الملفات الأساسية".
في ما يلي الخطوات العامة لإنشاء ملف أداء أساسي جديد:
إعداد وحدة "الملف الشخصي الأساسي"
حدِّد اختبار JUnit الذي يساعد في إنشاء "الملفات الشخصية للمرجع".
أضِف رحلات المستخدم الأساسية (CUJ) التي تريد تحسينها.
أنشئ ملف Baseline Profile.
بعد إنشاء ملف الأداء الأساسي، يمكنك إجراء قياس أداء له باستخدام جهاز فعلي
لقياس التحسينات في السرعة.
إنشاء ملف مرجعي جديد باستخدام الإصدار 8.2 من "المكوّن الإضافي لنظام Gradle المتوافق مع Android" أو إصدار أحدث
أسهل طريقة لإنشاء ملف شخصي أساسي جديد هي استخدام نموذج وحدة الملف الشخصي الأساسي، وهو متاح بدءًا من الإصدار Iguana من "استوديو Android" والإصدار 8.2 من "مكوّن Gradle الإضافي لنظام التشغيل Android" (AGP).
يعمل نموذج وحدة Baseline Profile Generator في "استوديو Android" على إنشاء وحدة جديدة بشكل آلي لإنشاء
ملفات Baseline Profiles
وتقييمها. يؤدي تشغيل النموذج إلى إنشاء معظم إعدادات التصميم
النموذجية، وإنشاء ملف الأداء الأساسي، ورمز التحقّق. ينشئ النموذج رمزًا لإنشاء "الملفات الشخصية للمرجع" وقياس أدائها من أجل قياس وقت بدء تشغيل التطبيق.
إعداد وحدة "الملف الشخصي الأساسي"
لتشغيل نموذج وحدة "الملف الشخصي الأساسي"، اتّبِع الخطوات التالية:
انقر على ملف (File) > جديد (New) > وحدة جديدة (New Module).
اختَر نموذج Baseline Profile Generator في لوحة Templates
واضبطه:
الشكل 1: نموذج وحدة "أداة إنشاء الملفات الشخصية الأساسية"
الحقول في النموذج هي كالتالي:
التطبيق المستهدَف: التطبيق الذي يتم إنشاء "الملف الشخصي الأساسي" له عندما يكون لديك وحدة تطبيق واحدة فقط في مشروعك،
سيكون هناك عنصر واحد فقط في هذه القائمة.
اسم الوحدة: الاسم الذي تريده لوحدة "الملف الشخصي الأساسي" التي يتم إنشاؤها.
اسم الحزمة: اسم الحزمة الذي تريده لوحدة "الملف الشخصي الأساسي"
اللغة: يمكنك اختيار ما إذا كنت تريد أن يكون الرمز الذي تم إنشاؤه بلغة Kotlin أو Java.
لغة إعدادات التصميم: ما إذا كنت تريد استخدام Kotlin Script (KTS) أو Groovy في نصوص إعدادات التصميم البرمجية.
استخدام جهاز مُدار من Gradle: يشير إلى ما إذا كنت تستخدم أجهزة مُدارة من Gradle لاختبار تطبيقك.
انقر على إنهاء (Finish) وسيتم إنشاء الوحدة الجديدة. إذا كنت تستخدم التحكم في المصدر، فقد يُطلب منك إضافة ملفات الوحدة التي تم إنشاؤها حديثًا إلى التحكم في المصدر.
تحديد منشئ "الملف الشخصي للمرجع"
تحتوي الوحدة التي تم إنشاؤها حديثًا على اختبارات لإنشاء "الملف الشخصي الأساسي"
وتقييمه واختبار بدء تشغيل التطبيق الأساسي فقط. ننصحك بتعزيز هذه الاختبارات لتشمل رحلات المستخدمين الأساسية وسير العمل المتقدّم لبدء التشغيل. تأكَّد من أنّ أي اختبارات
تتعلّق ببدء تشغيل التطبيق موجودة في مجموعة rule مع ضبط includeInStartupProfile
على true. وعلى العكس، لضمان الأداء الأمثل، تأكَّد من أنّ أي اختبارات لا
تتعلّق ببدء تشغيل التطبيق غير مضمَّنة في ملف بدء التشغيل. يتم استخدام تحسينات بدء تشغيل التطبيق لتحديد جزء خاص من "الملف الشخصي للمرجع" يُسمى ملف تعريف بدء التشغيل.
ويساعد ذلك في تسهيل الصيانة إذا قمت باستخراج رحلات المستخدمين المهمة هذه خارج ملف الأداء الأساسي الذي تم إنشاؤه ورمز قياس الأداء بحيث يمكن استخدامها لكليهما. هذا يعني أن التغييرات في رحلات المستخدم الحرجة يتم استخدامها باستمرار.
إنشاء "الملف الشخصي للمرجع" وتثبيته
يضيف نموذج وحدة "الملف الشخصي الأساسي" إعدادات تشغيل جديدة لإنشاء
"الملف الشخصي الأساسي". إذا كنت تستخدم نكهات المنتج، ينشئ استوديو Android إعدادات تشغيل متعددة لتتمكّن من إنشاء ملفات أداء أساسية منفصلة لكل نكهة.
الشكل 2 يؤدي تشغيل هذه الإعدادات إلى إنشاء ملف أداء أساسي.
عند اكتمال إعدادات تشغيل إنشاء ملف أداء أساسي، يتم نسخ ملف الأداء الأساسي الذي تم إنشاؤه إلى ملف src/variant/generated/baselineProfiles/baseline-prof.txt في الوحدة التي يتم تحليلها. تكون خيارات المنتج إما نوع بنية الإصدار أو تنويعة التصميم التي تتضمّن نوع بنية الإصدار.
يتم إنشاء ملف Baseline Profile في الأصل في build/outputs. يتم تحديد المسار الكامل من خلال صيغة أو إصدار التطبيق الذي يتم تحليله وما إذا كنت تستخدم جهازًا مُدارًا من Gradle أو جهازًا متصلاً لإجراء التحليل. إذا
استخدمت الأسماء المستخدَمة في الرمز وإعدادات التصميم التي تم إنشاؤها من خلال
النموذج، سيتم إنشاء ملف "التحسين الأساسي للأداء" في
ملف
build/outputs/managed_device_android_test_additional_output/nonminifiedrelease/pixel6Api31/BaselineProfileGenerator_generate-baseline-prof.txt. لن تحتاج على الأرجح إلى التفاعل مع هذه النسخة من ملف Baseline Profile الذي تم إنشاؤه مباشرةً إلا إذا كنت تنسخه يدويًا إلى الوحدات المستهدَفة (لا يُنصح بذلك).
إنشاء ملف شخصي أساسي جديد باستخدام الإصدار 8.1 من "المكوّن الإضافي لنظام Gradle المتوافق مع Android"
إذا لم تتمكّن من استخدام نموذج وحدة "الملف الشخصي للمرجع"، استخدِم نموذج وحدة Macrobenchmark والمكوّن الإضافي Gradle لـ "الملف الشخصي للمرجع" لإنشاء ملف شخصي جديد للمرجع. ننصحك باستخدام هذه الأدوات بدءًا من الإصدار Android Studio Giraffe والإصدار 8.1 من "مكوّن Android الإضافي لبرنامج Gradle".
في ما يلي خطوات إنشاء ملف شخصي أساسي جديد باستخدام نموذج وحدة Macrobenchmark والمكوّن الإضافي Baseline Profile Gradle:
يمكن أن يحتوي ملف الإنشاء على تفاعلات مع تطبيقك تتجاوز بدء تشغيل التطبيق.
يتيح لك ذلك تحسين أداء وقت التشغيل لتطبيقك، مثل
قوائم الانتقال وتشغيل الصور المتحركة والتنقّل داخل Activity.
اطّلِع على أمثلة أخرى للاختبارات التي تستخدم @BaselineProfileRule لتحسين
رحلات المستخدم الأساسية.
أضِف المكوّن الإضافي لنظام Gradle المتوافق مع "الملف الشخصي الأساسي"
(libs.plugins.androidx.baselineprofile). يسهّل المكوّن الإضافي
إنشاء "الملفات الشخصية الأساسية" والحفاظ عليها في المستقبل.
لإنشاء ملف الأداء الأساسي، نفِّذ مهام Gradle :app:generateBaselineProfile أو :app:generateVariantBaselineProfile في الوحدة الطرفية.
شغِّل أداة الإنشاء كاختبار لقياس حالة التطبيق على جهاز فعلي مزوّد بإذن الوصول إلى الجذر أو محاكي أو جهاز مُدار من Gradle. إذا كنت تستخدم جهازًا مُدارًا من Gradle،
اضبط aosp على systemImageSource، لأنّك بحاجة إلى إذن الوصول إلى الجذر
لأداة إنشاء ملفات التعريف الأساسية.
في نهاية مهمة الإنشاء، يتم نسخ "الملف الشخصي الأساسي" إلى
app/src//generated/baselineProfiles.
إنشاء ملف شخصي أساسي جديد بدون نماذج
ننصحك بإنشاء الملف الشخصي للمرجع باستخدام نموذج وحدة الملف الشخصي للمرجع في استوديو Android (الخيار المفضّل) أو نموذج Macrobenchmark، ولكن يمكنك أيضًا استخدام المكوّن الإضافي Gradle للملف الشخصي للمرجع بمفرده. لمزيد من المعلومات حول المكوّن الإضافي Baseline Profile Gradle، يُرجى الاطّلاع على مقالة ضبط إنشاء ملفات Baseline.
في ما يلي كيفية إنشاء "ملف مرجعي" باستخدام المكوّن الإضافي Baseline Profile Gradle
مباشرةً:
أنشئ وحدة com.android.test جديدة، على سبيل المثال،
:baseline-profile.
اضبط ملف build.gradle.kts لـ :baseline-profile:
طبِّق المكوّن الإضافي androidx.baselineprofile.
تأكَّد من أنّ targetProjectPath يشير إلى وحدة :app.
يمكنك اختياريًا إضافة جهاز مُدار من Gradle. في المثال التالي،
يتم استخدام pixel6Api31. في حال عدم تحديد ذلك، يستخدم المكوّن الإضافي
جهازًا متصلاً، سواء كان محاكيًا أو ماديًا.
طبِّق الإعدادات التي تريدها، كما هو موضَّح في المثال التالي.
Kotlin
plugins{id("com.android.test")id("androidx.baselineprofile")}android{defaultConfig{...}// Point to the app module, the module that you're generating the Baseline Profile for.targetProjectPath=":app"// Configure a GMD (optional).testOptions.managedDevices.devices{pixel6Api31(com.android.build.api.dsl.ManagedVirtualDevice){device="Pixel 6"apiLevel=31systemImageSource="aosp"}}}dependencies{...}// Baseline Profile Gradle plugin configuration. Everything is optional. This// example uses the GMD added earlier and disables connected devices.baselineProfile{// Specifies the GMDs to run the tests on. The default is none.managedDevices+="pixel6Api31"// Enables using connected devices to generate profiles. The default is// `true`. When using connected devices, they must be rooted or API 33 and// higher.useConnectedDevices=false}
أنيق
plugins{id'com.android.test'id'androidx.baselineprofile'}android{defaultConfig{...}// Point to the app module, the module that you're generating the Baseline Profile for.targetProjectPath':app'// Configure a GMD (optional).testOptions.managedDevices.devices{pixel6Api31(com.android.build.api.dsl.ManagedVirtualDevice){device'Pixel 6'apiLevel31systemImageSource'aosp'}}}dependencies{...}// Baseline Profile Gradle plugin configuration. Everything is optional. This// example uses the GMD added earlier and disables connected devices.baselineProfile{// Specifies the GMDs to run the tests on. The default is none.managedDevices['pixel6Api31']// Enables using connected devices to generate profiles. The default is// `true`. When using connected devices, they must be rooted or API 33 and// higher.useConnectedDevicesfalse}
أنشئ اختبارًا لملف الأداء الأساسي في وحدة اختبار :baseline-profile. المثال التالي هو اختبار ينشئ ملفًا شخصيًا أساسيًا لبدء تشغيل التطبيق.
عدِّل ملف build.gradle.kts في وحدة التطبيق، على سبيل المثال :app.
طبِّق المكوّن الإضافي androidx.baselineprofile.
أضِف اعتمادية baselineProfile إلى وحدة :baseline-profile.
Kotlin
plugins{id("com.android.application")id("androidx.baselineprofile")}android{// There are no changes to the `android` block....}dependencies{...// Add a `baselineProfile` dependency on the `:baseline-profile` module.baselineProfile(project(":baseline-profile"))}
أنيق
plugins{id'com.android.application'id'androidx.baselineprofile'}android{// No changes to the `android` block....}dependencies{...// Add a `baselineProfile` dependency on the `:baseline-profile` module.baselineProfile':baseline-profile'}
أنشِئ الملف الشخصي من خلال تنفيذ مهام Gradle :app:generateBaselineProfile
أو :app:generateVariantBaselineProfile.
في نهاية مهمة الإنشاء، يتم نسخ "الملف الشخصي الأساسي" إلى
app/src/variant/generated/baselineProfiles.
قياس أداء "الملف الشخصي للمرجع"
لقياس أداء "الملف الشخصي الأساسي"، أنشِئ إعدادات جديدة لـ "تشغيل اختبار Android المزوّد بأدوات" من إجراء الهامش الذي ينفّذ مقاييس الأداء المحدّدة في ملف StartupBenchmarks.kt. لمزيد من المعلومات حول اختبار قياس الأداء، يُرجى الاطّلاع على
إنشاء فئة Macrobenchmark وقياس أداء ملفات Baseline باستخدام مكتبة Macrobenchmark.
الشكل 3. إجراء اختبارات Android من خلال إجراء
الهامش
عند تشغيل هذا الإجراء في Android Studio، يتضمّن ناتج عملية الإنشاء تفاصيل
تحسينات السرعة التي يوفّرها "الملف الشخصي الأساسي":
StartupBenchmarks_startupCompilationBaselineProfiles
timeToInitialDisplayMs min 161.8, median 178.9, max 194.6
StartupBenchmarks_startupCompilationNone
timeToInitialDisplayMs min 184.7, median 196.9, max 202.9
التقاط جميع المسارات البرمجية المطلوبة
في ما يلي المقياسان الرئيسيان لقياس مُدد بدء تشغيل التطبيق:
الوقت المستغرَق للعرض الكامل (TTFD): هو الوقت المستغرَق للعرض الأولي (TTID) بالإضافة إلى الوقت المستغرَق لعرض المحتوى الذي يتم تحميله بشكل غير متزامن بعد عرض الإطار الأولي.
يتم تسجيل مقياس TTFD بعد استدعاء الطريقة reportFullyDrawn في ComponentActivity. في حال عدم استدعاء reportFullyDrawn، يتم تسجيل وقت التفاعل الأولي بدلاً من ذلك. قد تحتاج إلى تأخير وقت استدعاء reportFullyDrawn إلى ما بعد اكتمال التحميل غير المتزامن. على سبيل المثال، إذا كانت واجهة المستخدم تحتوي على قائمة تحميل كسول ديناميكية، قد تتم تعبئة القائمة من خلال مهمة في الخلفية تكتمل بعد رسم القائمة لأول مرة، وبالتالي بعد وضع علامة على واجهة المستخدم بأنّها مرسومة بالكامل. في هذه الحالات، لا يتم تضمين الرمز الذي يتم تشغيله بعد وصول واجهة المستخدم إلى حالة الرسم الكامل في "الملف الشخصي الأساسي".
لتضمين قائمة التعبئة كجزء من "الملف الشخصي الأساسي"، يمكنك الحصول على
FullyDrawnReporter باستخدام getFullyDrawnReporter وإضافة أداة إعداد تقارير
إليها في رمز تطبيقك. Release the reporter once the background task finishes
populating the list. لا يستدعي FullyDrawnReporter طريقة reportFullyDrawn إلى أن يتم إصدار جميع التقارير. من خلال إجراء ذلك، يتضمّن "الملف الشخصي للمرجع" المسارات البرمجية المطلوبة لتعبئة القائمة. لا يؤدي ذلك إلى تغيير سلوك التطبيق بالنسبة إلى المستخدم، ولكنه يتيح لملف Baseline Profile تضمين جميع المسارات البرمجية اللازمة.
للإشارة إلى حالة الرسم الكامل، استخدِم واجهات برمجة التطبيقات التالية في Compose:
تشير السمة ReportDrawn إلى أنّ الدالة المركّبة جاهزة فورًا
للتفاعل.
تتطلّب الدالة ReportDrawnWhen استخدام دالة شرطية، مثل list.count > 0، للإشارة إلى أنّ الدالة المركّبة جاهزة للتفاعل.
تستخدم الدالة ReportDrawnAfter طريقة تعليق تشير عند اكتمالها إلى أنّ الدالة المركّبة جاهزة للتفاعل.
التطبيقات المقترَحة لك
ملاحظة: يتم عرض نص الرابط عندما يكون JavaScript غير مفعَّل
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2026-10-21 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2026-10-21 (حسب التوقيت العالمي المتفَّق عليه)"],[],[]]