Tổng quan về Android Automotive OS

Giao diện người dùng của Android Automotive OS
Hình 1: Android Automotive OS

Android Automotive OS là một phiên bản Android được tối ưu hoá để sử dụng trong xe và mở rộng trên nền tảng Android cốt lõi. Ô tô được cài sẵn Google chạy Android Automotive OS và được trang bị các ứng dụng và dịch vụ của Google, bao gồm Google Play, Gemini, Trợ lý Google và Google Maps.

Tìm hiểu về phần cứng Android Automotive OS

Để tìm hiểu thêm về các thông số kỹ thuật tối thiểu về phần cứng cho thiết bị chạy Android Automotive OS, hãy xem phần Yêu cầu đối với ô tô trong Tài liệu định nghĩa về khả năng tương thích (CDD) cho Android đối với(các) phiên bản Android mà ứng dụng của bạn hỗ trợ.

Vết cắt trên màn hình

Cũng như các kiểu dáng khác của Android, các thiết bị chạy Android Automotive OS có màn hình không phải hình chữ nhật đều hỗ trợ vết cắt trên màn hình. Tuy nhiên, kích thước và hình dạng của vết cắt trên màn hình trong ô tô có thể khác biệt đáng kể so với vết cắt trên màn hình ở các kiểu dáng thiết bị khác. Hãy xem phần Thao tác với các phần lồng ghép cửa sổ và vết cắt trên màn hình để biết hướng dẫn chi tiết.

Âm thanh

Các thiết bị chạy Android Automotive OS thường là thiết bị có âm lượng cố định. Để tìm hiểu thêm về mức độ ảnh hưởng của thay đổi này đến ứng dụng của bạn, hãy xem bài viết Làm việc với các thiết bị có âm lượng cố định.

Tìm hiểu về phần mềm Android Automotive OS

Mặc dù Android Automotive OS dựa trên cùng một hệ điều hành cốt lõi như các hệ số hình dạng khác, nhưng có một số tính năng bổ sung chỉ dành riêng cho hệ điều hành này. Những tính năng này có thể ảnh hưởng đến cách phát triển và sử dụng ứng dụng.

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

Có một số điểm khác biệt về cách các phần tử giao diện người dùng hệ thống này hoạt động trong ô tô mà bạn nên biết.

Không giống như các kiểu dáng khác, các thiết bị chạy Android Automotive OS không bắt buộc phải có một thành phần hỗ trợ quay lại bằng phần cứng hoặc phần mềm. Khi không chạy ở chế độ tương thích, các hoạt động do ứng dụng của bạn triển khai phải có các thành phần giao diện người dùng để cho phép điều hướng trong ứng dụng nhằm đáp ứng nguyên tắc về chất lượng AN-1.

Bố cục thanh hệ thống

Cũng giống như các kiểu dáng khác, Android Automotive OS có thanh hệ thống, chẳng hạn như thanh trạng thái và thanh điều hướng. Trong ô tô, các thanh này có thể có kích thước và vị trí khác với các kiểu dáng thiết bị khác. Ví dụ: bạn có thể bố trí thanh điều hướng ở bên trái, bên phải hoặc cuối màn hình. Ngay cả trong trường hợp thanh trạng thái ở trên cùng và thanh điều hướng ở dưới cùng (như hầu hết điện thoại và máy tính bảng), có thể kích thước của các thành phần này trong ô tô sẽ lớn hơn nhiều.

Ngoài ra, mặc dù vết cắt trên màn hình trên thiết bị di động thường nằm trong phạm vi của các thanh hệ thống, nhưng điều này không xảy ra trên ô tô.

Hãy xem phần Thao tác với các phần lồng ghép cửa sổ và vết cắt trên màn hình để biết hướng dẫn chi tiết.

Chế độ hiển thị tối đa

Android Automotive OS cho phép Nhà sản xuất thiết bị gốc (OEM) kiểm soát việc ứng dụng có thể hiện hoặc ẩn thanh hệ thống để vào và thoát chế độ hiển thị tối đa. Bằng cách ngăn các ứng dụng ẩn thanh hệ thống, OEM có thể đảm bảo luôn truy cập được các chế độ điều khiển xe (chẳng hạn như chế độ kiểm soát nhiệt độ và độ ẩm) trên màn hình.

Các hạn chế về trải nghiệm người dùng

Các quy tắc hạn chế về trải nghiệm người dùng (UX) là khả năng được tích hợp vào Android Automotive OS để xử lý các yếu tố gây mất tập trung cho người lái xe. Các quy tắc hạn chế về trải nghiệm người dùng chịu trách nhiệm tự động ngăn việc sử dụng những ứng dụng chưa được tối ưu hoá để sử dụng khi lái xe.

Hoạt động chặn hoạt động đang hiển thị trên một ứng dụng không được đánh dấu là tối ưu hoá để chống phân tâm.
Hình 2: Một ứng dụng bị chặn do các hạn chế về trải nghiệm người dùng

Nhà sản xuất ô tô sẽ xác định chính xác bộ quy tắc quyết định cách thức và thời điểm các quy tắc hạn chế về trải nghiệm người dùng có hiệu lực. Các quy tắc này có thể khác nhau theo khu vực địa lý. Ví dụ: cùng một chiếc xe được bán ở Châu Âu có thể có các quy tắc khác với những chiếc xe được bán ở Hoa Kỳ.

Các quy tắc hạn chế trải nghiệm người dùng cũng có thể thay đổi tuỳ theo màn hình trong xe. Ví dụ: màn hình trung tâm trong tầm nhìn của người lái xe có thể bị hạn chế khi xe đang di chuyển, trong khi màn hình hành khách sẽ không bị hạn chế.

Nếu ứng dụng của bạn cần điều chỉnh cho phù hợp với các hạn chế về trải nghiệm người dùng, hãy tham khảo trực tiếp các hạn chế đó – đừng cố gắng thiết kế ngược việc triển khai của các hạn chế. Ví dụ: nếu giả định rằng các quy định hạn chế về trải nghiệm người dùng đang có hiệu lực khi xe không ở chế độ Đỗ xe, thì bạn có thể hạn chế không cần thiết một ứng dụng đang chạy trên màn hình dành cho hành khách.

Tối ưu hoá để chống phân tâm

Theo mặc định, các hoạt động không thể chạy trong khi các hạn chế về trải nghiệm người dùng đang hoạt động để hạn chế sự phân tâm của người lái xe. Để cho hệ thống biết rằng một hoạt động sẽ tiếp tục chạy khi xe đang di chuyển, bạn có thể thêm phần tử <meta-data> sau đây trong phần tử <activity> tương ứng.

<activity ...>
  <meta-data android:name="distractionOptimized" android:value="true">
</activity>

Khi phát triển ứng dụng cho Android Automotive OS, thời điểm duy nhất siêu dữ liệu này xuất hiện trong tệp kê khai là khi khai báo phần tử tệp kê khai <activity> cho CarAppActivity của một ứng dụng được tạo bằng Thư viện Car App. Không có hoạt động nào khác được đánh dấu là tối ưu hoá để giảm xao nhãng. Nếu có, ứng dụng của bạn sẽ bị từ chối khi gửi đến Cửa hàng Google Play.

Hỗ trợ tiếp cận

Khả năng hỗ trợ tiếp cận cho Android Automotive OS không rộng rãi như trên các kiểu dáng thiết bị khác. TalkBack, Tiếp cận bằng công tắcĐiều khiển bằng giọng nói không có trên các thiết bị chạy Android Automotive OS.

Các lựa chọn ưu tiên về phụ đề được hỗ trợ trên các thiết bị Android Automotive OS. Hãy xem phần Áp dụng chế độ cài đặt cho chú thích của hệ thống để biết thông tin chi tiết về cách tích hợp.

Lựa chọn mạng

Android Automotive OS hỗ trợ tính năng Lựa chọn mạng cho từng ứng dụng (PANS), cho phép OEM định tuyến lưu lượng truy cập mạng di động đến các mạng khác nhau theo từng ứng dụng.

Hầu hết các ứng dụng chỉ sử dụng mạng mặc định được chỉ định cho chúng và chỉ được hưởng lợi từ tính năng này – ví dụ: OEM có thể trả tiền cho lưu lượng truy cập mạng từ ứng dụng của bạn ngay cả khi người dùng không có gói dữ liệu riêng. Nếu ứng dụng của bạn (hoặc một trong các phần phụ thuộc của ứng dụng) dựa vào các mạng khác ngoài mạng mặc định, thì ứng dụng đó có thể không được hưởng lợi từ các lựa chọn ưu tiên do OEM đặt. Hãy xem phần Đọc trạng thái mạng để biết thêm hướng dẫn về cách sử dụng các mạng không phải là mạng mặc định.

