تنفيذ واجهة مستخدم النظام

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

ما هي واجهة مستخدم النظام؟

تشمل المكونات الخاصة بواجهة مستخدم نظام Automotive ما يلي:

المكوّن الوصف
واجهة مستخدم شاشة القفل الشاشة التي تتم من خلالها مصادقة المستخدمين لحساب مستخدم محدّد.
شريط التنقّل شريط النظام الذي يمكن وضعه على يسار أو أسفل أو يمين الشاشة ويمكن أن تتضمن أزرار واجهة التنقل إلى تطبيقات مختلفة، وتبديل لوحة الإشعارات، توفير أدوات تحكّم في المركبة (مثل نظام التدفئة والتهوية وتكييف الهواء). تختلف هذه القائمة عن واجهة مستخدم نظام Android. والذي يوفر أزرار الرجوع والصفحة الرئيسية وحزمة التطبيقات.
شريط الحالة شريط النظام موضوع على الشاشة ويعمل كشريط تنقل تشير رسالة الأشكال البيانية ويوفر شريط الحالة أيضًا وظائف لدعم:
  • رموز إمكانية الاتصال ويشمل ذلك الاتصال عبر البلوتوث وشبكة Wi-Fi ونقطة الاتصال أو اتصال الجوّال.
  • القائمة المنسدلة للإشعارات. على سبيل المثال، التمرير سريعًا من أعلى الشاشة إلى أسفلها
  • تنبيه الإشعارات (HUN).
واجهة مستخدم النظام يشير إلى أي عنصر معروض على الشاشة وليس جزءًا من تطبيق.
واجهة مستخدم "أداة تبديل المستخدمين" الشاشة التي يمكن للمستخدم من خلالها اختيار مستخدم مختلف.
واجهة المستخدم لمستوى الصوت مربّع حوار يظهر عندما يستخدم السائق أزرار التحكّم بمستوى الصوت المادية لتغيير مستوى الصوت في الخاص بك.

كيف تعمل واجهة مستخدم النظام؟

"واجهة مستخدم النظام" هي تطبيق Android يتم تشغيله عند تشغيل الجهاز. تشير رسالة الأشكال البيانية من خلال الانعكاس من خلال SystemServer: في ما يلي نقاط الدخول الأكثر صلة بالجوانب المرئية للمستخدم المتعلقة بواجهة مستخدم النظام. يمكنك استخدام هذه المكوّنات لتخصيص واجهة مستخدم نظام Android للإمكانيات الخاصة بنظام التشغيل Automotive.

  • config_statusBarComponent
  • config_systemUIFactoryComponent

يُعد CarSystemUI امتدادًا لحزمة واجهة مستخدم النظام، مما يعني أن الفئات يمكن استخدام الموارد في حزمة واجهة مستخدم النظام وتجاوزها بواسطة حزمة CarSystemUI.

تخصيص واجهة مستخدم النظام

النوافذ المتراكبة

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

يجب وضع الملفات التي تظهر على سطح الفيديو في دليل PRODUCT_PACKAGE_OVERLAYS ويجب أن يكون لها المجلدات الفرعية نفسها تمامًا مثل هيكل جذر AOSP الأصلي. بالنسبة إلى نظام التشغيل Android: 10 أو أعلى، تم ضبط PRODUCT_PACKAGE_OVERLAYS على:

PRODUCT_PACKAGE_OVERLAYS := packages/services/Car/car_product/overlay

تستخدم واجهة مستخدم نظام Automotive موارد من واجهة مستخدم النظام وحزم CarSystemUI. مما يعني أنه يمكن إلغاء الموارد من كل موقع بتراكبات للتأثير على الشكل والأسلوب لواجهة مستخدم نظام Automotive.

لاستبدال ملف، انسخ بنية الدليل للملف الذي يتم استبداله في الدليل الذي حدّدته ثم ضمِّن البديل في ذلك الدليل /overlay الدليل. على سبيل المثال، لاستبدال:

frameworks/base/packages/CarSystemUI/res/layout/super_status_bar.xml

أضِف ملف super_status_bar.xml البديل المتوفّر في:

packages/services/Car/car_product/overlay/frameworks/base/packages/CarSystemUI/res/layout/

لاستبدال frameworks/base/packages/SystemUI/res/values/config.xml، (في System UI، وليس CarSystemUI)، أضِف ملف config.xml البديل إلى:

packages/services/Car/car_product/overlay/frameworks/base/packages/SystemUI/res/layout/

أو

packages/services/Car/car_product/overlay/frameworks/base/packages/CarSystemUI/res/layout/

في ما يلي وصفان لنقطة دخول التخصيص الأساسية.

يمكن أن تحتوي واجهة مستخدم نظام Automotive على ثلاثة أشرطة تنقل في الجانب الأيسر والأسفل ويمين من الشاشة. يتم تبديل إمكانية رؤية كل شريط من أشرطة النظام من خلال عمليات الضبط التالية:

  • config_enableLeftSystemBar
  • config_enableBottomSystemBar
  • config_enableRightSystemBar

يحتوي كل شريط على حالة متوفرة وغير متوفرة، والتي يمكن تخصيصها من خلال تركيب ملفات التخطيط الخاصة بها:

  • car_left_system_bar.xml
  • car_left_system_bar_unprovisioned.xml
  • car_system_bar.xml (تنسيق شريط التنقل السفلي)
  • car_system_bar_unprovisioned.xml
  • car_right_system_bar.xml
  • car_right_system_bar_unprovisioned.xml

