Tổng quan về HMI

Android Automotive là giải pháp nền tảng thông tin giải trí trên ô tô được cung cấp cùng với Dự án mã nguồn mở Android (AOSP). Các bài viết trong chủ đề này giới thiệu các khái niệm và thành phần chính do giao diện người dùng của Hệ thống ô tô Android cung cấp cũng như các ứng dụng cốt lõi cần thiết để xây dựng hệ thống Giao diện người máy (HMI) hiệu quả cho OEM, nhà phát triển bên thứ ba và người dùng cuối.

  • Hướng dẫn tích hợp máy chủ AOSP . Máy chủ ứng dụng cho phép các ứng dụng ô tô 3P thay mặt nó hiển thị các thành phần giao diện người dùng (UI) theo kiểu OEM.
  • Cấu trúc cài đặt ô tô . Cài đặt ô tô cung cấp giao diện người dùng trực quan lấy ô tô làm trung tâm, tối ưu hóa sự phân tâm cơ bản của người lái xe và các điểm nhập tùy chỉnh bổ sung cho các OEM.
  • Hướng dẫn tích hợp thư viện giao diện người dùng ô tô . Thư viện giao diện người dùng ô tô cung cấp khung phát triển giao diện người dùng để cho phép tất cả các ứng dụng có trong ô tô đạt được tính nhất quán và tùy chỉnh.
  • Tùy chỉnh các biểu tượng hệ thống trên thanh trạng thái . Thanh trạng thái là một thành phần của Giao diện người dùng hệ thống Android được sử dụng để hiển thị liên tục thông tin quan trọng cho người dùng. Tìm hiểu cách tùy chỉnh các biểu tượng hệ thống trên Thanh trạng thái.
  • Thông báo cảnh báo . Tìm hiểu cách tùy chỉnh Thông báo cảnh báo.
  • Trình quay số . Sử dụng ứng dụng hệ thống Android này để triển khai trải nghiệm được tối ưu hóa giúp phân tâm (DO) khi gọi qua Bluetooth, duyệt liên hệ và quản lý cuộc gọi.
  • Phương tiện truyền thông . Chỉ với một vài cài đặt và dịch vụ, nhà phát triển có thể mở rộng các ứng dụng đa phương tiện hiện có. Mặc dù các ứng dụng phải tuân theo mẫu Automotive Media, nhưng nhà phát triển có thể tùy chỉnh màu sắc, phông chữ, biểu tượng, v.v. của mẫu để tạo ra trải nghiệm có thương hiệu.
  • Thông báo . Tìm hiểu cách thay đổi giao diện và cấu hình của thông báo.

Thuật ngữ

Các thuật ngữ này được sử dụng trong HMI và các bài viết liên quan:

Thuật ngữ Sự định nghĩa
Ứng dụng cốt lõi Bộ khóa gồm các ứng dụng quan trọng đối với chức năng của hệ thống, bao gồm Cài đặt, Radio, HVAC, Phương tiện, Trình quay số và Bàn phím.
Tài liệu định nghĩa khả năng tương thích (CDD) Liệt kê các yêu cầu phải đáp ứng để thiết bị tương thích với phiên bản Android mới nhất.
Bộ kiểm tra khả năng tương thích (CTS) Bộ thử nghiệm miễn phí, cấp thương mại, có sẵn để tải xuống tại Tải xuống Bộ thử nghiệm tương thích .
Tùy chỉnh Việc thực hiện sửa đổi việc triển khai AOSP để đáp ứng các yêu cầu của OEM. Thông thường, điều này liên quan đến việc sử dụng lớp phủ tài nguyên để áp dụng các thay đổi về mặt thẩm mỹ đồng thời đảm bảo tuân thủ CDD, CTS và tất cả nguyên tắc Trải nghiệm người dùng có liên quan.
Ứng dụng anh hùng Một bộ ứng dụng chính quan trọng đối với tất cả các khía cạnh của Android, bao gồm chức năng, khả năng nâng cấp, hệ sinh thái nhà phát triển bên thứ ba và người dùng cuối. Các ứng dụng chính bao gồm Thông báo, Cài đặt, Phương tiện và Trung tâm Giao tiếp/Quay số. Việc triển khai AOSP tương ứng phải có chất lượng sản xuất.
Lớp phủ tài nguyên Để tác động đến việc hiển thị giao diện người dùng, hãy sử dụng cơ chế này để thay thế màu sắc, thay đổi kích thước, bật bản vẽ và áp dụng tài nguyên bố cục tại thời điểm biên dịch (phổ biến nhất) hoặc trong thời gian chạy (Lớp phủ tài nguyên thời gian chạy (RRO)).
Giao diện người dùng hệ thống Giao diện người dùng bên ngoài một ứng dụng thuộc hệ thống, chẳng hạn như thanh điều hướng, thanh trạng thái, màn hình khóa và hộp thoại âm lượng.
chủ đề Một tập hợp các màu sắc và kiểu dáng được sử dụng để xác định giao diện của các thành phần và ứng dụng kế thừa chủ đề.
Trải nghiệm người dùng (UX) Lĩnh vực thiết kế Giao diện người dùng (UI) và khả năng sử dụng của nó.

