نمای کلی HMI

Android Automotive یک راه حل پلت فرم اطلاعات سرگرمی داخل خودرو است که با پروژه منبع باز Android (AOSP) ارائه شده است. مقالات موجود در این مبحث مفاهیم و مؤلفه‌های کلیدی ارائه شده توسط رابط کاربری سیستم خودروی Android و برنامه‌های اصلی مورد نیاز برای ایجاد یک سیستم رابط ماشین انسانی (HMI) مؤثر برای OEMها، توسعه‌دهندگان شخص ثالث و کاربران نهایی را معرفی می‌کنند.

  • راهنمای ادغام میزبان AOSP . App Host به برنامه‌های خودروی 3P اجازه می‌دهد تا اجزای رابط کاربری (UI) به سبک OEM را از طرف خود ارائه دهند.
  • ساختار تنظیمات خودرو Car Settings یک رابط کاربری بصری متمرکز بر خودرو، بهینه‌سازی‌های اولیه حواس‌پرتی راننده و نقاط ورودی سفارشی‌سازی اضافی برای OEM‌ها ارائه می‌کند.
  • راهنمای ادغام کتابخانه رابط کاربری خودرو . کتابخانه UI Car یک چارچوب توسعه UI را فراهم می کند تا همه برنامه های موجود در خودرو را قادر می سازد تا به سازگاری و سفارشی سازی دست یابند.
  • نمادهای سیستم نوار وضعیت را سفارشی کنید . نوار وضعیت جزئی از رابط کاربری سیستم اندروید است که برای نمایش مداوم اطلاعات مهم به کاربران استفاده می شود. با نحوه سفارشی کردن نمادهای سیستم نوار وضعیت آشنا شوید.
  • اعلان‌های سرآغاز با نحوه سفارشی کردن اعلان‌های Heads-Up آشنا شوید.
  • شماره گیر . از این برنامه سیستم اندروید برای اجرای یک تجربه بهینه سازی حواس پرتی (DO) برای تماس بلوتوث، مرور مخاطبین و مدیریت تماس استفاده کنید.
  • رسانه ها . تنها با چند تنظیمات و یک سرویس، توسعه دهندگان می توانند برنامه های رسانه موجود را گسترش دهند. در حالی که برنامه‌ها باید به الگوی Automotive Media پایبند باشند، توسعه‌دهندگان می‌توانند رنگ‌ها، فونت‌ها، نمادها و موارد دیگر را برای ایجاد تجربه‌ای با برند سفارشی کنند.
  • اطلاعیه . با نحوه تغییر ظاهر و پیکربندی اعلان ها آشنا شوید.

واژه شناسی

این اصطلاحات در HMI و مقالات مرتبط استفاده می شود:

مدت، اصطلاح تعریف
برنامه های اصلی مجموعه کلیدی از برنامه های کاربردی حیاتی برای عملکرد سیستم، از جمله تنظیمات، رادیو، HVAC، رسانه، شماره گیر و صفحه کلید.
سند تعریف سازگاری (CDD) شرایطی را که برای سازگاری دستگاه‌ها با آخرین نسخه اندروید باید رعایت شود را برمی‌شمارد.
مجموعه تست سازگاری (CTS) مجموعه آزمایشی رایگان، تجاری، که برای دانلود در Compatibility Test Suite Downloads موجود است.
سفارشی سازی تمرین اصلاح اجرای AOSP برای برآورده کردن الزامات یک OEM. به طور معمول، این شامل استفاده از همپوشانی منابع برای اعمال تغییرات زیبایی است و در عین حال از انطباق با CDD، CTS و همه دستورالعمل‌های مربوط به تجربه کاربر اطمینان حاصل می‌کند.
برنامه های قهرمان مجموعه‌ای از برنامه‌های کلیدی که برای همه جنبه‌های اندروید حیاتی هستند، از جمله عملکرد، قابلیت ارتقا، اکوسیستم توسعه‌دهنده شخص ثالث و کاربران نهایی. برنامه‌های Hero شامل اعلان‌ها، تنظیمات، رسانه و مرکز ارتباط/شماره‌گیر هستند. اجرای AOSP مربوطه باید از کیفیت تولید برخوردار باشد.
همپوشانی منابع برای تأثیرگذاری بر رندر رابط کاربری، از این مکانیسم برای جایگزینی رنگ ها، تغییر ابعاد، فعال کردن طراحی و اعمال منابع طرح بندی در زمان کامپایل (متداول ترین) یا در زمان اجرا (Runtime Resource Overlays (RRO)) استفاده کنید.
رابط کاربری سیستم رابط کاربری خارج از برنامه ای که به سیستم تعلق دارد، مانند نوار پیمایش، نوار وضعیت، صفحه قفل و گفتگوی صدا.
موضوع مجموعه‌ای از رنگ‌ها و سبک‌های مورد استفاده برای تعیین ظاهر و ظاهر اجزا و برنامه‌هایی که تم را به ارث می‌برند.
تجربه کاربری (UX) زمینه طراحی رابط کاربری (UI) و قابلیت استفاده آن.