يجب أن تحتوي هذه التخطيطات على com.android.systemui.car.systembar.CarSystemBarView في المستوى الأعلى، والذي يمكنه تضمين أي طرق عرض ضرورية أخرى. يمكن تضمين الأزرار داخل أشرطة التنقل باستخدام com.android.systemui.car.systembar.CarSystemBarButton

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

شريط الحالة

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

  • car_top_navigation_bar.xml
  • car_top_navigation_bar_unprovisioned.xml

يجب أن تحتوي هذه التنسيقات على com.android.systemui.statusbar.car.CarNavigationBarView في المستوى الأعلى. يحتوي شريط الحالة على رموز الحالة. لتغيير حجم رمز، غيّر حجم بشكل موحد باستخدام عامل قياس بدلاً من تحديد حجم معين. على سبيل المثال، في تراكب الملف /overlay/frameworks/base/packages/CarSystemUI/res/values/dimens.xml، أضف الأبعاد التالية لمضاعفة حجم الرموز:

<resources>
    <!-- The amount by which to scale up the status bar icons.-->
    <item name="status_bar_icon_scale_factor" format="float" type="dimen">2</item>
</resources>

يوجد شريط الحالة في طبقة نافذة خاصة تتضمن أيضًا لوحة الإشعارات وأداة تبديل المستخدمين وإشعارات التنبيهات (HUNs) حارس المفاتيح. يتم تضمين التخطيطات المختلفة لها في super_status_bar.xml

تغييرات رمز المصدر لواجهة مستخدم النظام

قد لا توفّر التراكبات المرونة اللازمة لتخصيص سلوك واجهة مستخدم النظام بشكلٍ كافٍ.

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

يمكن تخصيص معظم جوانب واجهة مستخدم النظام من خلال نقطتي الدخول هاتين:

  • config_statusBarComponent
  • config_systemUIFactoryComponent

على سبيل المثال، إذا أنشأت فئة باسم com.android.systemui.statusbar.car.custom.CustomCarStatusBar، الذي يمتد إلى CarStatusBar، تعديل config_statusBarComponent إلى نقطة لهذا المكون الجديد. يتيح تمديد هذه الفئة إمكانية تخصيص معظم العناصر ذات الصلة إلى شريط النظام ومنطق الإشعارات.

وبالمثل، يمكنك إنشاء CustomCarSystemUIFactory ووضعها في config_systemUIFactoryComponent استخدِم هذه الفئة لتعديل وظائف واجهة مستخدم مستوى الصوت وشاشة القفل

تخصيص التبديل بين المستخدمين وفتح قفله

توضّح المادة التالية كيفية تخصيص تجربة التبديل بين المستخدمين.

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

تخصيص التبديل بين المستخدمين

حارس مفاتيح وارتداد

في نظام التشغيل Android Automotive، يتم عرض شاشة لوحة المفاتيح مع أداة اختيار المستخدمين فقط. عندما ينقر المستخدم على الزر "إلغاء" في شاشة القفل يتم عرض شاشة قفل المفاتيح أدناه.

شاشة قفل المفاتيح

الشكل 1. شاشة قفل المفاتيح

تظهر شاشة قفل تعرض ارتدادًا عندما يختار المستخدم نوع خصوصية فتح قفل الجهاز، كما هو موضح أدناه.

شاشة القفل

الشكل 2. شاشة القفل.

عند ضبط القفل على تشغيل الكهرباء أو إيقافها يدويًا، اتّبِع التعليمات التالية:

adb shell input keyevent 26

أداة اختيار المستخدمين

تظهر شاشة "أداة اختيار المستخدم" عندما يكون الجهاز جزءًا لا يتجزأ من شريط حالة واجهة مستخدم النظام في السيارة. وستتم إعادة تشغيل الخرائط. لمزيد من المعلومات، يُرجى مراجعة FullscreenUserSwitcher

شاشة التحميل

الشكل 3. شاشة منتقي المستخدم

يمكن تخصيص تخطيط هذه الشاشة في car_fullscreen_user_switcher.xml

شاشة التحميل

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

يمكن تخصيص المظهر باستخدام Theme_DeviceDefault_Light_Dialog_Alert_UserSwitchingDialog

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

يمكن تخصيص التنسيق في car_user_switching_dialog.xml..

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

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

  1. ينشئ المصنّع الأصلي للجهاز شاشة التحميل المخصّصة (أو مربّع الحوار) ويعرضها.
    • بالنظر إلى تجربة المستخدم، يطلق المصنّع الأصلي للجهاز شاشة التحميل المخصصة عندما يختار المستخدم الوسائل والذي يمكن إخفاؤه عند اكتمال عملية تبديل المستخدم.
    • يجب أن يحدّد المصنّع الأصلي للجهاز الأولوية نافذة وفقًا لتفضيلاته. على سبيل المثال، نوع نافذة ذي أولوية أعلى. اولوية لا يمكن أن تتجاوز الأولوية القصوى لقفل المفاتيح.
  2. يضع المصنّع الأصلي للجهاز config_customUserSwitchUi=true في إطار العمل الأساسي. config.xml كما هو موضّح في config_customuserswitchui. نتيجة لذلك، أُنشئت مكتبة مات بلوت ليب في لا يعرض إطار العمل CarUserSwitchingDialog.

تخصيص شاشة القفل

شاشة القفل هي جزء لا يتجزأ من واجهة مستخدم النظام التي يمكن تخصيصها من قِبل المصنّع الأصلي للجهاز. لتخصيص المسار، ابدأ بالسمة frameworks/base/packages/CarSystemUI/.

تخصيص إعداد المستخدم لأول مرة

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