إرشادات الجودة الأساسية للتطبيقات

نجاح تطبيقك على المدى الطويل من حيث عدد عمليات التثبيت ومراجعات المستخدمين والتفاعل والاحتفاظ بالمستخدمين.

لتقديم أساس متين لتطبيق عالي الجودة، اتّبِع إرشادات الجودة الأساسية للتطبيق.

تحدّد الإرشادات الحدّ الأدنى من الجودة الذي يجب أن تستوفيه جميع التطبيقات.

جودة التطبيق التكيُّفية

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

اتّبِع إرشادات جودة التطبيقات التكيُّفية، بالإضافة إلى إرشادات الجودة الأساسية للتطبيقات، من أجل:

  • إنشاء تطبيقات محسَّنة لجميع أشكال الأجهزة وأحجام الشاشات
  • الحصول على ترتيب أعلى لتطبيقاتك في بطاقات بيانات Google Play ونتائج البحث
  • اكتساب المزيد من المستخدمين وزيادة معدّل الحفاظ على المستخدمين

الإرشادات

تساعدك الإرشادات الأساسية التالية في إنشاء تطبيق أساسي عالي الجودة.

تجربة المستخدم

يجب أن يوفّر تطبيقك أنماط التفاعل والتصاميم المرئية الاعتيادية في Android لتقديم تجربة مستخدم سلسة وسهلة الاستخدام.

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

رقم التعريف الاختبارات الوصف
سهولة الاستخدام
سهولة الاستخدام:تجربة المستخدم T-Usability:Core,
T-SD-Card
يوفّر التطبيق تجربة مستخدم متسقة لجميع حالات استخدام التطبيق على جميع أشكال الأجهزة.
Usability:Switcher T-Usability:Switcher،
T-SD-Card
ينتقل التطبيق إلى الخلفية عند التبديل إلى تطبيق آخر. ويعود التطبيق إلى المقدّمة عند إعادة تنشيطه من مبدّل التطبيقات التطبيقات الحديثة.
سهولة الاستخدام:النوم T-Usability:Sleep،
T-SD-Card
عندما يكون التطبيق هو التطبيق الذي يظهر في المقدّمة، يتم إيقافه مؤقتًا عندما ينتقل الجهاز إلى وضع السكون ويتم استئنافه عندما يَنشط الجهاز.
سهولة الاستخدام:قفل T-Usability:Lock،
T-SD-Card
عندما يكون التطبيق هو التطبيق الذي يتم استخدامه في المقدّمة، يتم إيقافه مؤقتًا عند قفل الجهاز واستئنافه عند إلغاء قفله.
واجهة المستخدم
UI:Parity T-UI:Transitions

تعرض اتجاهات الشاشة وحالات الطي الميزات والإجراءات نفسها بشكل أساسي وتحافظ على التكافؤ الوظيفي.

واجهة المستخدم:ملء الشاشة T-UI:Transitions

يملأ التطبيق نافذة التطبيق في كلا الاتجاهين ولا تظهر فيه أشرطة سوداء أفقية بسبب تغييرات الضبط، بما في ذلك طي الجهاز وفتحه.

يُسمح بوضع إطار أسود صغير للتعويض عن الاختلافات الطفيفة في شكل الشاشة.

UI:Transitions T-UI:Transitions يتعامل التطبيق مع التحوّلات السريعة بين اتجاهات العرض وطي الجهاز وفتحه بدون حدوث مشاكل في عرض المحتوى وبدون فقدان الحالة.
جودة المرئيات
مرئي:عرض T-Visual:Display

يعرض التطبيق الرسومات والنصوص والصور وعناصر واجهة المستخدم الأخرى بدون تشويه أو تمويه أو تشويش ملحوظ.

  • يستخدم التطبيق متّجهات قابلة للرسم حيثما أمكن ذلك
  • يستخدم التطبيق رسومات عالية الجودة لجميع أحجام الشاشات وأشكال الأجهزة المستهدَفة
  • عدم حدوث تمويه عند حواف القوائم والأزرار وعناصر واجهة المستخدم الأخرى
المرئية:سهولة القراءة T-Visual:سهولة القراءة يضمن التطبيق إمكانية قراءة النصوص وكتل النصوص من خلال حصر طول السطر على 45 إلى 75 حرفًا (بما في ذلك المسافات) لكل لغة من اللغات التي يتيحها التطبيق.
العناصر المرئية:المظاهر T-Visual:Themes يتوافق محتوى التطبيق وكل محتوى الويب الذي يمكن الوصول إليه من خلال التطبيق مع كل من المظهر الفاتح والمظهر الداكن.
التنقل
T-Nav:Back يتوافق التطبيق مع التنقل باستخدام زر الرجوع العادي ولا يستخدم أي طلبات مخصّصة لزر الرجوع على الشاشة.
T-Nav:Back يتوافق التطبيق مع التنقّل بالإيماءات للرجوع والانتقال إلى الشاشة الرئيسية.
T-Nav:State,
T-Nav:Back

يحتفظ التطبيق بحالة المستخدم أو التطبيق عند مغادرة المقدّمة، ويمنع فقدان البيانات غير المقصود بسبب التنقُّل للخلف أو تغييرات الحالة الأخرى.

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

  • عند استئناف التطبيق من مبدّل التطبيقات التطبيقات الحديثة، يعود المستخدم إلى الحالة التي تم فيها استخدام التطبيق آخر مرة.
  • عند استئناف التطبيق بعد أن يستعيد الجهاز نشاطه من وضع السكون (المقفول)، يعود التطبيق إلى الحالة التي تم استخدامه فيها آخر مرة.
  • عند إعادة تشغيل التطبيق من الشاشة الرئيسية أو جميع التطبيقات، يجب أن ينفّذ أحد الإجراءَين التاليَين، وذلك حسب المدة الزمنية التي مرّت منذ آخر استخدام للتطبيق:
    • إذا تم استخدام التطبيق آخر مرة منذ فترة قصيرة (دقائق)، استعِد حالة التطبيق بأقرب ما يمكن إلى حالته السابقة.
    • إذا مرّ وقت أطول منذ آخر استخدام للتطبيق، حاوِل استعادة التطبيق إلى أقرب حالة ممكنة من حالته السابقة أو ابدأ تشغيل التطبيق من شاشته الرئيسية أو أي حالة تلقائية أخرى.