Các tính năng của hệ thống

Bạn có thể phát hiện xem một tính năng nhất định có dùng được hay không bằng cách sử dụng PackageManager::hasSystemFeature và điều chỉnh hành vi của ứng dụng cho phù hợp.

Tính năng phần cứng

Tương tự như các kiểu dáng không phải thiết bị di động khác, các tính năng phần cứng có trong ô tô có thể khác với các tính năng có trên thiết bị di động.

Hướng màn hình

Giống như TV, ô tô là thiết bị có hướng cố định. Không giống như TV, màn hình này có cả hướng dọc và hướng ngang. Để đảm bảo rằng các ứng dụng được tạo cho Android Automotive OS có thể được phân phối cho tất cả các xe, ứng dụng phải đảm bảo rằng chúng không có yêu cầu rõ ràng hoặc ngầm ẩn về tính năng cho cả tính năng android.hardware.screen.landscape hoặc android.hardware.screen.portrait.

Vị trí trên mạng

Nhiều thiết bị chạy Android Automotive OS không triển khai ngăn xếp điện thoại được dùng để cung cấp vị trí mạng và do đó không báo cáo tính năng hệ thống android.hardware.location.network. Mặc dù có thể không có thông tin vị trí qua mạng, nhưng việc truy cập vào thông tin vị trí tương đối vẫn được hỗ trợ – hãy xem bài viết Thông tin vị trí tương đối trên Android Automotive OS.

Tính năng phần mềm

Một số tính năng phần mềm thường có trên các kiểu dáng khác có thể không được hỗ trợ trên các thiết bị chạy Android Automotive OS. Ví dụ: những tính năng sau đây không có trên nhiều xe chạy Android Automotive OS:

Đáp ứng các yêu cầu về tính năng của Google Play

Để được phân phối cho ô tô thông qua Google Play, các ứng dụng dành riêng cho Android Automotive OS phải có một phần tử <uses-feature> trong tệp AndroidManifest.xml cho tính năng android.hardware.type.automotive:

<manifest ...>
  ...
  <!--
    See Choose a track for Android Automotive OS
    for details on how to choose which value to use for the android:required attribute.
  -->
  <uses-feature
      android:name="android.hardware.type.automotive"
      android:required="[true|false]">
  ...
</manifest>

Ngoài ra, nếu ứng dụng của bạn có bất kỳ nội dung khai báo tính năng rõ ràng nào có android:required="true" hoặc yêu cầu ngầm về tính năng cho bất kỳ tính năng nào sau đây, thì bạn phải cập nhật hoặc xoá các yêu cầu đó để yêu cầu về tính năng của ứng dụng không ngăn việc phân phối ứng dụng cho những xe tương thích:

Đối với các tính năng được khai báo rõ ràng bằng android:required="true", bạn có thể thực hiện một trong những việc sau:

  • Xoá phần tử <uses-feature> nếu tính năng này không bắt buộc một cách ngầm định.
  • Khai báo rõ ràng tính năng này bằng android:required="false".

Đối với các tính năng bắt buộc ngầm ẩn, bạn có thể làm theo một trong những cách sau:

  • Khai báo rõ ràng tính năng này bằng android:required="false".
  • Xoá hoặc cập nhật các giá trị tệp kê khai đưa ra yêu cầu ngầm định đối với tính năng.

Việc thay đổi nội dung khai báo tính năng trong tệp kê khai không ảnh hưởng đến chức năng thực tế của ứng dụng, vì vậy, hãy kiểm tra để đảm bảo ứng dụng của bạn vẫn hoạt động bình thường mà không cần các tính năng này.

Câu hỏi thường gặp

Những loại xe nào được cài sẵn Google?

Hãy truy cập vào trang web Ô tô có tích hợp Google để xem danh sách các nhà sản xuất thiết bị gốc (OEM) có những mẫu xe được cài sẵn Google. Bạn có thể lấy thông số kỹ thuật phần cứng và thông tin chi tiết khác về thiết bị bằng Danh mục thiết bị của Play Console.