ภาพรวม HMI

Android Automotive เป็นโซลูชันแพลตฟอร์มสาระบันเทิงในรถยนต์ที่มาพร้อมกับ Android Open Source Project (AOSP) บทความในหัวข้อนี้จะแนะนำแนวคิดหลักและส่วนประกอบที่ได้รับจาก Android Automotive System UI และแอปหลักที่จำเป็นในการสร้างระบบ Human Machine Interface (HMI) ที่มีประสิทธิภาพสำหรับ OEM, นักพัฒนาบุคคลที่สาม และผู้ใช้ปลายทาง

  • คู่มือการรวมโฮสต์ AOSP App Host อนุญาตให้แอปรถยนต์ของ 3P แสดงผลส่วนประกอบอินเทอร์เฟซผู้ใช้ (UI) สไตล์ OEM ในนามของแอป
  • โครงสร้างการตั้งค่ารถยนต์ การตั้งค่ารถยนต์มีอินเทอร์เฟซผู้ใช้ที่มองเห็นรถยนต์เป็นศูนย์กลาง การเพิ่มประสิทธิภาพการรบกวนผู้ขับขี่ขั้นพื้นฐาน และจุดเริ่มต้นการปรับแต่งเพิ่มเติมสำหรับ OEM
  • คู่มือการรวมไลบรารี UI ของรถยนต์ ไลบรารี UI ของรถยนต์มีเฟรมเวิร์กการพัฒนา UI เพื่อช่วยให้แอพทั้งหมดที่มีอยู่ในรถมีความสอดคล้องและปรับแต่งได้
  • ปรับแต่งไอคอนระบบแถบสถานะ แถบสถานะเป็นส่วนประกอบของ UI ระบบ Android ที่ใช้แสดงข้อมูลสำคัญแก่ผู้ใช้อย่างต่อเนื่อง เรียนรู้วิธีปรับแต่งไอคอนระบบแถบสถานะ
  • การแจ้งเตือนล่วงหน้า เรียนรู้วิธีปรับแต่งการแจ้งเตือนล่วงหน้า
  • โปรแกรมโทรออก ใช้แอประบบ Android นี้เพื่อใช้ประสบการณ์การเพิ่มประสิทธิภาพการรบกวน (DO) สำหรับการโทรผ่านบลูทูธ การเรียกดูรายชื่อติดต่อ และการจัดการการโทร
  • สื่อ . ด้วยการตั้งค่าและบริการเพียงไม่กี่อย่าง นักพัฒนาจึงสามารถขยายแอพสื่อที่มีอยู่ได้ แม้ว่าแอพจะต้องเป็นไปตามเทมเพลต Automotive Media แต่นักพัฒนาก็สามารถปรับแต่งสีเทมเพลต แบบอักษร ไอคอน และอื่นๆ เพื่อสร้างประสบการณ์แบบแบรนด์ได้
  • การแจ้งเตือน เรียนรู้วิธีเปลี่ยนรูปลักษณ์และการกำหนดค่าของการแจ้งเตือน

คำศัพท์เฉพาะทาง

ข้อกำหนดเหล่านี้ใช้ใน HMI และบทความที่เกี่ยวข้อง:

ภาคเรียน คำนิยาม
แอพหลัก ชุดแอปหลักที่สำคัญต่อการทำงานของระบบ รวมถึงการตั้งค่า วิทยุ HVAC สื่อ โปรแกรมโทรออก และคีย์บอร์ด
เอกสารคำจำกัดความความเข้ากันได้ (CDD) ระบุข้อกำหนดที่ต้องปฏิบัติตามเพื่อให้อุปกรณ์เข้ากันได้กับ Android เวอร์ชันล่าสุด
ชุดทดสอบความเข้ากันได้ (CTS) ชุดทดสอบเชิงพาณิชย์ฟรี พร้อมให้ดาวน์โหลดแล้วที่ ดาวน์โหลดชุดทดสอบความเข้ากัน ได้
การปรับแต่ง แบบฝึกหัดการปรับเปลี่ยนการนำ AOSP ไปใช้ให้ตรงตามข้อกำหนดของ OEM โดยทั่วไป สิ่งนี้เกี่ยวข้องกับการใช้การซ้อนทับทรัพยากรเพื่อใช้การเปลี่ยนแปลงที่สวยงาม ในขณะเดียวกันก็รับประกันการปฏิบัติตาม CDD, CTS และแนวทางประสบการณ์ผู้ใช้ที่เกี่ยวข้องทั้งหมด
แอพฮีโร่ ชุดแอปหลักที่สำคัญต่อทุกด้านของ Android รวมถึงฟังก์ชันการทำงาน ความสามารถในการอัปเกรด ระบบนิเวศของนักพัฒนาบุคคลที่สาม และผู้ใช้ปลายทาง แอพฮีโร่ประกอบด้วยการแจ้งเตือน การตั้งค่า สื่อ และศูนย์การสื่อสาร/ตัวโทรออก การใช้งาน AOSP ที่สอดคล้องกันควรมีคุณภาพการผลิต
การซ้อนทับทรัพยากร หากต้องการส่งผลต่อการเรนเดอร์อินเทอร์เฟซผู้ใช้ ให้ใช้กลไกนี้เพื่อเปลี่ยนสี เปลี่ยนขนาด เปิดใช้งานการวาด และใช้ทรัพยากรเลย์เอาต์ใน เวลาคอมไพล์ (ทั่วไปที่สุด) หรือขณะรันไทม์ (Runtime Resource Overlays (RRO))
UI ของระบบ อินเทอร์เฟซผู้ใช้ภายนอกแอปที่เป็นของระบบ เช่น แถบนำทาง แถบสถานะ หน้าจอล็อค และกล่องโต้ตอบระดับเสียง
ธีม คอลเลกชันสีและสไตล์ที่ใช้ในการกำหนดรูปลักษณ์ของส่วนประกอบและแอปที่สืบทอดธีม
ประสบการณ์ผู้ใช้ (UX) สาขาการออกแบบส่วนติดต่อผู้ใช้ (UI) และการใช้งาน

การปรับแต่ง

การใช้ AOSP ของ System UI และแอประบบหลักอื่นๆ ทำหน้าที่เป็นรากฐานที่แข็งแกร่งสำหรับการเริ่มต้นกระบวนการพัฒนา HMI การปรับเปลี่ยนการใช้งาน AOSP (โดยหลักๆ ผ่านการใช้ทรัพยากรซ้อนทับ) เพื่อให้เป็นไปตามข้อกำหนดด้านตราสินค้า ธุรกิจ และกฎหมายของ OEM เรียกว่า การปรับแต่ง

แม้ว่าระบบโดยรวมจะได้รับการออกแบบและสร้างขึ้นให้มีความยืดหยุ่น แต่ส่วนประกอบต่างๆ คาดว่าจะได้รับการปรับแต่งตามระดับที่แตกต่างกัน:

  • UI ของระบบ OEM สามารถปรับแต่งหรือแทนที่การใช้งาน AOSP ภายในขอบเขตที่กำหนดโดย CDD และ CTS และแนวทางปฏิบัติ UX อื่น ๆ ที่เกี่ยวข้อง

  • แอประบบที่ไม่ใช่ฮีโร่ (หรือที่เรียกว่า ข้อมูลอ้างอิง ) OEM สามารถปรับแต่งหรือแทนที่การใช้งาน AOSP ได้

  • แอพฮีโร่ แต่ละแอปมาพร้อมกับชุดแนวทางการปรับแต่งโดยละเอียด OEM ได้รับการสนับสนุนอย่างยิ่งให้ใช้การนำ AOSP ไปใช้ จากนั้นปรับแต่งภายในขอบเขตที่กำหนดโดยแนวปฏิบัติเหล่านั้น

การกำหนดค่าความหนาแน่น

เพื่อให้แน่ใจว่าองค์ประกอบ UI จะแสดงผลอย่างถูกต้องตามการกำหนดค่าการแสดงผลจริง ต้องตั้งค่าคุณสมบัติความหนาแน่นเป็นบัคเก็ต ( Display Metrics ) ที่ตรงกับความหนาแน่นทางกายภาพมากที่สุด เช่น รายการนี้ในไฟล์บิลด์:

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 ตามค่าเริ่มต้น UI ของระบบและแอประบบทั้งหมดใน 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 เพิ่มเติม

แอพ Theme Playground

แอปนี้ปรับปรุงกระบวนการปรับแต่งธีม DeviceDefault ให้ดีขึ้นโดยการแสดงภาพคุณลักษณะของธีมทั้งหมดในที่เดียว นอกจากนี้ นักพัฒนาสามารถแก้ไขปัญหาธีมได้อย่างรวดเร็วโดยการเปรียบเทียบการแสดงผลสไตล์บางสไตล์ในแอปนี้เมื่อเปรียบเทียบกับแอประบบอื่นๆ แอพนี้สามารถดูได้ที่:

  /packages/services/Car/tests/ThemePlayground

UI ของระบบ