الإشعارات
إشعار:معلومات T-Notify:Info

تقدّم الإشعارات معلومات ذات صلة بتطبيقك.

  • لا تستخدِم الإشعارات للترويج المتبادل أو الإعلان عن منتج آخر، لأنّ ذلك محظور تمامًا في "متجر Play".
  • يتم تحديد قنوات الإشعارات وفقًا لأفضل الممارسات، بدلاً من عرض جميع الإشعارات من قناة واحدة.
  • اختَر أولوية الإشعار الصحيحة.
  • تجميع الإشعارات المتعددة في مجموعة إشعارات واحدة عند الإمكان
  • اضبط مهلات للإشعارات عند الاقتضاء.
  • لا تظهر الإشعارات بشكل دائم إلا إذا كانت مرتبطة بأحداث مستمرة، مثل تشغيل الموسيقى أو إجراء مكالمة هاتفية. لمزيد من المعلومات، يُرجى الاطّلاع على قسم الوظائف.
Notify:Messaging T-Notify:Info

بالنسبة إلى تطبيقات المراسلة وتطبيقات التواصل الاجتماعي والمحادثات:

تسهيل الاستخدام
الوصول:الاستهدافات T-Access:Targets مساحات اللمس لا تقل عن 48 بكسل مستقل الكثافة. اطّلِع على إرشادات التصميم المتعدد الأبعاد بشأن التنسيق وأسلوب الخط.
Access:Contrast T-Access:Contrast

يحافظ نص التطبيق ومحتوى المقدمة على نسب التباين التالية مع خلفية التطبيق:

  • ‫3:1 للنصوص والرسومات الكبيرة
  • ‫4.5:1 للنص الصغير (أقل من 18 نقطة أو أقل من 14 نقطة إذا كان النص غامقًا)

مزيد من المعلومات حول الألوان والتباين

Access:Description T-Access:Description صِف كل عنصر من عناصر واجهة المستخدم، باستثناء TextView، باستخدام contentDescription.

الوظائف

يجب أن ينفّذ تطبيقك السلوك الوظيفي التالي.

رقم التعريف الاختبارات الوصف
الصوت
Audio:Init T-Audio:Init

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

  • بدء تشغيل الصوت
  • توفير مؤشر مرئي يشير إلى أنّ البيانات الصوتية قيد الإعداد
الصوت:التركيز T-Audio:Focus يجب أن يطلب التطبيق التركيز على الصوت عند بدء تشغيل الصوت وأن يتخلّى عن التركيز على الصوت عند إيقاف التشغيل.
الصوت:مقاطعة T-Audio:Interrupt يجب أن يتعامل التطبيق مع طلبات التطبيقات الأخرى للحصول على التركيز الصوتي. على سبيل المثال، قد يخفض تطبيق مستوى صوت التشغيل عندما يشغّل تطبيق آخر كلامًا.
الصوت:الخلفية T-Audio:Background يجب أن يتيح التطبيق التشغيل في الخلفية.
الصوت:إشعار T-Audio:Notification عندما يشغّل التطبيق الصوت في الخلفية، يجب أن يُنشئ التطبيق إشعارًا منمّقًا باستخدام MediaStyle.
الصوت:استئناف T-Audio:Resume إذا كان التطبيق يعمل في الخلفية وتم إيقاف الصوت مؤقتًا، يتم استئناف الصوت عند عودة التطبيق إلى المقدّمة، أو يجب أن يشير التطبيق إلى المستخدم بأنّ التشغيل في حالة إيقاف مؤقت.
الفيديو
الفيديو:نافذة ضمن النافذة T-Video:PiP إذا كان التطبيق يشغّل الفيديو، يجب أن يتيح تشغيل نافذة ضمن النافذة.
الفيديو:الترميز T-Video:Encoding إذا كان التطبيق يرمّز الفيديو، يجب أن يتم ذلك باستخدام معيار ضغط الفيديو HEVC.
المشاركة
المشاركة:ورقة T-Sharing:Sheet يجب أن يستخدم التطبيق ورقة المشاركة في Android عند مشاركة المحتوى. يمكن أن يقترح التطبيق استهدافات غير متاحة للحلول المخصّصة.
خدمات تعمل في الخلفية
الخلفية:الخدمات T-Background:Services

يتجنّب التطبيق تشغيل الخدمات الطويلة بشكل غير ضروري في الخلفية. لضمان تشغيل جهاز المستخدم بسلاسة

ملاحظة: يفرض النظام قيودًا مختلفة على الخدمات التي تعمل في الخلفية.

في ما يلي بعض الاستخدامات السيئة للخدمات التي تعمل في الخلفية:

  • الحفاظ على اتصال الشبكة لتلقّي الإشعارات
  • الحفاظ على اتصال البلوتوث
  • إبقاء نظام تحديد المواقع العالمي (GPS) قيد التشغيل

لمزيد من المعلومات، يُرجى الاطّلاع على نظرة عامة على المهام التي تعمل في الخلفية.

الأداء والثبات

يجب أن يوفّر تطبيقك أفضل أداء وثبات وتوافق وسرعة استجابة.