Tùy chỉnh

Việc triển khai AOSP của Giao diện người dùng hệ thống và các ứng dụng hệ thống cốt lõi khác đóng vai trò là nền tảng vững chắc để bắt đầu quá trình phát triển HMI. Việc thực hiện sửa đổi việc triển khai AOSP (chủ yếu thông qua việc sử dụng lớp phủ tài nguyên) để đáp ứng các yêu cầu về thương hiệu, kinh doanh và pháp lý của OEM được gọi là tùy chỉnh .

Mặc dù hệ thống tổng thể được thiết kế và xây dựng linh hoạt nhưng các thành phần khác nhau dự kiến ​​sẽ được tùy chỉnh theo các mức độ khác nhau:

  • Giao diện người dùng hệ thống. OEM có thể tùy chỉnh hoặc thay thế việc triển khai AOSP trong giới hạn mà CDD và CTS cũng như bất kỳ nguyên tắc UX hiện hành nào khác cung cấp.

  • Ứng dụng hệ thống phi anh hùng (còn được gọi là tài liệu tham khảo ) . OEM có thể tùy chỉnh hoặc thay thế việc triển khai AOSP.

  • Ứng dụng anh hùng Mỗi ứng dụng đi kèm với một bộ hướng dẫn tùy chỉnh chi tiết. Các OEM được đặc biệt khuyến khích sử dụng triển khai AOSP và sau đó tùy chỉnh nó trong giới hạn mà các nguyên tắc đó đưa ra.

Cấu hình mật độ

Để đảm bảo rằng các thành phần giao diện người dùng hiển thị chính xác theo cấu hình hiển thị vật lý, thuộc tính mật độ phải được đặt thành nhóm ( Display Metrics ) khớp với mật độ vật lý nhất, chẳng hạn như mục nhập này trong tệp bản dựng:

PRODUCT_PROPERTY_OVERRIDES := \
        ro.sf.lcd_density=160

Công cụ hạn chế UX

CarUxRestrictionsManager cung cấp một hook để các ứng dụng lắng nghe những thay đổi liên quan đến trạng thái lái xe nhằm sửa đổi trải nghiệm người dùng một cách thích hợp. OEM có thể phủ tệp cấu hình tại packages/services/Car/service/res/xml/car_ux_restrictions_map.xml để tác động đến hoạt động của hệ thống.

Chủ đề hệ thống

Chủ đề quy định tập hợp các mục mặc định trên toàn hệ thống như màu sắc và kiểu văn bản là DeviceDefault . Các OEM được khuyến khích bắt đầu quá trình tùy chỉnh tổng thể bằng cách sửa đổi chủ đề DeviceDefault. Theo mặc định, giao diện người dùng hệ thống và tất cả các ứng dụng hệ thống trong AOSP đều kế thừa từ chủ đề này. Các ứng dụng hệ thống do OEM phát triển cũng được khuyến khích kế thừa DeviceDefault. Các ứng dụng do bên thứ ba phát triển dự kiến ​​sẽ không kế thừa DeviceDefault mà thay vào đó sẽ sử dụng Theme.Car được cung cấp trong thư viện androidx.car . Các tập tin được định vị như sau:

  • Cốt lõi . /frameworks/base/core/res/res/values/themes_device_defaults.xml
  • Màu sắc . /frameworks/base/core/res/res/values/colors_car.xml
  • Phong cách . /frameworks/base/core/res/res/values/styles_car.xml
  • Lớp phủ xe.
    /packages/services/Car/car_product/overlay/.../values/themes_device_defaults.xml

Các OEM dự kiến ​​sẽ có cấu trúc lớp phủ song song với thư mục car_product trong thư mục nhà cung cấp của họ để mở rộng hơn nữa lớp phủ car_product .

Ứng dụng sân chơi chủ đề

