โทเค็นการออกแบบ OEM

โทเค็นการออกแบบ OEM เป็นการติดตั้งใช้งาน Android Automotive OS (AAOS) ของ ดีไซน์ Material ระบบ OEM แตกต่างจากการใช้อัลกอริทึมหรือผู้ใช้สำหรับค่าโทเค็นบนอุปกรณ์เคลื่อนที่ ค่าโทเค็นการออกแบบ โทเค็นการออกแบบแสดงถึงการตัดสินใจด้านการออกแบบเล็กๆ น้อยๆ ที่ทำซ้ำซึ่งรวมกันเป็น ออกแบบสไตล์ภาพของระบบและแทนที่ค่าคงที่ด้วยชื่อที่บ่งบอกความเป็นตัวเอง โทเค็นคือ คล้ายกับรูปแบบที่ระบบดีไซน์ Material กำหนดไว้

ไลบรารีโทเค็น OEM

โทเค็นการออกแบบ OEM จะอ้างอิงผ่านไลบรารีโทเค็น OEM ซึ่งประกอบด้วย ส่วนประกอบที่แสดงในรูปที่ 1

รูปที่ 1 คอมโพเนนต์ไลบรารีโทเค็น OEM

ไลบรารีแบบคงที่

คอมโพเนนต์ไลบรารีแบบคงที่ของไลบรารีโทเค็น OEM ช่วยอำนวยความสะดวกในการเข้าถึงค่าโทเค็น ติดตาม

  • ระบุ API เพื่อเข้าถึงค่า OEM สำหรับโทเค็น
  • เปิดใช้การเลือกใช้การลบล้างการอ้างอิงโทเค็นในธีมที่มีค่า OEM

คลังที่ใช้ร่วมกัน

คอมโพเนนต์ไลบรารีที่ใช้ร่วมกันมีหน้าที่กำหนดสิ่งต่อไปนี้

  • ชื่อคลัง
  • การเลือกใช้บูลีนสำหรับเปิดใช้ค่าโทเค็น OEM
  • รูปแบบที่มีค่าโทเค็น OEM

เพื่อรองรับการเป็นเจ้าของ OEM ของคอมโพเนนต์ไลบรารีที่ใช้ร่วมกันนี้ ซึ่งรวมถึงแพ็กเกจที่ OEM กำหนด OEM สามารถสร้างการลบล้างในการใช้งานไลบรารีที่ใช้ร่วมกันได้

รูปที่ 2 ลบล้างการใช้งานไลบรารีที่ใช้ร่วมกัน

ไลบรารีที่ใช้ร่วมกันของ OEM

การลบล้าง OEM ของคอมโพเนนต์ไลบรารีที่ใช้ร่วมกันจะช่วยให้เป็นเจ้าของ OEM ของไลบรารีได้ รักษาความเข้ากันได้กับคอมโพเนนต์อื่นๆ ในไลบรารีโทเค็น OEM ด้วยการมอบวิธีการ ชื่อแพ็กเกจและลายเซ็นที่ OEM จะเป็นผู้ตั้งค่าขณะที่เลิกใช้ หรือไม่มีการแก้ไข

คุณกำหนดการลบล้างสำหรับไลบรารีที่ใช้ร่วมกันได้ดังที่แสดงด้านล่างนี้

override_android_app {
    name: "[OEM]-token-shared-lib",
    base: "token-shared-lib",
    package_name: "com.[OEM].sharedlib",
    rename_resources_package: false,
    certificate: …
}

หากต้องการตั้งค่าโทเค็น โปรดดูหัวข้อระบุค่าโทเค็น OEM

การปรับแต่งไลบรารีที่ใช้ร่วมกันของ OEM

เพื่อรองรับรูปแบบที่หลากหลายสำหรับค่าโทเค็น (เช่น การแยกความแตกต่างของรุ่นหรือโหมดไดรฟ์) OEM ระบุค่าแบบไดนามิกสำหรับโทเค็นได้โดยการกำหนดเป้าหมายไลบรารีที่ใช้ร่วมกันของ OEM ด้วยรันไทม์ Resource Overlays (RRO) ดูข้อมูลเพิ่มเติมได้ที่ เปลี่ยนค่าทรัพยากรของแอปขณะรันไทม์

หากต้องการตั้งค่าโทเค็น โปรดดูหัวข้อระบุค่าโทเค็น OEM

ระบุค่าโทเค็น OEM

หากต้องการระบุค่าโทเค็น ให้ตั้งค่าแอตทริบิวต์ที่เกี่ยวข้องในรูปแบบ OemStyle เป็น ค่าที่กำหนด

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

เลือกใช้ค่า OEM

OEM จะต้องเลือกใช้การลบล้างค่าเริ่มต้นก่อน เพื่อให้แอปเข้าถึงค่าโทเค็นที่ OEM ให้มาได้ ค่าโทเค็นโดยการกำหนดค่าบูลีน enable_oem_tokens เป็น true

ค่าโทเค็น RRO

เช่นเดียวกับวิธีตั้งค่าโทเค็นใน OemStyle โดยใช้ RRO เพื่อแก้ไข เพื่อระบุค่าโทเค็นทางเลือก

<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 ควรตั้งค่าแอตทริบิวต์ไลบรารีที่ใช้ร่วมกันในรูปแบบโดยระบุไลบรารีที่ใช้ร่วมกัน ชื่อ

กำหนดค่าการโหลดล่าสุด

ระบบที่มีการใช้งาน OEM ของไลบรารีที่ใช้ร่วมกันโทเค็นต้องกำหนดค่าระบบ เพื่อโหลดไลบรารีที่ใช้ร่วมกันหลังชั้นเรียนแอป โดยใส่ชื่อไลบรารี (com.android.oem.tokens) ในconfig_sharedLibrariesLoadedAfterApp กำหนดค่าในระบบ หากคุณมีสิทธิ์เข้าถึง Google Automotive Services (GAS) การดําเนินการนี้จะมีผลบังคับใช้เป็น ข้อกำหนดในการให้บริการ

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

แนวทางปฏิบัติแนะนำ

ด้านล่างคือแนวทางปฏิบัติแนะนำสำหรับไลบรารีโทเค็น OEM

ใช้กลยุทธ์การอัปเดตที่ยืดหยุ่น

ดูกลยุทธ์ด้านล่างเพื่อสร้างความยืดหยุ่นเกี่ยวกับการอัปเดต

ไลบรารีที่ใช้ร่วมกันของ OEM

เนื่องจากต้องมีการติดตั้งไลบรารีที่แชร์ของระบบไว้ล่วงหน้าในอิมเมจระบบ อุปกรณ์ต้องดำเนินการอย่างใดอย่างหนึ่งต่อไปนี้ จัดส่งไปพร้อมกับไลบรารี หรือต้องเพิ่มไลบรารีเป็นส่วนหนึ่งของการอัปเดตผ่านอากาศ (OTA) (เพื่อเรียนรู้ เพิ่มเติม โปรดดูการอัปเดต OTA) อย่างไรก็ตาม รวมถึงการใช้ stub สำหรับการลบล้าง OEM ของไลบรารีที่ใช้ร่วมกันของโทเค็น OEM ใน อิมเมจระบบช่วยให้สามารถพุชการอัปเดตไปยังอุปกรณ์ที่ โดยอัตโนมัติโดยไม่ต้องมี OTA

RRO ไลบรารีที่ใช้ร่วมกัน

แม้ว่าจะไม่มีข้อกำหนดให้ติดตั้ง RRO เป็นแอประบบ แต่การทำเช่นนี้จะทำให้ อัปเดตพฤติกรรมที่อาจต้องการ

  • การอัปเดตแอปอัตโนมัติเมื่อผู้ใช้ไม่ได้ลงชื่อเข้าใช้
  • ผู้ใช้ไม่สามารถถอนการติดตั้งได้ (ผู้ใช้ทำได้เพียงถอนการติดตั้งอัปเดตเท่านั้น)