رقم التعريف الاختبارات الوصف
الأداء
الأداء:بدء التشغيل T- Performance:Startup يتم تحميل التطبيق بسرعة أو تقديم ملاحظات على الشاشة للمستخدم (مؤشر تقدُّم أو رمز مماثل) إذا استغرق تحميل التطبيق أكثر من ثانيتَين.
الأداء:عدد اللقطات في الثانية T-Performance:FPS يعرض التطبيق لقطات كل 16 ملي ثانية (أو أقل) لعرض 60 لقطة على الأقل في الثانية. للحصول على مساعدة بشأن مشاكل العرض، يُرجى الاطّلاع على بطء العرض.
الأداء:صارم T-Performance:Strict عند تفعيل StrictMode (راجِع قسم اختبار StrictMode)، لن تظهر أي ومضات حمراء (تحذيرات الأداء من StrictMode) عند اختبار التطبيق.
الثبات
الثبات:ANR T-Stability:ANR لا يتعطّل التطبيق أو يعطّل سلسلة واجهة المستخدم، ما يؤدي إلى حدوث أخطاء ANR (التطبيق لا يستجيب). استخدِم تقرير الإطلاق التجريبي على Google Play لتحديد المشاكل المحتملة في استقرار التطبيق. بعد النشر، راقِب صفحة مؤشرات Android الحيوية في Google Play Console.
SDK
SDK:Platform T-SDK:Platform يعمل التطبيق على أحدث إصدار علني من منصة Android بدون أن يتعطّل أو يؤثّر بشكل كبير في الوظائف الأساسية.
SDK:Target T-SDK:الأحدث يستهدف التطبيق أحدث إصدار من حزمة تطوير البرامج (SDK) لنظام التشغيل Android اللازم للالتزام بمتطلبات Google Play من خلال ضبط القيمة targetSdk في ملف build.gradle لوحدة التطبيق.
SDK:Compile T-SDK:الأحدث يتم إنشاء التطبيق باستخدام أحدث إصدار من حزمة تطوير البرامج (SDK) لنظام التشغيل Android من خلال ضبط القيمة compileSdk في ملف build.gradle لوحدة التطبيق.
SDK:3P T-SDK:3P,
T-SDK:Non

أن تكون جميع حِزم تطوير البرامج (SDK) من Google أو من جهات خارجية المستخدمة محدّثة. يجب أن تتوفّر للمستخدمين في الوقت المناسب أي تحسينات على حِزم تطوير البرامج هذه تتعلّق بالثبات أو التوافق أو الأمان.

بالنسبة إلى حِزم تطوير البرامج (SDK) من Google، استخدِم حِزم تطوير البرامج (SDK) التي تستند إلى خدمات Google Play عند توفّرها. تتوافق حِزم SDK هذه مع الإصدارات القديمة، وتتلقّى تحديثات تلقائية، وتقلّل من حجم حزمة تطبيقك، وتستفيد بشكل فعّال من الموارد المتوفّرة على الجهاز.

SDK:Non T-SDK:Non لا يستخدم التطبيق واجهات غير متوفرة في حزمة SDK.
SDK:Debug T-SDK:Debug لا يتم تضمين أي مكتبات تصحيح أخطاء في تطبيق الإصدار العلني، لأنّ مكتبات تصحيح الأخطاء المُضمَّنة في التطبيق يمكن أن تتسبّب في حدوث مشاكل في الأداء والأمان.
البطارية
البطارية:إدارة T-Battery:Manage

يتوافق التطبيق بشكل سليم مع ميزتَي إدارة الطاقة قيلولة ووضع الاستعداد للتطبيقات.

يمكن للتطبيقات طلب إعفاء من صيانة الطاقة. يمكنك الاطّلاع على إتاحة حالات الاستخدام الأخرى في التحسين لوضع "القيلولة" و"وضع الاستعداد للتطبيق".

الخصوصية والأمان

يتعامل التطبيق مع بيانات المستخدمين ومعلوماتهم الشخصية بأمان ويوفّر مستويات الأذونات المناسبة.

يجب أن تلتزم التطبيقات المنشورة على "متجر Google Play" أيضًا بسياسات بيانات المستخدمين في Google Play لحماية خصوصية المستخدمين.

رقم التعريف الاختبارات الوصف
الأذونات
الأذونات:Min T-Permissions:Min يطلب التطبيق الحدّ الأدنى المطلق من الأذونات اللازمة لدعم حالة الاستخدام الحالية. بالنسبة إلى بعض الأذونات، مثل الموقع الجغرافي، يستخدم التطبيق مواصفات تقريبية بدلاً من دقيقة إذا أمكن ذلك. تقليل طلبات الأذونات
الأذونات:حسّاسة T-Permissions:Sensitive

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

استنادًا إلى كيفية استخدام تطبيقك للأذونات، قد يكون من الممكن إيجاد طريقة بديلة لتلبية حالة استخدام تطبيقك بدون الاعتماد على الوصول إلى المعلومات الحساسة. على سبيل المثال، بدلاً من طلب أذونات متعلقة بجهات اتصال المستخدم، استخدِم intent ضمني لطلب الوصول.

الأذونات:وقت التشغيل أذونات T:وقت التشغيل يطلب التطبيق أذونات التشغيل عند طلب الوظيفة، وليس أثناء بدء تشغيل التطبيق.
الأذونات:شرح T-Permissions:Explain يوضّح التطبيق بوضوح سبب الحاجة إلى الأذونات.
الأذونات:Degrade T-Permissions:Degrade يتم خفض إصدار التطبيق على نحو ملائم عندما يرفض المستخدمون منح الإذن أو يبطلونه. يجب ألا يمنع التطبيق المستخدم من الوصول إلى المحتوى تمامًا.
البيانات والملفات
البيانات:حسّاسة T-Data:Sensitive,
T-Data:Handling
يتم تخزين جميع البيانات الحسّاسة في وحدة التخزين الداخلية للتطبيق.
البيانات:السجلّ T-Data:Log لا يتم تسجيل أي بيانات شخصية أو حساسة للمستخدمين في سجلّ النظام أو سجلّ خاص بالتطبيق.
البيانات:أرقام التعريف T-Data:IDs لا يستخدم التطبيق أي معرّفات أجهزة غير قابلة لإعادة الضبط، مثل IMEI، لأغراض التعريف.
إثبات الهوية
Identity:Hints T-Identity:Hints يقدّم التطبيق تلميحات لملء البيانات تلقائيًا، مثل بيانات اعتماد الحساب وغيرها من المعلومات الحساسة، مثل معلومات بطاقة الائتمان والعنوان ورقم الهاتف.
Identity:CredMan T-Identity:CredMan يتضمّن التطبيق مدير بيانات الاعتماد على Android لتوفير تجربة تسجيل دخول سلسة تجمع بين مفاتيح المرور والهوية الموحّدة وكلمات المرور.
Identity:Bio T-Identity:Bio يتيح التطبيق المصادقة باستخدام المقاييس الحيوية لحماية المعاملات المالية أو المعلومات الحسّاسة، مثل مستندات المستخدم المهمة.
مكوّنات التطبيق
المكوّنات:تصدير T-Components:Export