Ứng dụng này hợp lý hóa quá trình tùy chỉnh chủ đề DeviceDefault bằng cách trực quan hóa tất cả các thuộc tính chủ đề ở một nơi. Ngoài ra, bằng cách so sánh cách hiển thị một số kiểu nhất định trong ứng dụng này với các ứng dụng hệ thống khác, nhà phát triển có thể nhanh chóng gỡ lỗi các vấn đề về chủ đề. Ứng dụng này có sẵn tại:

  /packages/services/Car/tests/ThemePlayground

Giao diện người dùng hệ thống

Giao diện người dùng hệ thống bao gồm tất cả giao diện người dùng trong /frameworks/base , chủ yếu trong /frameworks/base/packages/CarSystemUI . Điều này bao gồm thanh Điều hướng, thanh trạng thái, màn hình khóa, hộp thoại âm lượng, chúc mừng, bộ chọn người dùng và hộp thoại cấp phép. OEM có thể tùy chỉnh rộng rãi các thành phần giao diện người dùng hệ thống thông qua các lớp phủ tài nguyên và chủ đề, miễn là mỗi thành phần đều nằm trong yêu cầu của CDD, CTS và các nguyên tắc UX hiện hành khác.

Ứng dụng hệ thống

Android Automotive bao gồm một tập hợp các ứng dụng hệ thống cốt lõi quan trọng đối với chức năng tổng thể của hệ thống. Trong số này, Trung tâm giao tiếp, Phương tiện, Thông báo và Cài đặt được coi là những ứng dụng anh hùng .

  • Trung tâm Truyền thông
  • HVAC
  • IME (bàn phím)
  • Trình khởi chạy (màn hình chính)
  • Trình phát phương tiện cục bộ
  • Phương tiện truyền thông
  • Tin nhắn
  • Thông báo
  • Đài
  • Cài đặt

Màn hình chính

Màn hình chính, còn được gọi là Trình khởi chạy ô tô , là trang đích dành cho trải nghiệm HMI. Việc triển khai AOSP chỉ đóng vai trò tham khảo và các OEM dự kiến ​​sẽ thay thế việc triển khai bằng cách triển khai của riêng họ, thường kết hợp điều hướng, phát lại phương tiện, liên lạc và các trạng thái hệ thống khác, nếu cần. Thông thường, ứng dụng Car Launcher sẽ hiển thị các ứng dụng có sẵn trên hệ thống. Để tìm hiểu cách xử lý các sự kiện như gần đây, thay đổi gói và ứng dụng không có giao diện người dùng (không có Hoạt động của trình khởi chạy), hãy xem phần triển khai tham khảo.

Thông báo

Thông báo là một thành phần không thể thiếu của Hệ điều hành Android và các cấu trúc tương tự (bao gồm thông báo quan trọng, danh sách/trung tâm thông báo, API thông báo, xếp hạng và hành động nội tuyến) đã được đưa vào Android Automotive. Để biết chi tiết, hãy xem Tổng quan về thông báo cầm tay. Để tối ưu hóa các trường hợp sử dụng ô tô, những sửa đổi sau đã được thực hiện (so với ngăn xếp thông báo cầm tay):

  • Giảm nội dung thông báo tổng thể hiển thị cho người dùng. Loại bỏ hoạt động phát lại phương tiện đang diễn ra, điều hướng liên tục và thông báo dịch vụ nền trước "không quan trọng" (tầm quan trọng ở mức THẤP trở xuống) của các ứng dụng hệ thống khỏi danh sách/trung tâm thông báo, với hiểu biết rằng những thông báo này hoặc được tạo thành dư thừa (ví dụ: cụm hiển thị trạng thái phương tiện ) hoặc không hữu ích.

  • Loại bỏ các điều khiển theo ngữ cảnh phức tạp (chẳng hạn như các điều khiển dựa trên thao tác nhấn và vuốt theo chiều dài).

  • Tôn trọng cấu hình công cụ Hạn chế UX.

    • Bản xem trước nội dung thông báo tin nhắn có thể bị ẩn dựa trên trạng thái ổ đĩa.
    • Tất cả các chuỗi được giới hạn ở độ dài tối đa.
  • Bổ sung các danh mục thông báo mới dành riêng cho ô tô trong Android 9, chỉ khả dụng cho các ứng dụng hệ thống đi kèm chạy dưới dạng android.uid.system .

  • CATEGORY_CAR_EMERGENCY . Được xếp ở đầu danh sách thông báo. Bỏ qua các điều khiển Không làm phiền (DND).

  • CATEGORY_CAR_WARNING . Được xếp hạng dưới trường hợp khẩn cấp và cao hơn các trường hợp khác (bỏ qua DND).
  • CATEGORY_CAR_INFORMATION . Được xếp hạng với các thông báo còn lại dựa trên "tầm quan trọng" và mức độ gần đây.

