اختبارات الأداء
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
يمكن تقسيم أداء وقت تشغيل التطبيق إلى الاختبار المحلي والاختبار الميداني.
يُرجى العلم أنّ كلا المجالين يقدّمان نتائج ومقاييس مختلفة. طالما أنّ النتائج حاسمة بحد ذاتها، يكون هذا التباين
مقبولًا.
الاختبار الميداني
يساعدك الاختبار الميداني في فهم أداء التطبيق مع المستخدمين الفعليين في ظل ظروف طبيعية. وهو مجال مهمّ ويساعد في فهم مستوى أداء
التطبيق في المجال. يمكنك استخدام أدوات مثل مؤشرات الأداء الأساسية في Google Play ومراقبة الأداء في Firebase للحصول على مقاييس ميدانية من المستهلكين.
يمكنك استخدام مكتبة AndroidX Tracing لإضافة نقاط تتبُّع تهدف إلى
تقديم المزيد من السياق والإحصاءات لمقاييس الحقول.
يمكنك أيضًا استخدام ApplicationStartInfo
وApplicationExitInfo
للحصول على
معلومات أكثر تفصيلاً حول بدء المستخدمين للتطبيق ومغادرتهم له.
تتيح مكتبة AndroidX JankStats إمكانية تجميع اللقطات البطيئة والمسقطة والإبلاغ عنها لمزيد من التحليل.
الاختبار على الجهاز
نقدّم مكتبة قياس الأداء من أجل اختبار أداء وقت تشغيل أحد التطبيقات محليًا. وهي مقسمة إلى مكتبة الاختبارات المرجعية الكبرى التي يمكن استخدامها
لاختبار أداء مسارات المستخدمين بالكامل ومكتبة الاختبارات المرجعية الصغرى
التي تُستخدَم لتحليل أداء حلقة التشغيل المكثّف لتطبيق أو مكتبة.
يجب إجراء جميع اختبارات الأداء على جهاز فعلي. وهذه هي الطريقة الوحيدة لضمان
أنّ الأداء الذي تقيسه هو الأداء الفعلي
الذي يحدث على أحد الأجهزة. ستؤدي اختبارات أداء وقت التشغيل إلى نتائج مختلفة
حسب الجهاز الذي يتم تشغيلها عليه ومدى انشغال الجهاز.
يمكن أن يتراجع أداء التطبيق. لتجنُّب حدوث تراجعات، من المهم إجراء
اختبارات الأداء بشكل متكرر. في السيناريو المثالي، يتم قياس أداء التطبيق كل
مر تتم فيه إضافة ميزة جديدة أو دمج رمز في الفرع الرئيسي. إنّ الحد الأدنى من
مراقبة الأداء هو قياس أداء الإصدارات المرشحة والتأكّد مما إذا كان وقت بدء التشغيل وتوقيت عرض اللقطات لا ينخفضان في مسارات المستخدمين الرئيسية.
ننصحك بإجراء اختبارات الأداء كلما أمكن، مثلاً قبل دمج ميزة في الفرع الرئيسي أو في الإصدارات اليومية.
استخدام النتائج
ما زال اختبار الأداء عملية مستمرة. ننصحك بتخزين نتائج اختبارات الأداء بطريقة تتيح مقارنتها بمرور الوقت.
يمكنك استخدام نتائج اختبارات الأداء بعدة طرق.
- تحسين الأداء: استخدام نتائج القياس لتحديد أولوية تحسين الأداء
- تجنب الانحدار - التأكد من عدم حدوث أي تراجع في أداء الإصدارات الجديدة
- مراقبة الإنتاج: معرفة ما إذا كانت هناك مشاكل لا تظهر لك أثناء التطوير
لمزيد من المعلومات عن اختبار أداء وقت تشغيل Android، اطّلِع على
دليل أداء التطبيقات.
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-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-07-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["# Performance tests\n\nApp runtime performance can be divided into local testing and field testing.\nKeep in mind that both of these areas provide different results and\nmetrics. As long as the results are in itself conclusive, that divergence is\nacceptable.\n\nField testing\n-------------\n\nField testing helps you to understand how an app performs with real users under\nreal world conditions. It is an important area and helps to understand how an\napp performs in the field. You can use tools such as [Google Play Vitals](/topic/performance/vitals) and\n[Firebase Performance Monitoring](https://firebase.google.com/docs/perf-mon) to get field metrics from\nusers.\n\nYou can use the [AndroidX Tracing](/jetpack/androidx/releases/tracing) library to add trace points which\nprovides more context and insights to field metrics.\n\nYou can also use [`ApplicationStartInfo`](/reference/android/app/ApplicationStartInfo) and [`ApplicationExitInfo`](/reference/android/app/ApplicationExitInfo) to\nget more detailed information on application start and exit from users.\n\nThe [AndroidX JankStats](/topic/performance/jankstats) library enables aggregating and reporting of slow\nand dropped frames for further analysis.\n\nLocal testing\n-------------\n\nTo locally test the runtime performance of an app we provide the benchmarking\nlibrary. It is divided into the [macrobenchmark](/topic/performance/benchmarking/macrobenchmark-overview) library, which can be used\nto test the performance of entire user flows and the [microbenchmark](/topic/performance/benchmarking/microbenchmark-overview)\nlibrary, which is used to analyze hot loop performance of an application or\nlibrary.\n\nAll performance tests should run on a physical device. This is the only way to\nensure that the performance you're measuring is the actual performance\noccurring on a device. Runtime performance tests will produce different results\ndepending on the device they run on and how busy the device is.\n\nApplication performance can regress. To avoid regressions it's important to run\nperformance tests frequently. In an ideal scenario an app is benchmarked every\ntime a new feature is added or code is merged into the main branch. The bare\nminimum of performance monitoring is to benchmark release candidates and verify\nthat startup time and frame timing does not regress for major user journeys.\nWe recommend you run benchmarks whenever possible, such as before merging a\nfeature to the main branch or for nightly builds.\n\nUse the results\n---------------\n\nPerformance testing is an ongoing process. We recommend that you store results\nof performance tests in a way that they can be compared over time.\n\nYou can use results of performance tests in several ways.\n\n- Performance improvement - Use measurement results to prioritize performance improvement\n- Regression avoidance - Ensure there are no performance regressions with new releases\n- Production monitoring - Understand whether there are issues you're not seeing during development\n\nTo learn more about Android runtime performance testing, see the\n[guide to app performance](/performance)."]]