يضبط التطبيق السمة android:exported بشكلٍ صريح لجميع الأنشطة والخدمات وأجهزة استقبال البث، وخاصةً موفّري المحتوى.

يتم تصدير مكوّنات التطبيق التي تشارك البيانات مع تطبيقات أخرى أو المكوّنات التي يجب أن تستدعيها تطبيقات أخرى فقط.

المكوّنات:الأذونات المكوّنات المستندة إلى Trusting:الأذونات

تتّبع جميع الأهداف وعمليات البث أفضل الممارسات:

المكوّنات:الحماية T-Components:Protection

تستخدم جميع المكوّنات التي تشارك المحتوى بين التطبيقات android:protectionLevel="signature" من أجل الأذونات المخصّصة. ويشمل ذلك الأنشطة والخدمات وبرامج استقبال البث، وخاصةً موفّري المحتوى.

يجب ألا تعتمد التطبيقات على الوصول إلى قائمة الحِزم المثبَّتة.

اتصال بالشبكات
الشبكة:الزيارات T-Network:Traffic يتم إرسال جميع حركة بيانات الشبكة عبر طبقة المقابس الآمنة (SSL).
الشبكة:Config T-Network:Config يُعلن التطبيق عن إعداد أمان الشبكات.
الشبكة:Play T-Network:Play إذا كان التطبيق يستخدم "خدمات Google Play"، يتم تهيئة موفّر الأمان عند بدء تشغيل التطبيق.
WebViews
WebViews:Config T-WebViews:Config,
T-WebViews:Nav
لا تستخدِم setAllowUniversalAccessFromFileURLs() للوصول إلى المحتوى المحلي. استخدِم WebViewAssetLoader بدلاً من ذلك.
WebViews:JavaScript T-WebViews:JavaScript,
T-WebViews:Nav

لا تستخدم طرق العرض على الويب addJavaScriptInterface() مع المحتوى غير الموثوق به.

على الإصدار 6.0 من نظام التشغيل Android (المستوى 23 من واجهة برمجة التطبيقات والإصدارات الأحدث)، استخدِم قنوات رسائل HTML بدلاً من ذلك.

التنفيذ
التنفيذ:الحِزم T-Execution:Bundles

لا يحمّل التطبيق الرمز ديناميكيًا من خارج حزمة APK الخاصة بالتطبيق. استخدِم مجموعات حزمات تطبيق Android التي تتضمّن عرض الميزات في Play وعرض المواد في Play.

اعتبارًا من أغسطس 2021، أصبح استخدام "مجموعات حزمات تطبيق Android" إلزاميًا لجميع التطبيقات الجديدة في "متجر Google Play".

التشفير
العملات المشفّرة:الخوارزميات T-Crypto:Algorithms يستخدم التطبيق خوارزميات تشفير وسلسلة أرقام عشوائية توفّرها المنصة. بالإضافة إلى ذلك، لا ينفّذ التطبيق خوارزميات مخصّصة.

Google Play

يجب تفعيل إمكانية نشر تطبيقك على Google Play.

رقم التعريف الاختبارات الوصف
السياسات
‫Play:السياسات T-Play:Policies يلتزم التطبيق بشكل صارم ببنود سياسة المطوّرين بشأن المحتوى على Google Play، ولا يقدّم محتوًى غير ملائم، ولا يستخدم الملكية الفكرية أو العلامة التجارية الخاصة بالآخرين.
Play:Maturity T-Play:Policies تم ضبط مستوى الفئة العمرية المناسب للتطبيق بشكل صحيح استنادًا إلى إرشادات التقييم حسب الفئة العمرية.
صفحة تفاصيل التطبيق
‫Play:الرسومات T-Play:Graphics,
T-Play:Assets

يتوافق الرسم المميّز للتطبيق مع الإرشادات الموضّحة في مقالة الدعم هذه. تأكَّد مما يلي:

  • تتضمّن بطاقة بيانات المتجر رسمًا مميّزًا عالي الجودة
  • لا يحتوي الرسم المميز على صور أجهزة أو لقطات شاشة أو نص صغير يصعب قراءته عند تصغير حجمه وعرضه على أصغر حجم شاشة يستهدفه تطبيقك
  • لا يشبه الرسم المميّز إعلانًا
Play:NonAndroid T-Play:Assets لا تعرض لقطات الشاشة والفيديوهات الخاصة بالتطبيق أجهزة لا تعمل بنظام التشغيل Android أو تشير إليها.
Play:Misleading T-Play:Assets لا تمثّل لقطات الشاشة أو الفيديوهات الخاصة بالتطبيق محتوى تطبيقك وتجربة استخدامه بطريقة مضلِّلة.
دعم المستخدم
Play:Bugs T-Play:Policies يتم تصحيح الأخطاء الشائعة التي يُبلِغ عنها المستخدمون في علامة التبويب المراجعات على صفحة Google Play إذا كان من الممكن إعادة إنتاج الأخطاء وتحدث على العديد من الأجهزة المختلفة. إذا حدث خطأ في عدد قليل من الأجهزة فقط، يجب معالجته إذا كانت هذه الأجهزة شائعة أو جديدة بشكل خاص.

بيئة الاختبار