Việc triển khai từ đầu đến cuối của ngăn xếp thông báo, từ API thông báo đến giao diện người dùng, được coi là một ứng dụng anh hùng . Để đảm bảo khả năng tương tác API nhất quán trên tất cả các HU và để tối đa hóa khả năng nâng cấp, các OEM được khuyến khích triển khai AOSP và sau đó tùy chỉnh nó một cách nhẹ nhàng.

Tùy chỉnh

Áp dụng lớp phủ tài nguyên và chủ đề DeviceDefault tiêu chuẩn. Một số lượng rất hạn chế các nút tùy chỉnh hành vi có sẵn tại:

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

Cài đặt

Ứng dụng Cài đặt ( Cài đặt ô tô ) là một trong những ứng dụng chính hiển thị các nút bấm mà người dùng có thể sử dụng để định cấu hình các khía cạnh của hệ điều hành Android và phần còn lại của ô tô. Ứng dụng Cài đặt hiển thị hơn 200 tính năng trong HĐH, được kết hợp chặt chẽ với mỗi bản phát hành Android chính. Để cho phép nâng cấp và tránh phân mảnh, các OEM được khuyến khích thực hiện triển khai AOSP và sau đó tùy chỉnh nó (thay vì phân nhánh việc triển khai).

Tùy chỉnh

Ứng dụng Cài đặt có tính đến khả năng tùy chỉnh và đưa ra một số cách để tùy chỉnh.

  • Theo chủ đề. Cho phép tùy chỉnh trực quan về cách hiển thị từng loại đối tượng Tùy chọn, bao gồm:

    • Preference.DeviceDefault.CheckBoxPreference

    • Preference.DeviceDefault.DialogPreference.EditTextPreference

  • Tùy chỉnh hệ thống phân cấp. Để kích hoạt:

    • Khởi chạy vào một đoạn gốc tùy ý, phủ giá trị của config_settings_hierarchy_root_fragment vào tệp có tên Settings/res/values/config.xml

    • Tùy chỉnh các mục như thứ tự, nhóm, văn bản và biểu tượng, lớp phủ Cài Settings/res/xml/*.xml

  • Tiêm tĩnh điện. Trong khi thiết lập dự án lớp phủ, OEM có thể thêm các màn hình độc quyền bằng cách xác định, sau đó thêm các lớp Phân đoạn và Bộ điều khiển bổ sung vào hệ thống phân cấp.

  • Tiêm động . Nếu một ứng dụng riêng biệt ( apk ) lưu trữ màn hình Cài đặt phải được liên kết từ ứng dụng Cài đặt chính thì ứng dụng riêng biệt đó có thể được đưa vào một cách linh hoạt. Để biết thêm thông tin, hãy xem Tùy chọn động .

Phương tiện truyền thông

Media là một ứng dụng chính cung cấp trải nghiệm người dùng ngoại vi thay mặt cho các ứng dụng truyền thông triển khai API MediaSessionMediaBrowser . Ứng dụng phương tiện có thể là ứng dụng của bên thứ ba (như Spotify và Pandora) cũng như các nguồn phương tiện khác, chẳng hạn như phát trực tuyến Bluetooth (BT) và phương tiện cục bộ.

Hàng trăm ứng dụng đa phương tiện có sẵn trong Android Auto ( Projection ), tất cả đều triển khai các API phương tiện này như được mô tả trong Cung cấp tính năng phát lại âm thanh cho Auto . API phương tiện phát triển theo từng bản phát hành Android chính và với các bản phát hành của thư viện Androidx . Để đảm bảo khả năng tương tác API trên tất cả các ứng dụng đa phương tiện và các phiên bản Android trong tương lai, các OEM được khuyến khích thực hiện triển khai AOSP và sau đó tùy chỉnh nó.

Tùy chỉnh

Chủ đề tiêu chuẩn thông qua chủ đề DeviceDefault cũng áp dụng cho Media. Ngoài ra, có thể tùy chỉnh thêm giao diện bằng các lớp phủ tài nguyên, miễn là việc tùy chỉnh nằm trong giới hạn của nguyên tắc UX.

Ứng dụng truyền thông khác

Nguồn phương tiện và phương tiện USB

Trong phạm vi có thể, chúng tôi khuyên bạn nên cắm các nguồn phương tiện này vào Phương tiện thông qua việc triển khai API MediaSessionMediaBrowser (điều này đúng với mọi ứng dụng phương tiện của bên thứ ba). Xem ứng dụng LocalMediaPlayer trong AOSP. Ứng dụng này hiển thị các tệp phương tiện cục bộ và được hiển thị dưới dạng nguồn trong Phương tiện.