OEM डिज़ाइन टोकन

ओईएम डिज़ाइन टोकन मटेरियल डिज़ाइन सिस्टम का एक एंड्रॉइड ऑटोमोटिव ओएस (एएओएस) कार्यान्वयन है। मोबाइल पर टोकन मूल्यों के लिए एल्गोरिथम या उपयोगकर्ता चयन दृष्टिकोण के विपरीत, OEM डिज़ाइन टोकन मान निर्दिष्ट करते हैं। डिज़ाइन टोकन छोटे, बार-बार डिज़ाइन निर्णयों का प्रतिनिधित्व करते हैं जो डिज़ाइन सिस्टम की दृश्य शैली बनाते हैं और स्थिर मानों को स्व-व्याख्यात्मक नामों से प्रतिस्थापित करते हैं। टोकन मटेरियल डिज़ाइन सिस्टम द्वारा परिभाषित टोकन के अनुरूप होते हैं।

ओईएम टोकन लाइब्रेरी

ओईएम डिज़ाइन टोकन को ओईएम टोकन लाइब्रेरी के माध्यम से संदर्भित किया जाता है, जिसमें चित्र 1 में दिखाए गए तीन घटक शामिल हैं।

चित्र 1. OEM टोकन लाइब्रेरी घटक।

स्थैतिक पुस्तकालय

ओईएम टोकन लाइब्रेरी का स्थिर लाइब्रेरी घटक निम्नानुसार टोकन मूल्यों तक पहुंच की सुविधा प्रदान करता है।

  • टोकन के लिए OEM मानों तक पहुंचने के लिए एपीआई प्रदान करता है।
  • OEM मानों के साथ थीम में टोकन संदर्भों को ओवरराइड करने का ऑप्ट-इन सक्षम करता है।

साझा लाइब्रेरी

साझा लाइब्रेरी घटक निम्नलिखित को परिभाषित करने के लिए जिम्मेदार है:

  • पुस्तकालय का नाम.
  • OEM टोकन मानों को सक्षम करने के लिए बूलियन ऑप्ट-इन।
  • शैली जो ओईएम टोकन मान प्रदान करती है।

इस साझा लाइब्रेरी घटक के OEM स्वामित्व को समायोजित करने के लिए, OEM-परिभाषित पैकेज नाम सहित, OEM साझा लाइब्रेरी कार्यान्वयन का एक ओवरराइड बना सकते हैं।

चित्र 2. साझा लाइब्रेरी कार्यान्वयन को ओवरराइड करें।

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 साझा लाइब्रेरी को लक्षित करके टोकन के लिए गतिशील मान प्रदान कर सकते हैं। अधिक जानने के लिए, रनटाइम पर ऐप के संसाधनों का मान बदलें देखें।

टोकन मान सेट करने के लिए, 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 के रूप में कॉन्फ़िगर करके डिफ़ॉल्ट टोकन मानों को ओवरराइड करने का विकल्प चुनना होगा।

आरआरओ टोकन मान

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>

आरआरओ को साझा लाइब्रेरी नाम निर्दिष्ट करके शैली पर साझा लाइब्रेरी विशेषताओं को सेट करना चाहिए।

लोड को अंतिम रूप से कॉन्फ़िगर करें

जिन सिस्टमों में टोकन साझा लाइब्रेरी का ओईएम कार्यान्वयन शामिल है, उन्हें ऐप कक्षाओं के बाद साझा लाइब्रेरी को लोड करने के लिए सिस्टम को कॉन्फ़िगर करना होगा। ऐसा करने के लिए, सिस्टम पर config_sharedLibrariesLoadedAfterApp कॉन्फ़िगरेशन में लाइब्रेरी नाम ( com.android.oem.tokens ) शामिल करें। यदि आपके पास 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 साझा लाइब्रेरी

चूंकि सिस्टम-साझा लाइब्रेरी को सिस्टम छवियों पर प्रीइंस्टॉल्ड होना आवश्यक है, डिवाइस को या तो लाइब्रेरी के साथ शिप करना होगा या लाइब्रेरी को ओवर-द-एयर (ओटीए) अपडेट के हिस्से के रूप में जोड़ा जाना चाहिए (अधिक जानने के लिए, ओटीए अपडेट देखें)। हालाँकि, एक सिस्टम छवि पर एक ओईएम टोकन साझा लाइब्रेरी के ओईएम ओवरराइड के स्टब कार्यान्वयन को शामिल करने से ओटीए की आवश्यकता के बिना बाद की तारीख में पूर्ण कामकाजी कार्यान्वयन के अपडेट को डिवाइस पर धकेलने की अनुमति मिलती है।

साझा लाइब्रेरी आरआरओ

हालाँकि आरआरओ को सिस्टम ऐप्स के रूप में स्थापित करने की कोई आवश्यकता नहीं है, ऐसा करने से कुछ अद्यतन व्यवहार मिलते हैं जो वांछित हो सकते हैं।

  • जब उपयोगकर्ता साइन इन न हों तो ऐप्स का स्वचालित अपडेट।
  • उपयोगकर्ता द्वारा अनइंस्टॉल नहीं किया जा सकता (उपयोगकर्ता केवल अपडेट अनइंस्टॉल कर सकते हैं)।