إنشاء أداء على نظام التشغيل Wear OS
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
يُعدّ الأداء على Wear OS من الاعتبارات الأساسية عند تطوير التطبيقات، لأنّ العديد من أجهزة Wear OS تتضمّن موارد محدودة لوحدة المعالجة المركزية (CPU) ووحدة معالجة الرسومات (GPU) مقارنةً بالأجهزة الجوّالة الأكبر حجمًا.
يمكنك الاستفادة من معلوماتك حول Jetpack Compose لإعداد تطبيقك وتطويره بهدف تحسين الأداء باستخدام Compose for Wear OS، لأنّ العديد من التقنيات متشابهة. ومع ذلك، من المهم معرفة كيفية اختبار أداء تطبيقك على Wear OS.
لفهم مفاهيم الأداء بشكل أفضل، شاهِد الفيديوَين
أفضل الممارسات المتعلّقة بالأداء و
إنشاء تطبيقات جميلة وفعّالة من حيث استهلاك الطاقة لنظام التشغيل Wear OS على YouTube.
تقنيات لتحسين الأداء
لفهم أداء تطبيقك بدقة، جرِّب تشغيله في وضع الإصدار. يُعدّ وضع تصحيح الأخطاء مفيدًا في رصد الكثير من المشاكل، ولكنّه يفرض تكلفة كبيرة على الأداء، وقد يصعّب رصد مشاكل أخرى في الرمز البرمجي قد تؤثر سلبًا في الأداء. بالإضافة إلى ذلك، لا يستخدم وضع تصحيح الأخطاء ملفات تعريف خط الأساس، ما قد يؤدي إلى تدهور الأداء بشكل أكبر. عليك أيضًا استخدام برنامج التحويل البرمجي R8 لتصغير تطبيقك وتحسينه. لمزيد من المعلومات حول إزالة الموارد غير المستخدَمة، راجِع مقالة تصغير حجم الموارد.
تعرَّف على أدوات "استوديو Android"
بما في ذلك "التعديل المباشر" و"معاينة العناصر القابلة للإنشاء" ومحاكي Wear OS. ويمكن أن يساعد ذلك في تقليل الوقت المستغرَق في تصحيح أخطاء تطبيقك على ساعة، ما قد يحسّن إنتاجيتك. يتضمّن "استوديو Android" جهازًا افتراضيًا لساعة. اختبِر تطبيقك باستخدام ميزة "معاينات Compose" و"التعديل المباشر" إلى أن يعمل تطبيقك إلى حد كبير على النحو المتوقّع، ثم اختبِره على جهاز للحصول على انعكاس دقيق لأداء تطبيقك.
استخدِم مكتبة JankStats لتتبُّع مشاكل الأداء وتحليلها في تطبيقاتك. للاطّلاع على مثال، راجِع
نموذج JankStats على GitHub.
استخدام ملف تعريف أساسي
استخدام ملف أساسي لتحسين أداء تطبيقك من خلال تحديد الفئات والطرق اللازمة في رحلات المستخدمين المهمة للحصول على دليل مفصّل حول هذا الموضوع، راجِع ملفات تعريف خط الأساس. تتضمّن كل مكتبة من مكتبات Compose for Wear OS قواعد الملف الشخصي الخاصة بها. عندما يعتمد تطبيقك على مكتبة، يتم تلقائيًا دمج قواعد ملف تعريف المكتبة وتوزيعها مع حِزمة APK الخاصة بتطبيقك، كما يتم تجميعها مسبقًا على الجهاز. ويمكن أن يؤدي ذلك إلى تقليل أوقات بدء التشغيل، وتقليل اللقطات غير الواضحة، وتحسين الأداء بشكل عام.
إذا اخترت تحديد ملفك الشخصي لتطبيق معيّن، تأكَّد من أنّه يحسّن الأداء من خلال كتابة اختبارات Macrobenchmark.
للاطّلاع على مثال، راجِع
نماذج الأداء على GitHub.
أوامر ملفات التعريف الأساسية
هناك بعض الأوامر المفيدة التي يمكنك استخدامها للمساعدة في العمل مع ملفات تعريف خط الأساس. أولاً، حدِّد حالة ملفك الشخصي من خلال تنفيذ ما يلي:
adb shell dumpsys package dexopt | grep -A 1 $PACKAGE_NAME
إذا لم تكن الحالة status=speed-profile
، يعني ذلك أنّه لم يتم تطبيق القواعد بعد لتحسين التطبيق.
يتم تطبيق قواعد الملف الشخصي في ميزة "إنشاء" على Wear OS باستخدام مهمة تعمل في الخلفية
عندما يكون الجهاز قيد الشحن وفي وضع الخمول. يمكنك تشغيل هذه العملية يدويًا عن طريق تنفيذ الأمر التالي بعد تشغيل التطبيق وانقضاء وقت كافٍ للسماح لأداة تثبيت الملف الشخصي ببدء تشغيل الملف الشخصي في الخلفية. يستغرق ذلك عادةً حوالي 40 ثانية.
adb shell cmd package bg-dexopt-job
يمكنك بعد ذلك إعادة تنفيذ الأمر السابق للتأكّد من أنّ الحالة أصبحت
speed-profile
.
في الحالات التي يتم فيها إجراء التحسين عند التثبيت، راجِع التحميل الجانبي لملف التعريف الأساسي.
اقتراحات مخصصة لك
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-08-27 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","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"]],["تاريخ التعديل الأخير: 2025-08-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["Performance on Wear OS is an essential app consideration, as many Wear OS\ndevices have limited CPU and GPU resources compared to larger mobile devices.\nYou can use your knowledge from [Jetpack Compose](/jetpack/compose/performance) to configure and develop\nyour app to improve performance with Compose for Wear OS, as many of the\ntechniques are similar. However, it's important to understand how to test your\napp's performance on Wear OS.\n\nTo better understand performance concepts, watch\n[Performance best practices](https://www.youtube.com/watch?v=EOQB8PTLkpY) and\n[Create beautiful, power efficient apps for Wear OS](https://www.youtube.com/watch?v=jpUVamtoKOs&t=1052s) on YouTube.\n\nTechniques to improve performance\n\nTo accurately understand your app's performance, try running your app in\n[release mode](/studio/run#changing-variant). Debug mode is useful for spotting lots of problems, but it\nimposes a significant performance cost, and can make it hard to spot other code\nissues that might be hurting performance. In addition, debug mode does not use\nbaseline profiles, which can further deteriorate performance. You should also\nuse the [R8 compiler](/studio/build/shrink-code) to shrink and optimize your app. For more information\non removing unused resources, see [Shrink your resources](/studio/build/shrink-code#shrink-resources).\n\nFamiliarize yourself with [Android Studio tools](/jetpack/compose/tooling)\nincluding Live Edit, Composable Preview, and Wear OS emulator. This can reduce\nthe amount of time spent debugging your app on a watch, which can improve your\nproductivity. Android Studio ships with a watch AVD. Test with Compose Previews\nand Live Edit until your app is largely working as expected, then test on a\ndevice for an accurate reflection of your app's performance.\n\nUse the [JankStats library](/topic/performance/jankstats) to track and analyze\nperformance problems in your applications. For an example, see the\n[JankStats sample](https://github.com/android/performance-samples/tree/main/JankStatsSample) on GitHub.\n\nUse a baseline profile\n\n[Use a baseline profile](/jetpack/compose/performance#use-baseline) to improve your app's performance by defining\nclasses and methods needed on critical user journeys. For an in depth guide on\nthis topic, see [Baseline profiles](/topic/performance/baselineprofiles). Each\nCompose for Wear OS library ships with its own profile rules. When your app\ndepends on a library, the library profile rules are automatically merged and\ndistributed with your app's APK and are compiled ahead of time on device. This\ncan reduce start-up times, cut down janky frames, and otherwise improve\nperformance.\n\nIf you choose to define your own profile for an app, verify that it does\nimprove performance by writing Macrobenchmark tests.\nFor an example, see\n[Performance samples](https://github.com/android/performance-samples/blob/main/MacrobenchmarkSample/baseBenchmarks/src/main/java/com/example/benchmark/macro/base/startup/StartupBenchmark.kt) on GitHub.\n\nBaseline profile commands\n\nThere are some useful commands you can use to help working with baseline\nprofiles. First, determine the status of your profile by running the\nfollowing: \n\n adb shell dumpsys package dexopt | grep -A 1 $PACKAGE_NAME\n\nIf the status is not `status=speed-profile`, the rules have not yet been applied\nto optimize the app.\n\nCompose for Wear OS profile rules are applied using a background job which runs\nwhen the device is charged and idle. You can manually trigger this by running\nthe following command after the app has been launched and enough time has passed\nto allow the profile-installer to bootstrap the profile in the background. This\ntypically takes around 40 seconds. \n\n adb shell cmd package bg-dexopt-job\n\nYou can then re-run the previous command to check that the status is now\n`speed-profile`.\n\nFor situations when the optimisation is performed at install, see\n[Sideload the baseline profile](/topic/performance/baselineprofiles#measuring-baseline).\n\nRecommended for you\n\n- Note: link text is displayed when JavaScript is off\n- [Overview of measuring app performance](/topic/performance/measuring-performance)"]]