يمكنك إعداد بيئة اختبار على النحو التالي:

  • اختبار المحاكي: يُعدّ "محاكي Android" طريقة رائعة لاختبار تطبيقك على إصدارات مختلفة من Android وبدقة شاشة مختلفة. يمكنك إعداد أجهزة محاكية (أجهزة Android الافتراضية) لتمثيل أشكال الأجهزة الأكثر شيوعًا ومجموعات الأجهزة/البرامج الأكثر شيوعًا لقاعدة المستخدمين المستهدَفة. اختبِر مجموعة متنوعة من أشكال الأجهزة باستخدام المحاكيات التالية (كحد أدنى):

    • الأجهزة القابلة للطي: شاشة داخلية قابلة للطي مقاس 7.6 بوصة مع شاشة خارجية (يتم إدراج هذا الخيار ضمن الهواتف في "مدير الأجهزة الافتراضية لنظام Android")
    • الجهاز اللوحي: Pixel C 9.94" (2,560 × 1,800 بكسل)
    • اختبار الإشعارات على تطبيق الأجهزة الجوّالة: اربط جهازًا جوّالاً أو محاكيًا بمحاكي Wear OS: Wear OS Round 1.84"
  • الأجهزة: يجب أن تتضمّن بيئة الاختبار عددًا قليلاً من الأجهزة الفعلية التي تمثّل أهم أشكال الأجهزة ومجموعات الأجهزة/البرامج المتاحة للمستهلكين. لست بحاجة إلى الاختبار على كل جهاز متوفّر في السوق. ركِّز على عدد صغير من الأجهزة النموذجية، حتى لو كان ذلك باستخدام جهاز أو جهازَين لكل شكل من أشكال الأجهزة.

  • مختبرات اختبار الأجهزة: يمكنك أيضًا استخدام خدمات تابعة لجهات خارجية، مثل مركز الاختبار الافتراضي لمنصة Firebase، لاختبار تطبيقك على مجموعة متنوعة من الأجهزة.

  • الاختبار باستخدام أحدث إصدار من Android: بالإضافة إلى اختبار إصدارات Android التمثيلية لقاعدة المستخدمين المستهدَفة، عليك دائمًا إجراء الاختبار على أحدث إصدار من Android للتأكّد من أنّ أحدث التغييرات في السلوك لن تؤثّر سلبًا في تجربة المستخدم في تطبيقك.

للحصول على إرشادات إضافية حول الاختبار، بما في ذلك اختبار الوحدات واختبار الدمج واختبار واجهة المستخدم، يُرجى الاطّلاع على أساسيات اختبار تطبيقات Android.

StrictMode

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

يمكنك إعداد سياسة مراقبة لكل سلسلة محادثات باستخدام StrictMode.ThreadPolicy.Builder وتفعيل جميع عمليات المراقبة المتوافقة في ThreadPolicy باستخدام detectAll().

فعِّل الإشعار المرئي بانتهاكات السياسة في ThreadPolicy باستخدام penaltyFlashScreen().

الاختبارات

تساعدك اختبارات جودة التطبيق الأساسية في تقييم الجودة الأساسية لتطبيقك. يمكنك الجمع بين الاختبارات أو دمج مجموعات من الاختبارات معًا في خطة الاختبار.

تجربة المستخدم

رقم التعريف الميزة الوصف
سهولة الاستخدام
T-Usability:Core سهولة الاستخدام:تجربة المستخدم

التنقّل إلى جميع أجزاء التطبيق، أي جميع الشاشات ومربّعات الحوار والإعدادات وجميع مسارات المستخدمين

يُرجى اتّباع الخطوات التالية:
  • إذا كان التطبيق يسمح بالتعديل أو إنشاء المحتوى أو اللعب أو تشغيل الوسائط، احرص على اختبار هذه العمليات.
  • أثناء اختبار التطبيق، أدخِل مقاطعات من تطبيقات أخرى، مثل تلقّي إشعار أو مكالمة هاتفية، وأجرِ تغييرات مؤقتة على سمات الجهاز، مثل الاتصال بالشبكة ووظيفة البطارية وتوفُّر نظام تحديد المواقع العالمي (GPS) وحِمل النظام.
  • إدخال جميع مسارات عمليات الشراء داخل التطبيق واختبارها
T-Usability:Switcher سهولة الاستخدام:Switcher من شاشة كل تطبيق، انتقِل إلى تطبيق آخر قيد التشغيل، ثم ارجع إلى التطبيق قيد الاختبار باستخدام أداة التبديل بين التطبيقات التطبيقات الحديثة.
T-Usability:Sleep سهولة الاستخدام:النوم اضغط على زر التشغيل لوضع الجهاز في وضع السكون، ثم اضغط على زر التشغيل مرة أخرى لتنشيط الشاشة.
T-Usability:Lock سهولة الاستخدام:قفل إعداد قفل الشاشة على الجهاز اضغط على زر التشغيل لضبط الجهاز على وضع السكون (ما يؤدي إلى قفله). بعد ذلك، اضغط على زر التشغيل مرة أخرى لتنشيط الشاشة وفتح قفل الجهاز.
بطاقة SD
T-SD-Card سهولة الاستخدام:تجربة المستخدم

إجراء اختبارات الوظائف الأساسية بعد تثبيت التطبيق على بطاقة SD الخاصة بالجهاز (إذا كان التطبيق يتيح طريقة التثبيت هذه)

لنقل التطبيق إلى بطاقة SD، اطّلِع على إعدادات التطبيق.

واجهة المستخدم
T-UI:Transitions UI:Parity,
UI:Fullscreen,
UI:Transitions

من كل شاشة تطبيق، عليك تدوير الجهاز للتبديل بين الوضعَين الأفقي والعمودي وحالتَي الطي والفتح ثلاث مرات على الأقل.

تأكَّد من أنّ التطبيق ينفّذ ما يلي:
  • توفير تكافؤ الوظائف في جميع اتجاهات العرض وحالات الطي
  • يملأ نافذة التطبيق في جميع اتجاهات العرض وحالات الطي ولا يتم اقتصاصه
  • الحفاظ على الحالة وعدم حدوث مشاكل في العرض أثناء التحوّلات السريعة بين اتجاهات العرض وعمليات طي الجهاز وفتحه