سفارشی سازی

اجرای AOSP سیستم UI و سایر برنامه های اصلی سیستم به عنوان پایه ای قوی برای شروع فرآیند توسعه HMI عمل می کند. اعمال تغییر پیاده‌سازی AOSP (عمدتاً از طریق استفاده از پوشش‌های منابع) برای برآوردن الزامات نام تجاری، تجاری و قانونی یک OEM به عنوان سفارشی‌سازی نامیده می‌شود.

در حالی که سیستم کلی به گونه ای طراحی و ساخته شده است که انعطاف پذیر باشد، انتظار می رود اجزای مختلف به درجات مختلف سفارشی شوند:

  • رابط کاربری سیستم OEM می تواند پیاده سازی AOSP را در محدوده های ارائه شده توسط CDD و CTS و سایر دستورالعمل های UX قابل اجرا سفارشی یا جایگزین کند.

  • برنامه های سیستم غیر قهرمان (همچنین به عنوان مرجع شناخته می شود) . OEM ها می توانند پیاده سازی AOSP را سفارشی یا جایگزین کنند.

  • برنامه های قهرمان هر برنامه دارای مجموعه ای از دستورالعمل های شخصی سازی دقیق است. OEM ها به شدت تشویق می شوند که از پیاده سازی AOSP استفاده کنند و سپس آن را در محدوده های ارائه شده توسط این دستورالعمل ها سفارشی کنند.

پیکربندی چگالی

برای اطمینان از اینکه عناصر UI با توجه به پیکربندی نمایش فیزیکی به درستی ارائه می شوند، ویژگی چگالی باید روی سطلی ( نمایش متریک ها ) تنظیم شود که بیشتر با چگالی فیزیکی مطابقت دارد، مانند این ورودی در فایل ساخت:

PRODUCT_PROPERTY_OVERRIDES := \
        ro.sf.lcd_density=160

موتور محدودیت های UX

CarUxRestrictionsManager یک قلاب برای برنامه‌ها فراهم می‌کند تا به تغییرات مربوط به حالت رانندگی گوش دهند تا تجربه کاربر را به‌طور مناسب تغییر دهند. OEM ها می توانند فایل پیکربندی را در packages/services/Car/service/res/xml/car_ux_restrictions_map.xml پوشش دهند تا بر رفتار سیستم تأثیر بگذارند.

موضوع سیستم

موضوعی که مجموعه موارد پیش‌فرض در سراسر سیستم مانند رنگ‌ها و سبک‌های متن را تجویز می‌کند DeviceDefault است. OEM ها تشویق می شوند که فرآیند سفارشی سازی کلی را با تغییر موضوع DeviceDefault شروع کنند. به طور پیش‌فرض، رابط کاربری سیستم و همه برنامه‌های سیستم در AOSP از این موضوع به ارث می‌برند. برنامه‌های سیستمی توسعه‌یافته OEM نیز تشویق می‌شوند تا DeviceDefault را به ارث ببرند. انتظار نمی رود که برنامه های توسعه یافته شخص ثالث DeviceDefault را به ارث ببرند، بلکه از Theme.Car ارائه شده در کتابخانه androidx.car استفاده کنند. فایل ها به صورت زیر قرار دارند:

  • هسته . /frameworks/base/core/res/res/values/themes_device_defaults.xml
  • رنگ ها /frameworks/base/core/res/res/values/colors_car.xml
  • سبک ها /frameworks/base/core/res/res/values/styles_car.xml
  • روکش ماشین.
    /packages/services/Car/car_product/overlay/.../values/themes_device_defaults.xml

انتظار می رود OEM ها دارای ساختار همپوشانی موازی با فهرست car_product در فهرست فروشنده خود باشند که پوشش car_product را بیشتر گسترش می دهد.

برنامه تم Playground

این برنامه فرآیند سفارشی‌سازی تم DeviceDefault را با تجسم تمام ویژگی‌های تم در یک مکان ساده می‌کند. همچنین، با مقایسه نحوه نمایش سبک‌های خاص در این برنامه در مقایسه با سایر برنامه‌های سیستمی، توسعه‌دهندگان می‌توانند به سرعت مشکلات تم را رفع اشکال کنند. این برنامه در آدرس زیر موجود است:

  /packages/services/Car/tests/ThemePlayground