System UI รวม UI ทั้งหมดภายใต้ /frameworks/base โดยส่วนใหญ่อยู่ใน /frameworks/base/packages/CarSystemUI ซึ่งรวมถึงแถบนำทาง แถบสถานะ หน้าจอล็อค กล่องโต้ตอบระดับเสียง โทสต์ ตัวเลือกผู้ใช้ และกล่องโต้ตอบสิทธิ์ OEM สามารถปรับแต่งส่วนประกอบ UI ของระบบได้อย่างกว้างขวางผ่านการซ้อนทับและธีมของทรัพยากร โดยที่แต่ละองค์ประกอบต้องอยู่ภายในข้อกำหนดของ CDD, CTS และแนวทาง UX อื่นๆ ที่เกี่ยวข้อง

แอพระบบ

Android Automotive ประกอบด้วยชุดแอประบบหลักที่สำคัญต่อการทำงานของระบบโดยรวม ในจำนวนนี้ ศูนย์การสื่อสาร สื่อ การแจ้งเตือน และการตั้งค่า ถือเป็นแอป ฮีโร่

  • ศูนย์สื่อสาร
  • เครื่องปรับอากาศ
  • IME (แป้นพิมพ์)
  • ตัวเรียกใช้ (หน้าจอหลัก)
  • เครื่องเล่นสื่อท้องถิ่น
  • สื่อ
  • ผู้สื่อสาร
  • การแจ้งเตือน
  • วิทยุ
  • การตั้งค่า

หน้าจอหลัก

หน้าจอหลักหรือที่เรียกว่า Car Launcher คือหน้า Landing Page สำหรับประสบการณ์ HMI การใช้งาน AOSP ทำหน้าที่เป็นข้อมูลอ้างอิงเท่านั้น และ OEM คาดว่าจะแทนที่การใช้งานด้วยตนเอง ซึ่งมักจะรวมการนำทาง การเล่นสื่อ การสื่อสาร และสถานะของระบบอื่น ๆ ตามความจำเป็น บ่อยครั้งที่แอป Car Launcher จะแสดงแอปที่มีอยู่ในระบบ หากต้องการเรียนรู้วิธีจัดการกับเหตุการณ์ต่างๆ เช่น ล่าสุด การเปลี่ยนแปลงแพ็กเกจ และแอป ที่ไม่มีส่วนหัว (ไม่มีกิจกรรมตัวเรียกใช้งาน) โปรดดูการใช้งานข้อมูลอ้างอิง

การแจ้งเตือน

การแจ้งเตือนเป็นองค์ประกอบสำคัญของระบบปฏิบัติการ Android และโครงสร้างเดียวกัน (รวมถึงการแจ้งเตือนล่วงหน้า รายการ/ศูนย์การแจ้งเตือน API การแจ้งเตือน การจัดอันดับ และการดำเนินการแบบอินไลน์) ได้รวมอยู่ใน Android Automotive แล้ว สำหรับรายละเอียด โปรดดู ภาพรวมการแจ้งเตือน บนมือถือ เพื่อเพิ่มประสิทธิภาพกรณีการใช้งานด้านยานยนต์ จึงมีการปรับเปลี่ยนดังต่อไปนี้ (เมื่อเทียบกับกลุ่มการแจ้งเตือนแบบมือถือ):

  • ลดเนื้อหาการแจ้งเตือนโดยรวมที่ผู้ใช้มองเห็นได้ การลบการเล่นสื่อที่กำลังดำเนินอยู่ การนำทางอย่างต่อเนื่อง และการแจ้งเตือนบริการเบื้องหน้า "ไม่สำคัญ" (ความสำคัญของ LOW และต่ำกว่า) ของแอประบบจากรายการการแจ้งเตือน/ศูนย์ ด้วยความเข้าใจว่าการแจ้งเตือนเหล่านี้ซ้ำซ้อน (เช่น คลัสเตอร์ที่แสดงสถานะสื่อ ) หรือไม่มีประโยชน์

  • การลบการควบคุมตามบริบทที่ซับซ้อน (เช่น การกดแบบยาวและการควบคุมตามความยาวการปัด)

  • เคารพการกำหนดค่ากลไกการจำกัด UX

    • การแสดงตัวอย่างเนื้อหาการแจ้งเตือนข้อความอาจถูกซ่อนตามสถานะไดรฟ์
    • สตริงทั้งหมดต่อยอดที่ความยาวสูงสุด
  • การเพิ่มหมวดหมู่การแจ้งเตือนใหม่สำหรับรถยนต์ใน Android 9 โดยเฉพาะ มีให้เฉพาะกับแอประบบที่รวมกลุ่มซึ่งทำงานเป็น android.uid.system เท่านั้น

  • CATEGORY_CAR_EMERGENCY อยู่ในอันดับต้นๆ ของรายการแจ้งเตือน ข้ามการควบคุมห้ามรบกวน (DND)

  • CATEGORY_CAR_WARNING อยู่ในอันดับที่ต่ำกว่าเหตุฉุกเฉินและเหนือสิ่งอื่นใด (ข้าม DND)
  • CATEGORY_CAR_INFORMATION จัดอันดับด้วยการแจ้งเตือนที่เหลือตาม "ความสำคัญ" และความใหม่

การใช้งานสแต็กการแจ้งเตือนตั้งแต่ต้นทางถึงปลายทาง ตั้งแต่ API การแจ้งเตือนไปจนถึง UI ถือเป็นแอป ฮีโร่ เพื่อรับประกันความสามารถในการทำงานร่วมกันของ API ที่สอดคล้องกันใน HU ทั้งหมด และเพื่อเพิ่มความสามารถในการอัปเกรดสูงสุด OEM ขอแนะนำอย่างยิ่งให้ใช้งาน AOSP แล้วปรับแต่งเพียงเล็กน้อย

การปรับแต่ง

ใช้ธีม DeviceDefault มาตรฐานและการซ้อนทับทรัพยากร ปุ่มปรับแต่งพฤติกรรมมีจำนวนจำกัดมากที่:

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

การตั้งค่า

แอปการตั้งค่า ( การตั้งค่ารถยนต์ ) เป็นหนึ่งในแอป ฮีโร่ ที่แสดงปุ่มควบคุม ซึ่งผู้ใช้สามารถใช้เพื่อกำหนดค่าแง่มุมต่างๆ ของระบบปฏิบัติการ Android และส่วนอื่นๆ ของรถได้ แอปการตั้งค่าเผยให้เห็นฟีเจอร์มากกว่า 200 รายการในระบบปฏิบัติการ ซึ่งเชื่อมโยงอย่างแน่นหนากับ Android รุ่นหลักแต่ละรุ่น เพื่อเปิดใช้งานความสามารถในการอัปเกรดและเพื่อหลีกเลี่ยงการกระจายตัว OEM ได้รับการสนับสนุนอย่างยิ่งให้ใช้งาน AOSP แล้วปรับแต่ง (แทนที่จะแยกการใช้งาน)

การปรับแต่ง

แอปการตั้งค่าคำนึงถึงการปรับแต่งและเปิดเผยช่องทางต่างๆ สำหรับการปรับแต่ง

  • ธีม เปิดใช้งานการปรับแต่งภาพวิธีการเรนเดอร์ออบเจ็กต์การตั้งค่าแต่ละประเภท รวมถึง:

    • 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 เป็นแอป ฮีโร่ ที่มอบประสบการณ์ผู้ใช้ส่วนหน้าในนามของแอปสื่อที่ใช้ MediaSession และ MediaBrowser API แอพสื่ออาจเป็นแอพของบุคคลที่สาม (เช่น Spotify และ Pandora) รวมถึงแหล่งสื่ออื่น ๆ เช่น การสตรีม Bluetooth (BT) และสื่อในเครื่อง

แอพสื่อหลายร้อยรายการพร้อมใช้งานใน Android Auto ( Projection ) ซึ่งทั้งหมดใช้ API สื่อเหล่านี้ตามที่อธิบายไว้ใน การให้การเล่นเสียงสำหรับรถยนต์ Media API พัฒนาไปตามรุ่น Android หลักแต่ละรุ่นและไลบรารี Androidx รุ่น ต่างๆ เพื่อรับประกันการทำงานร่วมกันของ API ในแอปสื่อทั้งหมดและ Android เวอร์ชันในอนาคต เราขอแนะนำให้ OEM ใช้งาน AOSP แล้วปรับแต่ง

การปรับแต่ง

ธีมมาตรฐานผ่านธีม DeviceDefault ยังใช้กับสื่อด้วย นอกจากนี้ การปรับแต่งรูปลักษณ์เพิ่มเติมยังสามารถทำได้ด้วยการซ้อนทับทรัพยากร หากการปรับแต่งนั้นอยู่ภายในขอบเขตของแนวทาง UX

สื่อ USB และแหล่งสื่อ

เท่าที่เป็นไปได้ ขอแนะนำเป็นอย่างยิ่งให้เสียบแหล่งสื่อเหล่านี้เข้ากับสื่อผ่านการใช้งาน MediaSession และ MediaBrowser API (ซึ่งเป็นจริงกับแอปสื่อของบริษัทอื่น) ดูแอป LocalMediaPlayer ใน AOSP แอปนี้แสดงไฟล์สื่อในเครื่องและแสดงเป็นแหล่งในสื่อ