زيادة امتثال الاختبار لثوابت WindowManager

لتقديم تجربة متّسقة وعالية الجودة للمستخدمين، ولمنع المشاكل التي تؤدي إلى حالات فشل في "مجموعة أدوات اختبار التوافق" (CTS)، يجب تطبيق مبادئ WindowManager (WM) الأساسية الموضّحة هنا. تساعد هذه المبادئ في ضمان الامتثال لإرشادات جودة تطبيقات السيارات. تنطبق هذه المبادئ على ما يلي:

  • إصدارات Android التي تستخدِم بنية متعددة النوافذ، والتي بدأت في Android 14 واستمرت في Android 15 مع واجهة المستخدم القابلة للتوسيع

  • واجهة المستخدم القابلة للتوسيع في Android وعمليات التنفيذ المخصّصة

من خلال تطبيق المبادئ، ستتجنّب بشكل استباقي معظم المشاكل المتعلّقة بالامتثال لـ CTS والاختبارات الوظيفية.

المصطلحات

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

مبادئ WM

لتحقيق أقصى قدر من الامتثال لـ CTS، يجب تطبيق هذه المبادئ في عمليات تنفيذ WM.

استخدام إعدادات ثابتة عند تشغيل النشاط

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

نقل الأنشطة العادية إلى الحالة "متوقف"

عندما ينتقل المستخدم إلى المهمة الرئيسية أو المشهد الرئيسي، يجب نقل جميع الأنشطة العادية قيد التشغيل إلى الحالة "متوقف" للحفاظ على دورة حياة تطبيق Android المتوقّعة التي تتطلبها اختبارات CTS. لمزيد من المعلومات حول توقّعات دورة حياة التطبيق في بيئات السيارات، يُرجى الاطّلاع على مقالة منع الاستخدام أثناء تفعيل قيود تجربة المستخدم.

منع حجب محتوى النشاط العادي

يجب عدم عرض أي زخارف أو عناصر واجهة مستخدم مخصّصة تحجب محتوى النشاط العادي. إذا تم عرض طبقات مخصّصة (مثل شريط مخصّص للتحكّم في المناخ)، يجب إبلاغ النظام بالأبعاد باستخدام عمليات الإزاحة SystemOverlay. بالنسبة إلى Android 15 والإصدارات الأحدث، يجب استخدام DecorPanel في واجهة المستخدم القابلة للتوسيع. تعتمد التطبيقات على عمليات الإزاحة هذه لعرض المحتوى بأمان.

إخفاء الطبقات عند طلب الوضع الغامر

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

تطبيق الزوايا المستديرة على مستوى شاشة العرض فقط

يجب تطبيق الزوايا المستديرة على مستوى شاشة العرض فقط باستخدام إعدادات الموارد المناسبة في frameworks/base. يجب عدم تطبيق زوايا مستديرة عشوائية على سطح النشاط العادي.

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

الحفاظ على حجم التطبيق عند طلب الوضع الغامر

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