โทเค็นการออกแบบ 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 เป็นแอประบบ แต่การทำเช่นนี้จะทำให้มีพฤติกรรมการอัปเดตบางอย่างที่อาจต้องการ
- อัปเดตแอปอัตโนมัติเมื่อผู้ใช้ไม่ได้ลงชื่อเข้าใช้
- ผู้ใช้ไม่สามารถถอนการติดตั้งได้ (ผู้ใช้สามารถ ถอนการติดตั้งการอัปเดตได้ เท่านั้น)