رابط کاربری سیستم

رابط کاربری سیستم شامل تمام رابط کاربری زیر /frameworks/base است، عمدتاً در /frameworks/base/packages/CarSystemUI . این شامل نوار پیمایش، نوار وضعیت، صفحه قفل، گفتگوی صدا، نان تست، انتخابگر کاربر و گفتگوهای مجوز است. OEM ها می توانند اجزای UI سیستم را به طور گسترده از طریق همپوشانی منابع و قالب بندی سفارشی کنند، مشروط بر اینکه هر کدام مطابق با الزامات CDD، CTS و سایر دستورالعمل های UX قابل اجرا باشد.

برنامه های کاربردی سیستم

Android Automotive شامل مجموعه ای از برنامه های اصلی سیستم است که برای عملکرد کلی سیستم حیاتی است. از این میان، مرکز ارتباطات، رسانه، اعلان‌ها و تنظیمات برنامه‌های قهرمان محسوب می‌شوند.

  • مرکز ارتباطات
  • تهویه مطبوع
  • IME (صفحه کلید)
  • لانچر (صفحه اصلی)
  • پخش کننده رسانه محلی
  • رسانه ها
  • پیام رسان
  • اطلاعیه
  • رادیو
  • تنظیمات

صفحه اصلی

صفحه اصلی، معروف به پرتاب خودرو ، صفحه فرود برای تجربه HMI است. پیاده‌سازی AOSP تنها به عنوان مرجع عمل می‌کند و انتظار می‌رود OEMها پیاده‌سازی را با خود جایگزین کنند، که غالباً ناوبری، پخش رسانه، ارتباطات و سایر حالت‌های سیستم را در صورت نیاز ترکیب می‌کند. اغلب، برنامه Car Launcher برنامه های موجود در سیستم را نمایش می دهد. برای یادگیری نحوه مدیریت رویدادهایی مانند موارد اخیر، تغییرات بسته و برنامه‌های بدون هد (بدون فعالیت راه‌انداز)، به پیاده‌سازی مرجع مراجعه کنید.

اطلاعیه

اعلان‌ها جزء جدایی‌ناپذیر سیستم‌عامل Android هستند و همان ساختارها (از جمله اعلان سرآغاز، فهرست/مرکز اعلان‌ها، APIهای اعلان، رتبه‌بندی و اقدامات درون خطی) در Android Automotive گنجانده شده‌اند. برای جزئیات، به نمای کلی اعلان‌های دستی مراجعه کنید. برای بهینه سازی موارد استفاده از خودرو، اصلاحات زیر انجام شده است (در مقایسه با پشته اعلان دستی):

  • کاهش در محتوای اعلان عمومی قابل مشاهده برای کاربران. حذف پخش مداوم رسانه، پیمایش مداوم، و اعلان‌های خدمات پیش‌زمینه «غیر مهم» (اهمیت LOW و پایین‌تر) برنامه‌های سیستم از فهرست/مرکز اعلان‌ها، با درک اینکه این اعلان‌ها یا اضافی هستند (مثلاً خوشه‌ای که وضعیت رسانه را نشان می‌دهد. ) یا مفید نیستند.

  • حذف کنترل‌های متنی پیچیده (مانند فشار طولانی و کنترل‌های مبتنی بر طول کشیدن انگشت).

  • رعایت پیکربندی موتور محدودیت های UX.

    • پیش‌نمایش محتوای اعلان پیام‌رسانی ممکن است بر اساس وضعیت درایو پنهان باشد.
    • تمام رشته ها حداکثر طول دارند.
  • اضافه شدن دسته‌های اعلان‌های جدید مخصوصاً برای اتومبیل‌ها در Android 9، فقط برای برنامه‌های سیستمی همراه که به‌عنوان android.uid.system اجرا می‌شوند در دسترس است.

  • CATEGORY_CAR_EMERGENCY . در بالای لیست اطلاع رسانی قرار گرفته است. کنترل‌های Do-Not-Disturb (DND) را دور می‌زند.

  • CATEGORY_CAR_WARNING . رتبه‌بندی پایین‌تر از موارد اضطراری و بالاتر از سایرین (با عبور از DND).
  • CATEGORY_CAR_INFORMATION . با بقیه اعلان ها بر اساس "اهمیت" و تازگی رتبه بندی شده است.

اجرای انتها به انتها پشته اعلان، از APIهای Notification گرفته تا UI، یک برنامه قهرمان در نظر گرفته می شود. برای تضمین قابلیت همکاری API ثابت در همه HU ها و به حداکثر رساندن قابلیت ارتقا، OEM ها به شدت تشویق می شوند که پیاده سازی AOSP را اتخاذ کنند و سپس آن را به راحتی سفارشی کنند.

