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

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

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

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

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

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

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

  • มี API ในการเข้าถึงค่า 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 ด้วยการวางซ้อนทรัพยากรรันไทม์ (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 (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 เป็นแอประบบ แต่การติดตั้งแอปดังกล่าวจะช่วยให้มีลักษณะการอัปเดตบางอย่างที่อาจต้องการ

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