Mã thông báo thiết kế của nhà sản xuất thiết bị gốc (OEM) là cách triển khai Android Automotive OS (AAOS) của hệ thống Material Design. Không giống như phương pháp lựa chọn thuật toán hoặc người dùng cho giá trị mã thông báo trên thiết bị di động, OEM chỉ định giá trị mã thông báo thiết kế. Mã hiệu thiết kế đại diện cho các quyết định thiết kế nhỏ, lặp lại tạo nên phong cách hình ảnh của hệ thống thiết kế và thay thế các giá trị tĩnh bằng tên rõ nghĩa. Mã thông báo tương tự như các mã thông báo do hệ thống Material Design xác định.
Thư viện mã thông báo OEM
Mã thông báo thiết kế OEM được tham chiếu thông qua thư viện mã thông báo OEM, bao gồm 3 thành phần được minh hoạ trong Hình 1.
Hình 1. Các thành phần thư viện mã thông báo OEM.
Thư viện tĩnh
Thành phần thư viện tĩnh của thư viện mã thông báo OEM hỗ trợ truy cập vào các giá trị mã thông báo như sau.
- Cung cấp API để truy cập vào giá trị OEM cho mã thông báo.
- Cho phép chọn ghi đè tham chiếu mã thông báo trong giao diện bằng các giá trị OEM.
Thư viện chia sẻ
Thành phần thư viện dùng chung chịu trách nhiệm xác định những nội dung sau:
- Tên thư viện.
- Giá trị boolean chọn sử dụng để bật cho các giá trị mã thông báo OEM.
- Kiểu cung cấp giá trị mã thông báo OEM.
Để đáp ứng quyền sở hữu của OEM đối với thành phần thư viện dùng chung này, bao gồm cả tên gói do OEM xác định, OEM có thể tạo một chế độ ghi đè quá trình triển khai thư viện dùng chung.
Hình 2. Ghi đè quá trình triển khai thư viện dùng chung.
Thư viện dùng chung của nhà sản xuất thiết bị gốc (OEM)
Việc nhà sản xuất thiết bị gốc (OEM) ghi đè thành phần thư viện dùng chung cho phép nhà sản xuất thiết bị gốc sở hữu thư viện trong khi vẫn duy trì khả năng tương thích với các thành phần khác trong thư viện mã thông báo OEM bằng cách cung cấp phương tiện để nhà sản xuất thiết bị gốc đặt tên gói và chữ ký trong khi vẫn triển khai thư viện dùng chung nếu không được sửa đổi.
Bạn có thể xác định các cơ chế ghi đè cho thư viện dùng chung như sau:
override_android_app { name: "[OEM]-token-shared-lib", base: "token-shared-lib", package_name: "com.[OEM].sharedlib", rename_resources_package: false, certificate: … }
Để đặt giá trị mã thông báo, hãy xem phần Chỉ định giá trị mã thông báo OEM.
Tuỳ chỉnh thư viện dùng chung của nhà sản xuất thiết bị gốc (OEM)
Để hỗ trợ nhiều giao thức cho giá trị mã thông báo (ví dụ: sự khác biệt về mô hình hoặc chế độ lái), OEM có thể cung cấp giá trị động cho mã thông báo bằng cách nhắm đến thư viện dùng chung của OEM bằng Lớp phủ tài nguyên thời gian chạy (RRO). Để tìm hiểu thêm, hãy xem bài viết Thay đổi giá trị của tài nguyên ứng dụng trong thời gian chạy.
Để đặt giá trị mã thông báo, hãy xem phần Chỉ định giá trị mã thông báo OEM.
Chỉ định giá trị mã thông báo OEM
Để chỉ định giá trị mã thông báo, hãy đặt thuộc tính tương ứng trong kiểu OemStyle
thành giá trị bắt buộc.
<resources> <style name="OemStyle"> <item name="colorPrimary">#B0C5FF</item> <item name="colorOnPrimary">#002B76</item> <item name="colorPrimaryContainer">#003FA4</item> <item name="colorOnPrimaryContainer">#D9E2FF</item> … </style> </resources>
Chọn sử dụng giá trị của nhà sản xuất thiết bị gốc (OEM)
Để ứng dụng có thể truy cập vào các giá trị mã thông báo do OEM cung cấp, trước tiên, OEM phải chọn ghi đè các giá trị mã thông báo mặc định bằng cách định cấu hình boolean enable_oem_tokens
thành true
.
Giá trị mã thông báo RRO
Tương tự như cách đặt giá trị mã thông báo trong OemStyle
, bạn có thể sử dụng RRO để sửa đổi kiểu nhằm cung cấp các giá trị mã thông báo thay thế.
<resources> <style name="OemStyle"> <item name="com.android.oem.tokens:colorPrimary">#B0C5FF</item> <item name="com.android.oem.tokens:colorOnPrimary">#002B76</item> <item name="com.android.oem.tokens:colorPrimaryContainer">#003FA4</item> <item name="com.android.oem.tokens:colorOnPrimaryContainer">#D9E2FF</item> … </style> </resources>
RRO phải đặt các thuộc tính thư viện dùng chung trên kiểu bằng cách chỉ định tên thư viện dùng chung.
Định cấu hình tải gần đây nhất
Các hệ thống có hoạt động triển khai thư viện dùng chung mã thông báo của OEM phải định cấu hình hệ thống để tải thư viện dùng chung sau các lớp ứng dụng. Để thực hiện việc này, hãy đưa tên thư viện (com.android.oem.tokens
) vào cấu hình config_sharedLibrariesLoadedAfterApp
trên hệ thống. Nếu bạn có quyền truy cập vào Dịch vụ ô tô của Google (GAS), thì đây là yêu cầu bắt buộc.
<!-- The OEM token shared library will be loaded after app classes --> <string-array name="config_sharedLibrariesLoadedAfterApp" translatable="false"> <item>com.android.oem.tokens</item> </string-array>
Các phương pháp hay nhất
Các phương pháp hay nhất cho thư viện mã thông báo OEM được mô tả dưới đây.
Bật chiến lược cập nhật linh hoạt
Hãy xem các chiến lược dưới đây để đảm bảo bạn có thể linh hoạt cập nhật.
Thư viện dùng chung của nhà sản xuất thiết bị gốc (OEM)
Vì các thư viện dùng chung hệ thống phải được cài đặt sẵn trên hình ảnh hệ thống, nên các thiết bị phải đi kèm với thư viện hoặc thư viện phải được thêm vào bản cập nhật Qua mạng không dây (OTA) (để tìm hiểu thêm, hãy xem phần Bản cập nhật OTA). Tuy nhiên, việc đưa vào một bản triển khai mô phỏng của chế độ ghi đè OEM đối với thư viện dùng chung mã thông báo OEM trên hình ảnh hệ thống cho phép đẩy bản cập nhật cho một bản triển khai hoạt động đầy đủ đến các thiết bị vào một ngày sau đó mà không cần OTA.
RRO thư viện dùng chung
Mặc dù không có yêu cầu nào về việc cài đặt RRO dưới dạng ứng dụng hệ thống, nhưng việc này sẽ cung cấp một số hành vi cập nhật có thể mong muốn.
- Tự động cập nhật ứng dụng khi người dùng chưa đăng nhập.
- Người dùng không thể gỡ cài đặt (người dùng chỉ có thể gỡ cài đặt bản cập nhật).