جودة المرئيات
T-Visual:Display العرض المرئي: استخدِم جميع ميزات تطبيقك وتأكَّد من أنّ جميع العناصر المرئية، بما في ذلك الرسومات والنصوص والصور وعناصر واجهة المستخدم الأخرى، لا تتضمّن أي تشويه أو تمويه أو تشويش.
T-Visual:Readability المرئية:سهولة القراءة

راجِع جميع كتل النصوص في التطبيق. تأكَّد من أنّ طول سطر النص وكتلة النص لا يتجاوز 45 إلى 75 حرفًا (بما في ذلك المسافات) لضمان سهولة القراءة.

تحقَّق مما يلي:
  • يمكن استخدام التركيب في جميع أشكال الأجهزة المتوافقة
  • عدم قص الحروف أو الكلمات
  • عدم وجود التفاف غير سليم للكلمات داخل الأزرار أو الرموز
  • توفير مساحة كافية بين النص والعناصر المحيطة به
T-Visual:Themes مرئي:المظاهر تأكَّد من أنّ كل النص قابل للقراءة في المظهرين الفاتح والداكن. التأكّد من أنّ جميع العناصر المرئية يمكن تمييزها بوضوح وجمالية في المظهرين الفاتح والداكن
التنقل
T-Nav:Back Nav:BackButton,
Nav:BackGesture

التنقّل إلى جميع أجزاء التطبيق، أي جميع الشاشات ومربّعات الحوار والإعدادات وجميع مسارات المستخدمين

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

T-Nav:State Nav:State من شاشة كل تطبيق، اضغط على مفتاح الشاشة الرئيسية بالجهاز أو مرِّر سريعًا للأعلى في وضع التنقّل بالإيماءات، ثم أعِد تشغيل التطبيق من شاشة جميع التطبيقات.
الإشعارات
T-Notify:Info Notify:Info,
Notify:Messaging
تفعيل جميع أنواع الإشعارات التي يمكن للتطبيق عرضها ومراقبتها في لوحة الإشعارات وسِّع الإشعارات حيثما ينطبق ذلك (الإصدار 4.1 من نظام التشغيل Android والإصدارات الأحدث)، وانقر على جميع الإجراءات المتاحة.
تسهيل الاستخدام
T-Access:Targets الوصول:الاستهدافات تأكَّد من أنّ مساحات اللمس تحافظ على حجم وموضع ثابتَين يسهل الوصول إليهما لجميع أحجام الشاشات وإعداداتها. للحصول على معلومات حول تسهيل الاستخدام، يمكنك الاطّلاع على Accessibility Scanner.
T-Access:Contrast إمكانية الوصول:التباين تحقَّق من تباين جميع العناصر المرئية.
T-Access:Description Access:Description تأكَّد من أنّ جميع عناصر واجهة المستخدم، باستثناء TextView، تتضمّن أوصافًا للمحتوى.

الوظائف

رقم التعريف الميزة الوصف
الصوت
T-Audio:Init Audio:Init ابدأ تشغيل الصوت. تأكَّد من أنّ التطبيق يبدأ تشغيل الصوت في غضون ثانية واحدة أو يقدّم مؤشرًا مرئيًا على أنّه يتم إعداد بيانات الصوت لتشغيلها.
T-Audio:Focus الصوت:التركيز ابدأ تشغيل الصوت. يجب أن يطلب التطبيق الحصول على أولويّة الصوت. عند توقّف تشغيل الصوت، يجب أن يتنازل التطبيق عن تركيز الصوت (ويحدث ذلك تلقائيًا للتطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android (المستوى 31 لواجهة برمجة التطبيقات) والإصدارات الأحدث).
T-Audio:Interrupt الصوت:مقاطعة ابدأ تشغيل الصوت. ابدأ تشغيل الصوت في تطبيق آخر. يجب أن يستجيب تطبيقك للتغيير في تركيز الصوت وأن يوقف تشغيل الصوت أو يخفض مستوى صوت التشغيل.
T-Audio:Background الصوت:الخلفية ابدأ تشغيل الصوت. التفاعل مع تطبيق آخر غير صوتي كتطبيق في المقدّمة، ويجب أن يستمر التطبيق في تشغيل الصوت في الخلفية
T-Audio:Notification الصوت:الإشعار ابدأ تشغيل الصوت. تفاعَل مع تطبيق آخر غير صوتي كتطبيق في المقدّمة. تأكَّد من أنّ تطبيقك يواصل تشغيل الصوت في الخلفية وأنّه أنشأ إشعارًا منمّقًا باستخدام MediaStyle. اطّلِع على التعامل بشكل جيد مع عناصر التحكّم في الوسائط.
T-Audio:Resume الصوت:استئناف ابدأ تشغيل الصوت. التفاعل مع تطبيق آخر غير صوتي باعتباره تطبيق المقدّمة، ثم التفاعل مع تطبيقك لجعله التطبيق العلوي، فيجب أن يتم استئناف الصوت أو استعادة مستوى الصوت. وفي حال عدم توفّرها، يجب أن يوضّح التطبيق للمستخدم أنّه تم إيقاف التشغيل مؤقتًا.
T-Video:PiP الفيديو:صورة داخل صورة فعِّل تشغيل الفيديو في التطبيق في وضع "نافذة ضمن النافذة".
T-Video:Encoding الفيديو:الترميز تأكَّد من أنّ التطبيق يشفّر الفيديو باستخدام معيار ضغط الفيديو HEVC.
المشاركة
المشاركة:ورقة أنشئ هدفًا وابدأ نشاطًا من خلال استدعاء startActivity() مع الهدف كمعلَمة. اطّلِع على استخدام ورقة المشاركة في Android. يجب أن يعرض تطبيقك "قائمة مشاركة البيانات من Android".
خدمات تعمل في الخلفية
CR-6 الخلفية:الخدمات

