Mã thông báo thiết kế của OEM

Mã thông báo thiết kế OEM là một cách triển khai Android Automotive OS (AAOS) của Material Design hệ thống. Không giống như phương pháp lựa chọn người dùng hoặc thuật toán đối với các giá trị mã thông báo trên thiết bị di động, OEM chỉ định thiết kế giá trị mã thông báo. Mã thông báo thiết kế đại diện cho các quyết định thiết kế nhỏ, lặp lại tạo nên của Google Design và thay thế các giá trị tĩnh bằng tên dễ hiểu. Mã thông báo là tương tự như mã 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 ba các thành phần được minh hoạ trong Hình 1.

Hình 1. Các thành phần trong 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 tạo điều kiện cho việc truy cập vào các giá trị mã thông báo dưới dạng theo dõi.

  • Cung cấp API để truy cập vào các giá trị OEM của mã thông báo.
  • Bật cơ chế ghi đè tham chiếu mã thông báo trong giao diện 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.
  • Chọn sử dụng Boolean để bật giá trị mã thông báo OEM.
  • Kiểu cung cấp giá trị mã thông báo OEM.

Để phù hợp với quyền sở hữu của OEM đối với thành phần thư viện chia sẻ này, bao gồm cả gói do OEM xác định , OEM có thể tạo cơ chế ghi đè phương thức triển khai thư viện chia sẻ.

Hình 2. Ghi đè phương thức triển khai thư viện chia sẻ.

Thư viện chia sẻ của OEM (Nhà sản xuất thiết bị gốc)

Chế độ ghi đè của OEM (Nhà sản xuất thiết bị gốc) đối với thành phần thư viện chia sẻ cho phép OEM (Nhà sản xuất thiết bị gốc) sở hữu thư viện trong khi 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 để tên gói và chữ ký sẽ được OEM thiết lập trong khi rời khỏi việc triển khai phần mở rộng được chia sẻ thư viện chưa sửa đổi.

Bạn có thể xác định cơ chế ghi đè cho thư viện chia sẻ như trình bày dưới đây:

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 chia sẻ của OEM

Để hỗ trợ nhiều lược đồ cho giá trị mã thông báo (ví dụ: phân biệt mô hình hoặc chế độ lái xe), 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 chia sẻ của OEM thông qua Thời gian chạy Lớp phủ tài nguyên (RRO). Để tìm hiểu thêm, hãy xem Thay đổi giá trị của tài nguyên của ứ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 các 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 giá trị mã thông báo do OEM cung cấp, trước tiên, OEM phải chọn ghi đè giá trị 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 thiết lập giá trị mã thông báo trong OemStyle, bạn có thể dùng RRO để sửa đổi để cung cấp 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 thuộc tính thư viện dùng chung trên kiểu bằng cách chỉ định thư viện dùng chung .

Định cấu hình lượt tải sau cùng

Các hệ thống có triển khai OEM của thư viện dùng chung mã thông báo phải định cấu hình hệ thống để tải thư viện chia sẻ sau các lớp ứng dụng. Để thực hiện việc này, hãy thêm tên thư viện (com.android.oem.tokens) trong config_sharedLibrariesLoadedAfterApp config trên hệ thống. Nếu bạn có quyền truy cập vào Google Automotive Services (GAS), yêu cầu này sẽ được thực thi như một .

<!-- 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

Dưới đây là các phương pháp hay nhất về thư viện mã thông báo của OEM.

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 các bản cập nhật.

Thư viện chia sẻ của OEM (Nhà sản xuất thiết bị gốc)

Vì thư viện do hệ thống chia sẻ bắt buộc phải được cài đặt trước trên ảnh hệ thống, nên các thiết bị phải: gửi cùng với thư viện hoặc thư viện phải được thêm vào nội dung cập nhật qua mạng không dây (OTA) (để tìm hiểu khác, hãy xem Bản cập nhật OTA). Tuy nhiên, việc triển khai mã giả lập của một OEM (Nhà sản xuất thiết bị gốc) đối với thư viện chia sẻ mã thông báo của OEM trên hình ảnh hệ thống cho phép cập nhật quá trình triển khai hoạt động đầy đủ được đẩy lên các thiết bị tại mà không cần đến OTA.

RRO trong thư viện chia sẻ

Mặc dù không yêu cầu cài đặt RRO làm ứng dụng hệ thống, nhưng việc này sẽ cung cấp một số cập nhật hành vi 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).