سفارشی سازی

قالب استاندارد DeviceDefault و همپوشانی منابع اعمال می شود. تعداد بسیار محدودی از دستگیره های سفارشی سازی رفتاری در دسترس هستند:

packages/apps/Car/Notification/res/values/config.xml

تنظیمات

برنامه تنظیمات ( تنظیمات خودرو ) یکی از برنامه های قهرمان است که دستگیره ها را در معرض دید قرار می دهد، که کاربر می تواند از آن برای پیکربندی جنبه های سیستم عامل اندروید و بقیه ماشین استفاده کند. برنامه تنظیمات بیش از 200 ویژگی را در سیستم عامل نشان می دهد که با هر نسخه اصلی اندروید همراه هستند. برای فعال کردن قابلیت ارتقا و جلوگیری از تکه تکه شدن، OEM ها به شدت تشویق می شوند که پیاده سازی AOSP را بگیرند و سپس آن را سفارشی کنند (به جای اینکه پیاده سازی را فوراً انجام دهند).

سفارشی سازی

برنامه تنظیمات سفارشی‌سازی را در نظر می‌گیرد و چندین راه را برای سفارشی‌سازی در معرض دید قرار می‌دهد.

  • موضوع بندی. سفارشی‌سازی بصری نحوه نمایش هر نوع شی Preference را فعال می‌کند، از جمله:

    • Preference.DeviceDefault.CheckBoxPreference

    • Preference.DeviceDefault.DialogPreference.EditTextPreference

  • سفارشی سازی سلسله مراتب برای فعال کردن:

    • در یک قطعه ریشه دلخواه راه اندازی کنید، مقدار config_settings_hierarchy_root_fragment را در فایلی با عنوان Settings/res/values/config.xml قرار دهید.

    • سفارشی سازی مواردی مانند سفارش، گروه بندی، متن و نمادها، Settings/res/xml/*.xml

  • تزریق استاتیک. در حین راه اندازی یک پروژه همپوشانی، OEM ها می توانند صفحه های اختصاصی را با تعریف و سپس افزودن کلاس های Fragment و Controller اضافی به سلسله مراتب اضافه کنند.

  • تزریق دینامیک . اگر یک برنامه جداگانه ( apk ) میزبان یک صفحه تنظیمات است که باید از برنامه تنظیمات اصلی پیوند داده شود، برنامه جداگانه می تواند به صورت پویا تزریق شود. برای اطلاعات بیشتر، به تنظیمات دینامیک مراجعه کنید.

رسانه ها

Media یک برنامه قهرمان است که تجربه کاربر جلویی را از طرف برنامه های رسانه ای که API های MediaSession و MediaBrowser را پیاده سازی می کنند، ارائه می دهد. برنامه‌های رسانه می‌توانند برنامه‌های شخص ثالث (مانند Spotify و Pandora) و همچنین سایر منابع رسانه‌ای مانند پخش جریانی بلوتوث (BT) و رسانه‌های محلی باشند.

صدها برنامه رسانه در Android Auto ( Projection ) موجود است که همه آنها این APIهای رسانه را همانطور که در ارائه پخش صوتی برای خودکار توضیح داده شده است، پیاده سازی می کنند. API های رسانه با هر نسخه اصلی اندروید و با انتشار کتابخانه Androidx تکامل می یابند. برای تضمین قابلیت همکاری API در تمام برنامه‌های رسانه‌ای و نسخه‌های آینده اندروید، OEMها به شدت تشویق می‌شوند تا پیاده‌سازی AOSP را انجام دهند و سپس آن را سفارشی کنند.

سفارشی سازی

طرح زمینه استاندارد از طریق طرح زمینه DeviceDefault برای رسانه نیز اعمال می شود. علاوه بر این، سفارشی‌سازی بیشتر ظاهر و ظاهر با پوشش‌های منابع امکان‌پذیر است، مشروط بر اینکه سفارشی‌سازی در محدوده دستورالعمل‌های UX باشد.

سایر برنامه های رسانه ای

رسانه های USB و منابع رسانه ای

تا حد امکان، بسیار توصیه می شود که این منابع رسانه ای از طریق اجرای MediaSession و MediaBrowser API به Media متصل شوند (این در مورد هر برنامه رسانه شخص ثالث صادق است). برنامه LocalMediaPlayer را در AOSP ببینید. این برنامه فایل‌های رسانه محلی را نمایش می‌دهد و به عنوان منبع در رسانه نمایش داده می‌شود.