استخدِم جميع الميزات الرئيسية في تطبيقك، وتأكَّد من عدم بدء أي خدمات تعمل في الخلفية لفترة طويلة.

بدِّل إلى تطبيق آخر لإرسال تطبيقك إلى الخلفية. انتقِل إلى الإعدادات وتحقَّق ممّا إذا كان تطبيقك يشغّل أي خدمات في الخلفية. على الإصدار 4.0 من نظام التشغيل Android والإصدارات الأحدث، انتقِل إلى شاشة التطبيقات وابحث عن التطبيق في علامة التبويب قيد التشغيل.

الأداء والثبات

رقم التعريف الميزة الوصف
الأداء
T- Performance:Startup الأداء:بدء التشغيل ابدأ تشغيل تطبيقك. تأكَّد من أنّ التطبيق يتم تحميله بسرعة أو أنّه يوفّر مؤشرًا للتقدّم أو رمزًا مماثلاً إذا استغرق تحميل التطبيق أكثر من ثانيتَين.
T-Performance:FPS الأداء:عدد اللقطات في الثانية استخدِم جميع الميزات الرئيسية في تطبيقك، وتأكَّد من أنّ التطبيق يعرض 60 إطارًا على الأقل في الثانية. استخدِم الخيار عرض ملف التعريف HWUI للمساعدة في اختبار تطبيقك.
T-Performance:Strict الأداء:دقيق

فعِّل StrictMode في تطبيقك واستخدِم جميع الميزات الرئيسية. تأكَّد من أنّ التطبيق لا يعرض أي تحذيرات بشأن الأداء (StrictMode)، أي أنّه لا تظهر أي ومضات حمراء عند اختبار التطبيق. تشير الومضات الحمراء إلى سلوك غير سليم بشأن التخزين أو الوصول إلى الشبكة أو إدارة الذاكرة (مثل تسرُّب الذاكرة).

يجب الانتباه جيدًا إلى عملية جمع البيانات غير المرغوب فيها وتأثيرها في تجربة المستخدم.

الثبات
T-Stability:ANR الثبات:أخطاء ANR استخدِم جميع الميزات الرئيسية في تطبيقك، وتأكَّد من أنّه لا يتعطّل أو يحظر سلسلة واجهة المستخدم، ما يؤدي إلى حدوث أخطاء ANR (التطبيق لا يستجيب) على نظام التشغيل Android. راجِع تقرير الإطلاق التجريبي على Google Play لتحديد المشاكل المحتملة في استقرار التطبيق.
SDK
T-SDK:Platform حزمة تطوير البرامج (SDK): النظام الأساسي تشغيل تطبيقك على أحدث إصدار متاح للجميع من منصة Android استخدام جميع الميزات الرئيسية تأكَّد من أنّ التطبيق لا يتعطّل ويعمل بدون فقدان أي من وظائفه الأساسية.
T-SDK:الأحدث SDK:Target,
SDK:Compile
راجِع ملف البيان في Android وإعدادات الإصدار للتأكّد من أنّ التطبيق تم إنشاؤه باستخدام أحدث حزمة SDK متاحة (targetSdk وcompileSdk).
T-SDK:3P SDK:3P راجِع ملف build.gradle لتطبيقك بحثًا عن أي تبعيات قديمة.
T-SDK:Non SDK:Non استخدِم أداة lint في "استوديو Android" لرصد استخدام واجهات غير متوفرة في حزمة SDK. اطّلِع على القيود المفروضة على الواجهات غير المتوفرة في حزمة SDK لمعرفة طرق الاختبار البديلة.
T-SDK:Debug SDK:Debug راجِع ملف build.gradle الخاص بتطبيقك للتأكّد من عدم تضمين أي مكتبات تصحيح أخطاء.
البطارية
T-Battery:Manage البطارية:إدارة

استخدام جميع ميزات التطبيق الرئيسية في وضعَي "السكون" و"استعداد التطبيق" تأكَّد من أنّ التنبيهات والمؤقتات والإشعارات وعمليات المزامنة تعمل بشكل صحيح في فترة الصيانة في وضع "السكون" وعندما يخرج التطبيق من وضع "استعداد التطبيق".

اختبِر سلوك ميزتَي "قيلولة" و"تطبيقات وضع الاستعداد" باستخدام أوامر ADB (راجِع الاختبار باستخدام ميزتَي "قيلولة" و"تطبيقات وضع الاستعداد" للاطّلاع على المتطلبات والإرشادات).

لتشخيص استنزاف البطارية غير المتوقّع، استخدِم أداة Power Profiler في "استوديو Android" أو أداة Battery Historian مع العمل المخطَّط له في الخلفية.

الخصوصية والأمان

