لتقديم أساس متين لتطبيق عالي الجودة، اتّبِع الإرشادات الخاصة بالجودة الأساسية للتطبيق.
تحدّد الإرشادات الحدّ الأدنى من الجودة الذي يجب أن تستوفيه جميع التطبيقات.
جودة التطبيقات التكيّفية
تعمل تطبيقات Android على مجموعة متنوعة من الأجهزة، بدءًا من الهواتف الصغيرة الحجم إلى الأجهزة اللوحية والهواتف القابلة للطي وأجهزة الكمبيوتر المكتبي والشاشات المتصلة وأنظمة الترفيه داخل السيارة والتلفزيون وأجهزة XR. تتيح أوضاع العرض في نوافذ، مثل وضع تقسيم الشاشة ووضع العرض في نافذة على سطح المكتب، تشغيل التطبيقات في أجزاء قابلة لتغيير الحجم من الشاشة.
اتّبِع إرشادات جودة التطبيقات التكيُّفية، بالإضافة إلى إرشادات الجودة الأساسية للتطبيقات، من أجل:
- إنشاء تطبيقات محسَّنة لجميع أشكال الأجهزة وأحجام الشاشات
- الحصول على ترتيب أعلى لتطبيقاتك في بطاقات بيانات Google Play ونتائج البحث
- اكتساب المزيد من المستخدمين وزيادة معدّل الحفاظ على المستخدمين
الإرشادات
تساعدك الإرشادات الأساسية التالية في إنشاء تطبيق أساسي عالي الجودة.
تجربة المستخدم
توفّر أنماط التفاعل والتصاميم المرئية الاعتيادية في Android تجربة متّسقة وسلسة للمستخدم.
استخدِم مكوّنات Material Design لإنشاء واجهة مستخدم تطبيقك بدلاً من مكوّنات نظام Android الأساسي حيثما أمكن ذلك. يوفّر "التصميم المتعدد الأبعاد" مظهرًا عصريًا لنظام التشغيل Android، بالإضافة إلى اتساق واجهة المستخدم على جميع إصدارات Android.
سهولة الاستخدام
| رقم التعريف | الاختبارات | الوصف |
|---|---|---|
| Consistent_UX | T-Consistent_UX, T-SD_Card |
يوفّر التطبيق تجربة مستخدم متسقة لجميع حالات استخدام التطبيق على جميع أشكال الأجهزة. |
| App_Switcher | T-App_Switcher, T-SD_Card |
ينتقل التطبيق إلى الخلفية عند التبديل إلى تطبيق آخر، ويعود إلى المقدّمة عند إعادة تنشيطه من مبدّل التطبيقات التطبيقات الحديثة. |
| Sleep_Resume | T-Sleep_Resume, T-SD_Card |
عندما يكون التطبيق هو التطبيق الذي يعمل في المقدّمة، يتم إيقافه مؤقتًا عندما ينتقل الجهاز إلى وضع السكون ويتم استئنافه عندما يتم تنشيط الجهاز. |
| Lock_Resume | T-Lock_Resume, T-SD_Card |
عندما يكون التطبيق هو التطبيق الذي يعمل في المقدّمة، يتم إيقافه مؤقتًا عند قفل الجهاز واستئنافه عند إلغاء قفله. |
واجهة المستخدم
| رقم التعريف | الاختبارات | الوصف |
|---|---|---|
| Display_State_Parity | T-Orientation_Transitions |
تعرض اتجاهات الشاشة وحالات الطي الميزات والإجراءات نفسها بشكل أساسي وتحافظ على التكافؤ الوظيفي. |
| Fullscreen_Display | T-Orientation_Transitions |
يملأ التطبيق نافذة التطبيق في كلا الاتجاهين ولا تظهر فيه أشرطة سوداء أفقية بسبب تغييرات الضبط، بما في ذلك طي الجهاز وفتحه. يُسمح بوضع إطار أسود صغير للتعويض عن الاختلافات الطفيفة في شكل الشاشة. |
| Orientation_Transitions | T-Orientation_Transitions | يتعامل التطبيق مع التحوّلات السريعة بين اتجاهات العرض وطي الجهاز وفتحه بدون حدوث مشاكل في عرض المحتوى وبدون فقدان الحالة. |
جودة المرئيات
| رقم التعريف | الاختبارات | الوصف |
|---|---|---|
| Graphic_Quality | T-Graphic_Quality |
يعرض التطبيق الرسومات والنصوص والصور وعناصر أخرى في واجهة المستخدم بدون تشويه أو تمويه أو تشويش ملحوظ.
|
| Line_Length | T-Line_Length | يضمن التطبيق إمكانية قراءة النصوص وكتل النصوص من خلال حصر طول السطر على 45 إلى 75 حرفًا (بما في ذلك المسافات) لكل لغة من اللغات التي يتيحها التطبيق. |
| Theme_Support | T-Theme_Support | يتوافق محتوى التطبيق وكل محتوى على الويب الذي يمكن الوصول إليه من خلال التطبيق مع كل من المظهر الفاتح والمظهر الداكن. |
التنقل
| رقم التعريف | الاختبارات | الوصف |
|---|---|---|
| Back_Button_Nav | T-Back_Nav | يتوافق التطبيق مع التنقل باستخدام زر الرجوع العادي ولا يستخدم أي طلبات مخصّصة لزر الرجوع على الشاشة. |
| Back_Gesture_Nav | T-Back_Nav | يتوافق التطبيق مع التنقّل بالإيماءات للرجوع والانتقال إلى الشاشة الرئيسية. |
| State_Preservation | T-State_Preservation, T-Back_Nav |
يحتفظ التطبيق بحالة المستخدم أو التطبيق عند مغادرة المقدّمة، ويمنع فقدان البيانات غير المقصود بسبب التنقُّل للخلف أو تغييرات الحالة الأخرى. عند العودة إلى المقدّمة، يستعيد التطبيق الحالة المحفوظة وأي معاملات معلّقة تتضمّن حالة. وتشمل الأمثلة على ذلك التغييرات في الحقول القابلة للتعديل، ومستوى التقدّم في اللعبة، والقوائم، والفيديوهات، والأقسام الأخرى من التطبيق.
|
الإشعارات
| رقم التعريف | الاختبارات | الوصف |
|---|---|---|
| Notification_Quality | T-Notification_Quality |
تقدّم الإشعارات معلومات ذات صلة بتطبيقك.
|
| Conversation_Quality | T-Notification_Quality |
بالنسبة إلى تطبيقات المراسلة وتطبيقات التواصل الاجتماعي والمحادثات:
|
تسهيل الاستخدام
| رقم التعريف | الاختبارات | الوصف |
|---|---|---|
| Touch_Target_Size | T-Touch_Target_Size | مساحات اللمس لا تقل عن 48 بكسل مستقل الكثافة. راجِع إرشادات التصميم المتعدد الأبعاد حول التصميم وأسلوب الخط. |
| Visual_Contrast | T-Visual_Contrast |
يحافظ نص التطبيق ومحتوى المقدّمة على نسب التباين التالية مع خلفية التطبيق:
|
| Content_Description | T-Content_Description | صف كل عنصر في واجهة المستخدم،
باستثناء TextView، باستخدام contentDescription. |
الوظائف
يجب أن ينفّذ تطبيقك السلوك الوظيفي التالي.
الصوت
| رقم التعريف | الاختبارات | الوصف |
|---|---|---|
| Audio_Playback_Start | T-Audio_Playback_Start |
عندما يبدأ المستخدم تشغيل الصوت، يجب أن ينفّذ التطبيق أحد الإجراءات التالية في غضون ثانية واحدة:
|
| Audio_Focus_Request | T-Audio_Focus_Request | يجب أن يطلب التطبيق أولويّة الصوت عند بدء تشغيل الصوت وأن يتخلّى عن أولويّة الصوت عند توقّف التشغيل. |
| Audio_Focus_Change | T-Audio_Focus_Change | يجب أن يتعامل التطبيق مع طلبات التطبيقات الأخرى للحصول على أولويّة الصوت. على سبيل المثال، قد يخفض تطبيق مستوى صوت التشغيل عندما يشغّل تطبيق آخر كلامًا. |
| Audio_Playback_Background | T-Audio_Playback_Background | يجب أن يتيح التطبيق التشغيل في الخلفية. يجب أن يستخدم التطبيق خدمة تعمل في المقدّمة لمنع النظام من إيقاف عملية التطبيق عندما لا يعود التطبيق مرئيًا. يجب أن يعرض التطبيق أيضًا إشعارًا دائمًا لا يمكن تجاهله في شريط الحالة أو على شاشة القفل لإعلام المستخدم بأنّ التطبيق قيد التشغيل. يجب أن يتمكّن المستخدمون من التحكّم في التشغيل باستخدام عناصر التحكّم في الإشعارات أو شاشة القفل أو عناصر التحكّم في ملحق متصل. |
| Audio_Notification_Style | T-Audio_Notification_Style | عندما يشغّل التطبيق الصوت في الخلفية، يجب أن يُنشئ التطبيق إشعارًا منمّقًا باستخدام MediaStyle. |
| Audio_Playback_Resume | T-Audio_Playback_Resume | إذا كان التطبيق يعمل في الخلفية وتم إيقاف الصوت مؤقتًا، يتم استئناف الصوت عند عودة التطبيق إلى المقدّمة، أو يجب أن يشير التطبيق إلى المستخدم بأنّ التشغيل في حالة إيقاف مؤقت. |
الفيديو
| رقم التعريف | الاختبارات | الوصف |
|---|---|---|
| Video_PiP | T-Video_PiP | إذا كان التطبيق يشغّل الفيديو، يجب أن يتيح تشغيل نافذة ضمن النافذة. |
| Video_Encoding | T-Video_Encoding | إذا كان التطبيق يرمّز الفيديو، يجب أن يتم ذلك باستخدام معيار ضغط الفيديو HEVC. |
| Video_Playback_Background | T-Video_Playback_Background | يتيح التطبيق تشغيل الفيديو في الخلفية عندما لا يكون التطبيق هو التطبيق الأبرز، بما في ذلك عندما تكون نافذة التطبيق:
|
المشاركة
| رقم التعريف | الاختبارات | الوصف |
|---|---|---|
| System_Sharesheet | T-System_Sharesheet | يجب أن يستخدم التطبيق قائمة مشاركة البيانات من Android عند مشاركة المحتوى. يمكن أن يقترح التطبيق استهدافات غير متاحة للحلول المخصّصة. |
خدمات تعمل في الخلفية
| رقم التعريف | الاختبارات | الوصف |
|---|---|---|
| Background_Service_Optimization | T-Background_Service_Optimization |
يتجنّب التطبيق تشغيل الخدمات غير الضرورية لفترة طويلة في الخلفية لضمان تشغيل جهاز المستخدم بسلاسة. ملاحظة: يفرض النظام قيودًا مختلفة على الخدمات التي تعمل في الخلفية. في ما يلي بعض الاستخدامات السيئة للخدمات التي تعمل في الخلفية:
لمزيد من المعلومات، يُرجى الاطّلاع على نظرة عامة على المهام التي تعمل في الخلفية. |
الأداء والثبات
يجب أن يوفّر تطبيقك أفضل أداء وثبات وتوافق وسرعة استجابة.
الأداء
| رقم التعريف | الاختبارات | الوصف |
|---|---|---|
| App_Startup_Time | T-App_Startup_Time | يتم تحميل التطبيق بسرعة أو تقديم ملاحظات على الشاشة للمستخدم (مؤشر تقدُّم أو رمز مماثل) إذا استغرق تحميل التطبيق أكثر من ثانيتَين. |
| Rendering_Performance | T-Rendering_Performance | يعرض التطبيق لقطات كل 16 ملي ثانية (أو أقل) لعرض 60 لقطة على الأقل في الثانية. للحصول على مساعدة بشأن مشاكل العرض، راجِع العرض البطيء. |
| StrictMode_Compliance | T-StrictMode_Compliance | عند تفعيل StrictMode (راجِع قسم اختبار StrictMode)، لن تظهر أي ومضات حمراء (تحذيرات الأداء من StrictMode) عند اختبار التطبيق. |
الثبات
| رقم التعريف | الاختبارات | الوصف |
|---|---|---|
| Stability_ANR | T-Stability_ANR | لا يتعطّل التطبيق أو يعطّل سلسلة واجهة المستخدم، ما يؤدي إلى حدوث أخطاء ANR (التطبيق لا يستجيب). استخدِم تقرير الإطلاق التجريبي على Google Play لتحديد المشاكل المحتملة في استقرار التطبيق. بعد النشر، راقِب صفحة مؤشرات Android الحيوية في Google Play Console. |
SDK
| رقم التعريف | الاختبارات | الوصف |
|---|---|---|
| Android_Platform_Compatibility | T-Android_Platform_Compatibility | يعمل التطبيق على أحدث إصدار علني من نظام Android الأساسي بدون أن يتعطّل أو يؤثّر بشكل كبير في الوظائف الأساسية. |
| Target_SDK_Version | T-Target_SDK_Version | يستهدف التطبيق أحدث إصدار من حزمة تطوير البرامج (SDK) لنظام التشغيل Android اللازم للالتزام بمتطلبات Google Play من خلال ضبط القيمة targetSdk في ملف build.gradle لوحدة التطبيق. |
| Compile_SDK_Version | T-Target_SDK_Version | يتم إنشاء التطبيق باستخدام أحدث إصدار من حزمة تطوير البرامج (SDK) لنظام التشغيل Android من خلال ضبط القيمة compileSdk في ملف build.gradle لوحدة التطبيق. |
| SDK_Maintenance | T-SDK_Maintenance و T-Non_SDK_Interfaces |
أن تكون جميع حِزم تطوير البرامج (SDK) من Google أو من جهات خارجية المستخدمة محدّثة. يجب أن تتوفّر للمستخدمين في الوقت المناسب أي تحسينات على حِزم تطوير البرامج هذه تتعلّق بالثبات أو التوافق أو الأمان. بالنسبة إلى حِزم تطوير البرامج (SDK) من Google، استخدِم حِزم تطوير البرامج (SDK) التي تستند إلى خدمات Google Play عند توفّرها. تتوافق حِزم SDK هذه مع الإصدارات القديمة، وتتلقّى تحديثات تلقائية، وتقلّل من حجم حزمة تطبيقك، وتستفيد بشكل فعّال من الموارد المتوفّرة على الجهاز فقط. |
| Non_SDK_Interfaces | T-Non_SDK_Interfaces | لا يستخدم التطبيق واجهات غير متوفرة في حزمة SDK. |
| Production_Build_Quality | T-Production_Build_Quality | لا يتم تضمين أي مكتبات تصحيح أخطاء في تطبيق الإصدار العلني، لأنّ مكتبات تصحيح الأخطاء المُضمَّنة في التطبيق يمكن أن تتسبّب في حدوث مشاكل في الأداء والأمان. |
البطارية
| رقم التعريف | الاختبارات | الوصف |
|---|---|---|
| Power_Management | إدارة الطاقة في T-Power |
يتوافق التطبيق بشكل سليم مع ميزتَي إدارة الطاقة قيلولة ووضع الاستعداد للتطبيقات. يمكن للتطبيقات طلب إعفاء من صيانة الطاقة. يمكنك الاطّلاع على إتاحة حالات الاستخدام الأخرى في التحسين لوضع "القيلولة" و"وضع الاستعداد للتطبيق". |
الخصوصية والأمان
يتعامل التطبيق مع بيانات المستخدمين ومعلوماتهم الشخصية بأمان ويوفّر مستويات الأذونات المناسبة.
يجب أن تلتزم التطبيقات المنشورة على "متجر Google Play" أيضًا بسياسات بيانات المستخدمين في Google Play لحماية خصوصية المستخدمين.
الأذونات
| رقم التعريف | الاختبارات | الوصف |
|---|---|---|
| Minimize_Permissions | T-Minimize_Permissions | يطلب التطبيق الحدّ الأدنى من الأذونات اللازمة لدعم حالة الاستخدام الحالية. بالنسبة إلى بعض الأذونات، مثل الموقع الجغرافي، يستخدم التطبيق مواصفات تقريبية بدلاً من دقيقة إذا أمكن ذلك. تقليل طلبات الأذونات |
| Sensitive_Permissions | T-Sensitive_Permissions |
يطلب التطبيق الإذن بالوصول إلى البيانات الحسّاسة (مثل مجموعات أذونات الوصول إلى الرسائل القصيرة أو سجلّ المكالمات أو الموقع الجغرافي) أو الخدمات التي تتطلّب دفع رسوم (مثل تطبيق "الهاتف" أو الرسائل القصيرة) فقط عندما تكون مرتبطة مباشرةً بحالات الاستخدام الأساسية للتطبيق. يجب الإفصاح بوضوح للمستخدم عن الآثار المترتبة على هذه الأذونات. استنادًا إلى كيفية استخدام تطبيقك للأذونات، قد يكون من الممكن إيجاد طريقة بديلة لتلبية حالة استخدام تطبيقك بدون الاعتماد على الوصول إلى المعلومات الحساسة. على سبيل المثال، بدلاً من طلب أذونات متعلقة بجهات اتصال المستخدم، استخدِم intent ضمني لطلب الوصول. |
| Runtime_Permissions | T-Runtime_Permissions | يطلب التطبيق أذونات التشغيل عند طلب الوظيفة، وليس أثناء بدء تشغيل التطبيق. |
| Permission_Rationale | T-Permission_Rationale | يوضّح التطبيق بوضوح سبب الحاجة إلى الأذونات. |
| Graceful_Degradation | T-Graceful_Degradation | يتم خفض إصدار التطبيق على نحو ملائم عندما يرفض المستخدمون منح الإذن أو يبطلونه. يجب ألا يمنع التطبيق المستخدم من الوصول إلى المحتوى تمامًا. |
البيانات والملفات
| رقم التعريف | الاختبارات | الوصف |
|---|---|---|
| Sensitive_Data_Storage | T-Sensitive_Data_Storage, T-Sensitive_Data_Handling |
يتم تخزين جميع البيانات الحسّاسة في وحدة التخزين الداخلية للتطبيق. |
| Sensitive_Data_Logging | T-Sensitive_Data_Logging | لا يتم تسجيل أي بيانات شخصية أو حساسة للمستخدم في سجلّ النظام أو سجلّ خاص بالتطبيق. |
| Hardware_IDs | T-Hardware_IDs | لا يستخدم التطبيق أي معرّفات أجهزة غير قابلة لإعادة الضبط، مثل IMEI، لأغراض التعريف. |
إثبات الهوية
| رقم التعريف | الاختبارات | الوصف |
|---|---|---|
| Autofill_Hints | T-Autofill_Hints | يقدّم التطبيق تلميحات لملء البيانات تلقائيًا، مثل بيانات اعتماد الحساب وغيرها من المعلومات الحساسة، مثل معلومات بطاقة الائتمان والعنوان ورقم الهاتف. |
| Credential_Manager | T-Credential_Manager | يتضمّن التطبيق مدير بيانات الاعتماد على Android لتوفير تجربة تسجيل دخول سلسة تجمع بين مفاتيح المرور والهوية الموحّدة وكلمات المرور. |
| Biometric_Authentication | T-Biometric_Authentication | يتيح التطبيق المصادقة باستخدام المقاييس الحيوية لحماية المعاملات المالية أو المعلومات الحسّاسة، مثل مستندات المستخدم المهمة. |
مكوّنات التطبيق
| رقم التعريف | الاختبارات | الوصف |
|---|---|---|
| Component_Export | T-Component_Export |
يضبط التطبيق السمة يتم تصدير مكوّنات التطبيق التي تشارك البيانات مع تطبيقات أخرى أو المكوّنات التي يجب أن تستدعيها تطبيقات أخرى فقط. |
| Component_Permissions | T-Component_Permissions |
تتّبع جميع الأهداف وعمليات البث أفضل الممارسات:
|
| Component_Protection | T-Component_Protection |
تستخدم جميع المكوّنات التي تشارك المحتوى بين التطبيقات يجب ألا تعتمد التطبيقات على الوصول إلى قائمة الحِزم المثبَّتة. |
اتصال بالشبكات
| رقم التعريف | الاختبارات | الوصف |
|---|---|---|
| Network_Security_Traffic | T-Network_Security_Traffic | يتم إرسال جميع حركة بيانات الشبكة عبر طبقة المقابس الآمنة (SSL). |
| Network_Security_Configuration | T-Network_Security_Configuration | يُعلن التطبيق عن إعداد أمان الشبكات. |
| Security_Provider_Initialization | T-Security_Provider_Initialization | إذا كان التطبيق يستخدم "خدمات Google Play"، يتم تهيئة موفّر الأمان عند بدء تشغيل التطبيق. |
WebViews
| رقم التعريف | الاختبارات | الوصف |
|---|---|---|
| WebView_Asset_Loader | T-WebView_Asset_Loader, T-WebView_Navigation |
لا تستخدِم setAllowUniversalAccessFromFileURLs() للوصول إلى المحتوى المحلي. استخدِم WebViewAssetLoader بدلاً من ذلك. |
| WebView_JavaScript | T-WebView_JavaScript, T-WebView_Navigation |
لا تستخدم طرق العرض على الويب على نظام التشغيل Android 6.0 (المستوى 23 من واجهة برمجة التطبيقات والإصدارات الأحدث)، استخدِم قنوات رسائل HTML بدلاً من ذلك. |
التنفيذ
| رقم التعريف | الاختبارات | الوصف |
|---|---|---|
| App_Bundles | حِزم تطبيقات التلفزيون |
لا يحمّل التطبيق الرمز ديناميكيًا من خارج حزمة APK الخاصة بالتطبيق. استخدِم مجموعات حزمات تطبيق Android التي تتضمّن عرض الميزات في Play وعرض المواد في Play. اعتبارًا من أغسطس 2021، أصبح استخدام "مجموعات حزمات تطبيق Android" إلزاميًا لجميع التطبيقات الجديدة في "متجر Google Play". |
التشفير
| رقم التعريف | الاختبارات | الوصف |
|---|---|---|
| Cryptographic_Algorithms | T-Cryptographic_Algorithms | يستخدم التطبيق خوارزميات تشفير قوية توفّرها المنصة وأداة إنشاء أرقام عشوائية. بالإضافة إلى ذلك، لا ينفّذ التطبيق خوارزميات مخصّصة. |
Google Play
يجب تفعيل إمكانية نشر تطبيقك على Google Play.
السياسات
| رقم التعريف | الاختبارات | الوصف |
|---|---|---|
| Play_Content_Policies | T-Play_Content_Policies | يلتزم التطبيق بشكل صارم ببنود سياسة المطوّرين بشأن المحتوى على Google Play، ولا يقدّم محتوًى غير ملائم، ولا يستخدم الملكية الفكرية أو العلامة التجارية الخاصة بالآخرين. |
| Play_Content_Rating | T-Play_Content_Policies | تم ضبط مستوى الفئة العمرية المناسب للتطبيق بشكل صحيح استنادًا إلى إرشادات التقييم حسب الفئة العمرية. |
صفحة تفاصيل التطبيق
| رقم التعريف | الاختبارات | الوصف |
|---|---|---|
| Play_Feature_Graphic | T-Play_Feature_Graphic, T-Play_Graphic_Assets |
يتوافق الرسم المميَّز للتطبيق مع الإرشادات الموضّحة في مقالة الدعم هذه. تأكَّد مما يلي:
|
| Play_Device_References | T-Play_Graphic_Assets | لا تعرض لقطات الشاشة والفيديوهات الخاصة بالتطبيق أجهزة لا تعمل بنظام التشغيل Android أو تشير إليها. |
| Play_Misleading_Content | T-Play_Graphic_Assets | لا تمثّل لقطات الشاشة أو الفيديوهات الخاصة بالتطبيق محتوى تطبيقك وتجربة استخدامه بطريقة مضلِّلة. |
صفحة الدعم
| رقم التعريف | الاختبارات | الوصف |
|---|---|---|
| Play_User_Reviews | T-Play_Content_Policies | يتم تصحيح الأخطاء الشائعة التي يُبلِغ عنها المستخدمون في علامة التبويب المراجعات على صفحة Google Play إذا كان من الممكن إعادة إنتاج الأخطاء وتحدث على العديد من الأجهزة المختلفة. إذا حدث خطأ في عدد قليل من الأجهزة فقط، يجب معالجته إذا كانت هذه الأجهزة شائعة أو جديدة بشكل خاص. |
بيئة الاختبار
يمكنك إعداد بيئة اختبار على النحو التالي:
الاختبار باستخدام محاكي Android: يُعدّ Android Emulator طريقة رائعة لاختبار تطبيقك على إصدارات مختلفة من 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-Consistent_UX | Consistent_UX |
التنقّل إلى جميع أجزاء التطبيق، أي جميع الشاشات ومربّعات الحوار والإعدادات وجميع مسارات المستخدمين يُرجى اتّباع الخطوات التالية:
|
| T-App_Switcher | App_Switcher | من شاشة كل تطبيق، انتقِل إلى تطبيق آخر قيد التشغيل، ثم ارجع إلى التطبيق قيد الاختبار باستخدام أداة تبديل التطبيقات التطبيقات الحديثة. |
| T-Sleep_Resume | Sleep_Resume | اضغط على زر التشغيل لوضع الجهاز في وضع السكون، ثم اضغط على زر التشغيل مرة أخرى لتنشيط الشاشة. |
| T-Lock_Resume | Lock_Resume | إعداد قفل الشاشة على الجهاز اضغط على زر التشغيل لضبط الجهاز على وضع السكون (ما يؤدي إلى قفله). بعد ذلك، اضغط على زر التشغيل مرة أخرى لتنشيط الشاشة وفتح قفل الجهاز. |
بطاقة SD
| رقم التعريف | الميزة | الوصف |
|---|---|---|
| T-SD_Card | Consistent_UX |
إجراء اختبارات الوظائف الأساسية بعد تثبيت التطبيق على بطاقة SD الخاصة بالجهاز (إذا كان التطبيق يتيح طريقة التثبيت هذه) لنقل التطبيق إلى بطاقة SD، اطّلِع على إعدادات التطبيق. |
واجهة المستخدم
| رقم التعريف | الميزة | الوصف |
|---|---|---|
| T-Orientation_Transitions | Display_State_Parity و Fullscreen_Display و Orientation_Transitions |
من كل شاشة تطبيق، عليك تدوير الجهاز للتبديل بين الوضعَين الأفقي والعمودي وحالتَي الطي والفتح ثلاث مرات على الأقل. تأكَّد من أنّ التطبيق ينفّذ ما يلي:
|
جودة المرئيات
| رقم التعريف | الميزة | الوصف |
|---|---|---|
| T-Graphic_Quality | جودة_الرسومات | استخدِم جميع ميزات تطبيقك. تأكَّد من أنّ جميع العناصر المرئية، بما في ذلك الرسومات والنصوص والصور وعناصر واجهة المستخدم الأخرى، لا تتضمّن أي تشويه أو تمويه أو تشويش. |
| T-Line_Length | Line_Length |
راجِع جميع كتل النصوص في التطبيق. تأكَّد من أنّ طول سطر النص وكتلة النص لا يتجاوز 45 إلى 75 حرفًا (بما في ذلك المسافات) لضمان سهولة القراءة. تحقَّق مما يلي:
|
| T-Theme_Support | Theme_Support | تأكَّد من أنّ كل النص قابل للقراءة في المظهرين الفاتح والداكن. التأكّد من أنّ جميع العناصر المرئية يمكن تمييزها بوضوح وجمالية في المظهرين الفاتح والداكن |
التنقل
| رقم التعريف | الميزة | الوصف |
|---|---|---|
| T-Back_Nav | Back_Button_Nav و Back_Gesture_Nav |
التنقّل إلى جميع أجزاء التطبيق، أي جميع الشاشات ومربّعات الحوار والإعدادات وجميع مسارات المستخدمين من كل شاشة تطبيق، اضغط على زر الرجوع أو استخدِم إيماءة التمرير السريع للرجوع. يجب أن ينتقل التطبيق إلى الشاشة السابقة أو الرئيسية. |
| T-State_Preservation | State_Preservation | من شاشة كل تطبيق، اضغط على مفتاح الشاشة الرئيسية بالجهاز أو مرِّر سريعًا للأعلى في وضع التنقّل بالإيماءات، ثم أعِد تشغيل التطبيق من شاشة جميع التطبيقات. |
الإشعارات
| رقم التعريف | الميزة | الوصف |
|---|---|---|
| T-Notification_Quality | Notification_Quality, Conversation_Quality |
تفعيل جميع أنواع الإشعارات التي يمكن للتطبيق عرضها ومراقبتها في لوحة الإشعارات وسِّع الإشعارات حيثما ينطبق ذلك (الإصدار 4.1 من نظام التشغيل Android والإصدارات الأحدث)، وانقر على جميع الإجراءات المتاحة. |
تسهيل الاستخدام
| رقم التعريف | الميزة | الوصف |
|---|---|---|
| T-Touch_Target_Size | Touch_Target_Size | تأكَّد من أنّ نواحي اللمس المستهدَفة تحافظ على حجم وموضع ثابتَين يسهل الوصول إليهما لجميع أحجام الشاشات وإعداداتها. للحصول على معلومات حول تسهيل الاستخدام، يمكنك الاطّلاع على Accessibility Scanner. |
| T-Visual_Contrast | Visual_Contrast | تحقَّق من تباين جميع العناصر المرئية. |
| T-Content_Description | Content_Description | تأكَّد من أنّ جميع عناصر واجهة المستخدم باستثناء TextView تتضمّن أوصافًا للمحتوى. |
الوظائف
تأكَّد من أنّ تطبيقك ينفّذ السلوك الوظيفي التالي.
الصوت
| رقم التعريف | الميزة | الوصف |
|---|---|---|
| T-Audio_Playback_Start | Audio_Playback_Start | ابدأ تشغيل الصوت. تأكَّد من أنّ التطبيق يبدأ تشغيل الصوت في غضون ثانية واحدة أو يوفّر مؤشرًا مرئيًا على أنّه يتم إعداد بيانات الصوت لتشغيلها. |
| T-Audio_Focus_Request | Audio_Focus_Request | ابدأ تشغيل الصوت. يجب أن يطلب التطبيق الحصول على أولويّة الصوت. عند توقّف تشغيل الصوت، يجب أن يتنازل التطبيق عن أولويّة الصوت (ويحدث ذلك تلقائيًا للتطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android (مستوى واجهة برمجة التطبيقات 31) والإصدارات الأحدث). |
| T-Audio_Focus_Change | Audio_Focus_Change | ابدأ تشغيل الصوت. ابدأ تشغيل الصوت في تطبيق آخر. يجب أن يستجيب تطبيقك للتغيير في أولويّة الصوت وأن يوقف تشغيل الصوت أو يخفض مستوى صوت التشغيل. |
| T-Audio_Playback_Background | Audio_Playback_Background | ابدأ تشغيل الصوت. التفاعل مع تطبيق آخر غير صوتي كتطبيق يعمل في المقدّمة، مع استمرار التطبيق في تشغيل الصوت في الخلفية وعرض إشعار في شريط الحالة تأكَّد من إمكانية إدارة التشغيل باستخدام عناصر التحكّم المعروضة في الإشعار. اقفل شاشة الجهاز. يجب أن يواصل التطبيق تشغيل الصوت في الخلفية وأن يعرض إشعارًا على شاشة القفل. تأكَّد من إمكانية إدارة التشغيل باستخدام عناصر التحكّم المعروضة في الإشعار. |
| T-Audio_Notification_Style | Audio_Notification_Style | ابدأ تشغيل الصوت. تفاعَل مع تطبيق آخر غير صوتي كتطبيق يعمل في المقدّمة. تأكَّد من أنّ تطبيقك يواصل تشغيل الصوت في الخلفية وأنّه أنشأ إشعارًا منمّقًا باستخدام MediaStyle. اطّلِع على التعامل بشكل جيد مع أدوات التحكّم في الوسائط. |
| T-Audio_Playback_Resume | Audio_Playback_Resume | ابدأ تشغيل الصوت. التفاعل مع تطبيق آخر غير صوتي باعتباره التطبيق الذي يعمل في المقدّمة، ثم التفاعل مع تطبيقك لجعله التطبيق الذي يعمل في المقدّمة، ويجب أن يتم استئناف الصوت أو استعادة مستوى الصوت. وفي حال عدم توفّرها، يجب أن يوضّح التطبيق للمستخدم أنّه تم إيقاف التشغيل مؤقتًا. |
الفيديو
| رقم التعريف | الميزة | الوصف |
|---|---|---|
| T-Video_PiP | Video_PiP | فعِّل تشغيل الفيديو في التطبيق في وضع "نافذة ضمن النافذة". |
| T-Video_Encoding | Video_Encoding | تأكَّد من أنّ التطبيق يرمّز الفيديو باستخدام معيار ضغط الفيديو HEVC. |
| T-Video_Playback_Background | Video_Playback_Background | ابدأ تشغيل الفيديو. صغِّر نافذة التطبيق، وافتح تطبيقًا آخر لنقل نافذة التطبيق إلى الخلفية. على الأجهزة المتوافقة مع العرض المخصّص للكمبيوتر المكتبي، انقل نافذة التطبيق إلى خارج سطح المكتب المرئي. تأكَّد من استمرار تشغيل الفيديو بدون انقطاع في جميع الحالات. |
المشاركة
| رقم التعريف | الميزة | الوصف |
|---|---|---|
| T-System_Sharesheet | System_Sharesheet | أنشئ هدفًا وابدأ نشاطًا من خلال استدعاء startActivity() مع الهدف كمعلَمة. اطّلِع على استخدام قائمة مشاركة البيانات من Android. يجب أن يعرض تطبيقك "قائمة مشاركة البيانات من Android". |
خدمات تعمل في الخلفية
| رقم التعريف | الميزة | الوصف |
|---|---|---|
| T-Background_Service_Optimization | Background_Service_Optimization | استخدِم جميع الميزات الرئيسية في تطبيقك، وتأكَّد من عدم بدء أي خدمات تعمل في الخلفية لفترة طويلة. بدِّل إلى تطبيق آخر لإرسال تطبيقك إلى الخلفية. انتقِل إلى الإعدادات وتحقَّق ممّا إذا كان تطبيقك يشغّل أي خدمات في الخلفية. على الإصدار 4.0 من نظام التشغيل Android والإصدارات الأحدث، انتقِل إلى شاشة التطبيقات وابحث عن التطبيق في علامة التبويب قيد التشغيل. |
الأداء والثبات
التحقّق من الأداء والثبات والمرئيات المثالية
الأداء
| رقم التعريف | الميزة | الوصف |
|---|---|---|
| T-App_Startup_Time | App_Startup_Time | ابدأ تشغيل تطبيقك. تأكَّد من أنّ التطبيق يتم تحميله بسرعة أو أنّه يوفّر مؤشرًا للتقدّم أو رمزًا مماثلاً إذا استغرق تحميل التطبيق أكثر من ثانيتَين. |
| T-Rendering_Performance | Rendering_Performance | استخدِم جميع الميزات الرئيسية في تطبيقك، وتأكَّد من أنّ التطبيق يعرض 60 لقطة على الأقل في الثانية. استخدِم الخيار عرض ملف التعريف HWUI للمساعدة في اختبار تطبيقك. |
| T-StrictMode_Compliance | StrictMode_Compliance |
فعِّل يجب الانتباه جيدًا إلى عملية جمع البيانات غير المرغوب فيها وتأثيرها في تجربة المستخدم. |
الثبات
| رقم التعريف | الميزة | الوصف |
|---|---|---|
| T-Stability_ANR | Stability_ANR | استخدِم جميع الميزات الرئيسية في تطبيقك، وتأكَّد من أنّ التطبيق لا يتعطّل أو يعطّل سلسلة واجهة المستخدم، ما يؤدي إلى حدوث أخطاء ANR (التطبيق لا يستجيب) على نظام التشغيل Android. راجِع تقرير الإطلاق التجريبي على Google Play لتحديد المشاكل المحتملة في استقرار التطبيق. |
SDK
| رقم التعريف | الميزة | الوصف |
|---|---|---|
| T-Android_Platform_Compatibility | Android_Platform_Compatibility | تشغيل تطبيقك على أحدث إصدار علني من نظام Android الأساسي. استخدام جميع الميزات الرئيسية تأكَّد من أنّ التطبيق لا يتعطّل ويعمل بدون فقدان أي من وظائفه الأساسية. |
| T-Target_SDK_Version | Target_SDK_Version, Compile_SDK_Version |
راجِع ملف البيان Android وإعدادات التصميم للتأكّد من أنّ التطبيق تم إنشاؤه باستخدام أحدث حزمة SDK متاحة (targetSdk وcompileSdk). |
| T-SDK_Maintenance | SDK_Maintenance | راجِع ملف build.gradle لتطبيقك بحثًا عن أي تبعيات قديمة. |
| T-Non_SDK_Interfaces | Non_SDK_Interfaces | استخدِم أداة lint في "استوديو Android" لرصد استخدام واجهات غير متوفرة في حزمة SDK. اطّلِع على القيود المفروضة على الواجهات غير المتوفرة في حزمة SDK لمعرفة طرق الاختبار البديلة. |
| T-Production_Build_Quality | Production_Build_Quality | راجِع ملف build.gradle الخاص بتطبيقك للتأكّد من عدم تضمين أي مكتبات تصحيح أخطاء. |
البطارية
| رقم التعريف | الميزة | الوصف |
|---|---|---|
| T-Power_Management | Power_Management |
استخدام جميع ميزات التطبيق الرئيسية في وضعَي "السكون" و"تطبيقات وضع الاستعداد" تأكَّد من أنّ التنبيهات والمؤقتات والإشعارات والمزامنات تعمل بشكلٍ صحيح في نافذة الصيانة في وضع "قيلولة" وعندما يخرج التطبيق من وضع "تطبيقات وضع الاستعداد". اختبِر سلوك ميزتَي "قيلولة" و"تطبيقات وضع الاستعداد" باستخدام أوامر ADB (راجِع الاختبار باستخدام ميزتَي "قيلولة" و"تطبيقات وضع الاستعداد" للاطّلاع على المتطلبات والإرشادات). لتشخيص استنزاف البطارية غير المتوقّع، استخدِم أداة Power Profiler في "استوديو Android" أو أداة Battery Historian مع العمل المخطَّط له في الخلفية. |
الخصوصية والأمان
اختبار أدوات حماية الخصوصية والأمان التي يتوقّعها المستخدمون
الأذونات
| رقم التعريف | الميزة | الوصف |
|---|---|---|
| T-Minimize_Permissions | Minimize_Permissions | راجِع جميع الأذونات التي يتطلّبها تطبيقك في ملف البيان وفي وقت التشغيل وفي إعدادات التطبيق على الجهاز (الإعدادات > معلومات التطبيق). |
| T-Sensitive_Permissions | Sensitive_Permissions | استخدِم أي ميزات في تطبيقك تطلب أذونات. تأكَّد من أنّ التطبيق يطلب الإذن بالوصول إلى البيانات أو الخدمات الحسّاسة لحالات الاستخدام الأساسية للتطبيق فقط. تأكَّد من إبلاغ المستخدم بوضوح بتبعات منح الإذن بالوصول إلى البيانات والخدمات الحسّاسة. |
| T-Runtime_Permissions | Runtime_Permissions | استخدِم جميع ميزات تطبيقك التي تتطلّب أذونات. تأكَّد من طلب الأذونات بشكل غير مباشر، أي فقط عند الوصول إلى الميزات، وليس أثناء بدء تشغيل التطبيق. |
| T-Permission_Rationale | Permission_Rationale | استخدِم جميع ميزات تطبيقك التي تتطلّب أذونات. تأكَّد من أنّ التطبيق يوضّح للمستخدم سبب الحاجة إلى الأذونات. |
| T-Graceful_Degradation | Graceful_Degradation | استخدِم جميع ميزات تطبيقك التي تتطلّب أذونات. رفض الأذونات أو إلغاؤها تأكَّد من أنّ التطبيق يوفّر حالة استخدام بديلة ويستمر في العمل. |
البيانات والملفات
| رقم التعريف | الميزة | الوصف |
|---|---|---|
| T-Sensitive_Data_Storage | Sensitive_Data_Storage | راجِع جميع البيانات المخزّنة في وحدة التخزين الداخلية. تأكَّد من أنّ البيانات المخزَّنة خارجيًا ليست بيانات حسّاسة. |
| T-Sensitive_Data_Handling | Sensitive_Data_Storage | راجِع طريقة التعامل مع البيانات التي يتم تحميلها من وحدة التخزين الخارجية ومعالجتها. |
| T-Sensitive_Data_Logging | Sensitive_Data_Logging | استخدِم جميع ميزات التطبيق الرئيسية أثناء مراقبة سجلّ الجهاز. تأكَّد من عدم تسجيل أي معلومات خاصة بالمستخدم. |
| T-Hardware_IDs | Hardware_IDs | استخدام جميع ميزات التطبيق الرئيسية تأكَّد من أنّ التطبيق لا يستخدم أي معرّفات أجهزة، مثل IMEI، لأغراض التعريف. |
إثبات الهوية
| رقم التعريف | الميزة | الوصف |
|---|---|---|
| T-Autofill_Hints | Autofill_Hints | استخدِم جميع ميزات التطبيق التي تتطلّب بيانات أدخلها المستخدم. تأكَّد من أنّ التطبيق يقدّم تلميحات لملء حقول الإدخال تلقائيًا ببيانات مثل بيانات اعتماد الحساب وغيرها من المعلومات الحساسة. |
| T-Credential_Manager | Credential_Manager | سجِّل الدخول إلى تطبيقك. تأكَّد من أنّ التطبيق يدمج Credential Manager for Android لتوفير تجربة تسجيل دخول موحّدة تتوافق مع مفاتيح المرور والهوية الموحّدة وكلمات المرور. |
| T-Biometric_Authentication | Biometric_Authentication | استخدام جميع ميزات التطبيق التي تتطلّب المصادقة تأكَّد من أنّ التطبيق يحمي المعاملات المالية أو المعلومات الحسّاسة، مثل مستندات المستخدم المهمة، من خلال المصادقة البيومترية. |
مكوّنات التطبيق
| رقم التعريف | الميزة | الوصف |
|---|---|---|
| T-Component_Export | تصدير_المكوّن | راجِع جميع مكوّنات التطبيق المحدّدة في ملف بيان Android للتأكّد من حالة التصدير المناسبة. يجب ضبط السمة التي تم تصديرها بشكلٍ صريح لجميع المكوّنات. |
| T-Component_Permissions | Component_Permissions | راجِع جميع الأذونات التي يتطلّبها تطبيقك في ملف البيان وفي وقت التشغيل وفي إعدادات التطبيق على الجهاز (الإعدادات > معلومات التطبيق). |
| T-Component_Protection | Component_Protection | راجِع جميع مقدّمي المحتوى المحدّدين في ملف بيان Android. تأكَّد من أنّ كل مقدّم خدمة لديه protectionLevel مناسب. |
اتصال بالشبكات
| رقم التعريف | الميزة | الوصف |
|---|---|---|
| T-Network_Security_Traffic | Network_Security_Traffic | عليك تحديد إعدادات أمان الشبكة التي توقف زيارات cleartext، ثم اختبار التطبيق. |
| T-Network_Security_Configuration | Network_Security_Configuration | راجِع إعدادات أمان الشبكة للتطبيق. تأكَّد من عدم تعذُّر أي عمليات تحقّق من الأخطاء في الإعدادات. |
| T-Security_Provider_Initialization | Security_Provider_Initialization | تأكَّد من تهيئة موفّر الأمان عند بدء تشغيل التطبيق لخدمات Google Play. |
WebViews
| رقم التعريف | الميزة | الوصف |
|---|---|---|
| T-WebView_Asset_Loader | WebView_Asset_Loader | راجِع إعدادات أمان الشبكة للتطبيق. تأكَّد من عدم تعذُّر أي عمليات تحقّق من الأخطاء في الإعدادات. |
| T-WebView_JavaScript | WebView_JavaScript | لكل WebView، انتقِل إلى صفحة تتطلّب JavaScript. |
| T-WebView_Navigation | WebView_Asset_Loader, WebView_JavaScript |
في كل WebView، حاوِل الانتقال إلى المواقع الإلكترونية والمحتوى الذي لا يتم تحميله مباشرةً من خلال تطبيقك. |
التنفيذ
| رقم التعريف | الميزة | الوصف |
|---|---|---|
| T-App_Bundles | App_Bundles | تأكَّد من أنّ التطبيق يستخدم حِزم Android App Bundle ولا يحمّل الرموز البرمجية بشكل ديناميكي من خارج حزمة APK الخاصة بالتطبيق. |
التشفير
| رقم التعريف | الميزة | الوصف |
|---|---|---|
| T-Cryptographic_Algorithms | Cryptographic_Algorithms | تأكَّد من أنّ التطبيق يستخدم خوارزميات تشفير قوية توفّرها المنصة وأداة إنشاء أرقام عشوائية. تحقَّق أيضًا من أنّ التطبيق لا يستخدم خوارزميات مخصّصة. |
Google Play
تأكَّد من أنّ تطبيقك جاهز للنشر على Google Play.
السياسات
| رقم التعريف | الميزة | الوصف |
|---|---|---|
| T-Play_Content_Policies | سياسات_محتوى_Play، تقييم_المحتوى_على_Play، مراجعات_المستخدمين_على_Play |
سجِّل الدخول إلى Google Play Console لمراجعة الملف الشخصي للمطوّر ووصف التطبيق ولقطات الشاشة والرسم المميز والتقييم حسب الفئة العمرية وملاحظات المستخدمين. |
صفحة تفاصيل التطبيق
| رقم التعريف | الميزة | الوصف |
|---|---|---|
| T-Play_Feature_Graphic | Play_Feature_Graphic | نزِّل الرسم المميز ولقطات الشاشة، ثم قلِّل حجمها ليتناسب مع أحجام العرض على الأجهزة وأشكال الأجهزة التي تستهدفها. |
| T-Play_Graphic_Assets | Play_Feature_Graphic, Play_Device_References, Play_Misleading_Content |
راجِع جميع مواد العرض الرسومية والوسائط والنصوص ومكتبات الرموز البرمجية والمحتوى الآخر الذي يتم تضمينه في التطبيق أو تنزيل ملف البيانات الموسّعة. |
أرشفة
النُسخ السابقة من إرشادات الجودة الأساسية للتطبيقات: