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

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

ไลบรารีโทเค็น 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 ด้วย Runtime 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 boolean ให้เป็น 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

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

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

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

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