رقم التعريف الميزة الوصف
الأذونات
T-Permissions:Min الأذونات:Min راجِع جميع الأذونات التي يتطلّبها تطبيقك في ملف البيان وفي وقت التشغيل وفي إعدادات التطبيق على الجهاز (الإعدادات > معلومات التطبيق).
T-Permissions:Sensitive الأذونات:حسّاسة استخدِم أي ميزات في تطبيقك تطلب أذونات. تأكَّد من أنّ التطبيق يطلب الإذن بالوصول إلى البيانات أو الخدمات الحسّاسة لحالات الاستخدام الأساسية للتطبيق فقط. تأكَّد من إبلاغ المستخدم بوضوح بتبعات منح الإذن بالوصول إلى البيانات والخدمات الحسّاسة.
T-Permissions:Runtime الأذونات:وقت التشغيل استخدِم جميع ميزات تطبيقك التي تتطلّب أذونات. تأكَّد من طلب الأذونات بشكل غير مباشر، أي فقط عند الوصول إلى الميزات، وليس أثناء بدء تشغيل التطبيق.
T-Permissions:Explain Permissions:Explain استخدِم جميع ميزات تطبيقك التي تتطلّب أذونات. تأكَّد من أنّ التطبيق يوضّح للمستخدم سبب الحاجة إلى الأذونات.
T-Permissions:Degrade الأذونات:خفض مستوى الأداء استخدِم جميع ميزات تطبيقك التي تتطلّب أذونات. رفض الأذونات أو إلغاؤها تأكَّد من أنّ التطبيق يوفّر حالة استخدام بديلة ويستمر في العمل.
البيانات والملفات
T-Data:Sensitive البيانات:حسّاسة راجِع جميع البيانات المخزّنة في وحدة التخزين الداخلية. تأكَّد من أنّ البيانات المخزَّنة خارجيًا ليست بيانات حسّاسة.
T-Data:Handling البيانات:حسّاسة راجِع طريقة التعامل مع البيانات التي يتم تحميلها من وحدة التخزين الخارجية ومعالجتها.
T-Data:Log البيانات:السجلّ استخدِم جميع ميزات التطبيق الرئيسية أثناء مراقبة سجلّ الجهاز. تأكَّد من عدم تسجيل أي معلومات خاصة بالمستخدم.
T-Data:IDs البيانات:المعرّفات استخدام جميع ميزات التطبيق الرئيسية تأكَّد من أنّ التطبيق لا يستخدم أي معرّفات أجهزة، مثل IMEI، لأغراض التعريف.
إثبات الهوية
T-Identity:Hints Identity:Hints استخدِم جميع ميزات التطبيق التي تتطلّب إدخال بيانات من المستخدم. تأكَّد من أنّ التطبيق يقدّم تلميحات لملء حقول الإدخال تلقائيًا ببيانات مثل بيانات اعتماد الحساب وغيرها من المعلومات الحساسة.
T-Identity:CredMan Identity:CredMan سجِّل الدخول إلى تطبيقك. تأكَّد من أنّ التطبيق يدمج مدير بيانات الاعتماد في Android لتوفير تجربة تسجيل دخول موحّدة تتوافق مع مفاتيح المرور والهوية الموحّدة وكلمات المرور.
T-Identity:Bio الهوية:السيرة الذاتية استخدام جميع ميزات التطبيق التي تتطلّب المصادقة تأكَّد من أنّ التطبيق يحمي المعاملات المالية أو المعلومات الحسّاسة، مثل مستندات المستخدم المهمة، من خلال المصادقة البيومترية.
مكوّنات التطبيق
T-Components:Export المكوّنات:تصدير راجِع جميع مكوّنات التطبيق المحدّدة في ملف بيان Android للتأكّد من حالة التصدير المناسبة. يجب ضبط السمة التي تم تصديرها بشكلٍ صريح لجميع المكوّنات.
T-Components:Permissions المكوّنات:الأذونات راجِع جميع الأذونات التي يتطلّبها تطبيقك في ملف البيان وفي وقت التشغيل وفي إعدادات التطبيق على الجهاز (الإعدادات > معلومات التطبيق).
T-Components:Protection المكوّنات:الحماية راجِع جميع موفّري المحتوى المحدّدين في ملف بيان Android. تأكَّد من أنّ كل مقدّم خدمة لديه protectionLevel مناسب.
اتصال بالشبكات
T-Network:Traffic الشبكة:حركة البيانات عليك تحديد إعدادات أمان الشبكة التي توقف زيارات cleartext، ثم اختبار التطبيق.
T-Network:Config الشبكة:الإعداد راجِع إعدادات أمان الشبكة للتطبيق. تأكَّد من عدم تعذُّر أي عمليات تحقّق من الأخطاء في الإعدادات.
T-Network:Play الشبكة:تشغيل تأكَّد من تهيئة موفّر الأمان عند بدء تشغيل التطبيق لخدمات Google Play.
WebViews
T-WebViews:Config WebViews:Config راجِع إعدادات أمان الشبكة للتطبيق. تأكَّد من عدم تعذُّر أي عمليات تحقّق من الأخطاء في الإعدادات.
T-WebViews:JavaScript WebViews:JavaScript لكل WebView، انتقِل إلى صفحة تتطلّب JavaScript.
T-WebViews:Nav WebViews:Config,
WebViews:JavaScript
في كل WebView، حاوِل الانتقال إلى المواقع الإلكترونية والمحتوى الذي لا يتم تحميله مباشرةً من خلال تطبيقك.
التنفيذ
T-Execution:Bundles التنفيذ:الحِزم تأكَّد من أنّ التطبيق يستخدم حِزم Android App Bundle ولا يحمّل الرموز البرمجية بشكل ديناميكي من خارج حزمة APK الخاصة بالتطبيق.
التشفير
T-Crypto:Algorithms العملات المشفّرة:الخوارزميات تأكَّد من أنّ التطبيق يستخدم خوارزميات تشفير قوية توفّرها المنصة وأداة إنشاء أرقام عشوائية. تحقَّق أيضًا من أنّ التطبيق لا يستخدم خوارزميات مخصّصة.

Google Play

رقم التعريف الميزة الوصف
السياسات
T-Play:Policies Play:Policies,
Play:Maturity,
Play:Bugs
سجِّل الدخول إلى Google Play Developer Console لمراجعة ملفك الشخصي كمطوِّر ووصف التطبيق ولقطات الشاشة ورسومات الميزات وتقييم المحتوى وملاحظات المستخدمين.
صفحة تفاصيل التطبيق
T-Play:Graphics تشغيل:الرسومات نزِّل الرسم المميز ولقطات الشاشة، ثم قلِّل حجمها لتتطابق مع أحجام العرض على الأجهزة وأشكال الأجهزة التي تستهدفها.
T-Play:Assets Play:Graphics,
Play:NonAndroid,
Play:Misleading
راجِع جميع مواد العرض الرسومية والوسائط والنصوص ومكتبات الرموز البرمجية والمحتوى الآخر الذي يتم تضمينه في التطبيق أو تنزيل ملف البيانات الموسّعة.

أرشفة

النُسخ السابقة من إرشادات الجودة الأساسية للتطبيقات: