ภาพรวม HMI

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

  • คู่มือการผสานรวมโฮสต์ AOSP โฮสต์แอปอนุญาตให้แอปสำหรับรถยนต์ของบุคคลที่สามแสดงผลองค์ประกอบอินเทอร์เฟซผู้ใช้ (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 ใน UI ของระบบและแอประบบหลักอื่นๆ ถือเป็น ในการเริ่มกระบวนการพัฒนา HMI การดำเนินการปรับเปลี่ยน AOSP (ผ่านการใช้การวางซ้อนทรัพยากรเป็นหลัก) เพื่อให้เป็นไปตามแบรนด์ของ OEM ธุรกิจ และข้อกำหนดทางกฎหมายเรียกว่าการปรับแต่ง

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

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

  • แอประบบที่ไม่ใช่ Hero (หรือที่เรียกว่าการอ้างอิง) 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 โดยค่าเริ่มต้น UI ของระบบและแอประบบทั้งหมดใน AOSP จะรับค่าจาก ธีมนี้ นอกจากนี้ เราขอแนะนำให้แอประบบที่ OEM พัฒนาขึ้นมาด้วยเพื่อรับค่า DeviceDefault บุคคลที่สาม แอปที่พัฒนาขึ้นมาจะไม่รับค่า DeviceDefault แต่จะใช้ Theme.Car แทน ไว้ในไลบรารี androidx.car ซึ่งจะพบข้อมูลต่อไปนี้

  • Core /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

UI ของระบบ

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

แอประบบ

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

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

หน้าจอหลัก

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

สื่อ

สื่อคือแอปหลักที่มอบประสบการณ์ของผู้ใช้ส่วนหน้าในนามของสื่อ แอปที่ใช้ MediaSession และ MediaBrowser API แอปสื่ออาจเป็นแอปของบุคคลที่สาม (เช่น Spotify และ Pandora) รวมถึงแอปอื่นๆ แหล่งที่มาของสื่อ เช่น การสตรีมผ่านบลูทูธ (BT) และสื่อในเครื่อง

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

การปรับแต่ง

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

สื่อ USB และแหล่งที่มาของสื่อ

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