ModuleMetadata मॉड्यूल में, दिए गए डिवाइस पर मॉड्यूल की सूची के बारे में मेटाडेटा होता है. सिस्टम का सर्वर शुरू होते ही, मेटाडेटा को पार्स और कैश मेमोरी में डाल दिया जाता है.
Android 10 में हुए बदलाव
ModuleMetadata APK में ModuleInfoProvider
शामिल होता है, जो PackageManager के एपीआई से getModuleInfo
और getInstalledModules
तरीकों को लागू करता है. ये तरीके, मॉड्यूल मेटाडेटा देने वाले पैकेज से पार्स किए गए एक्सएमएल मेटाडेटा की मदद से काम करते हैं. मॉड्यूल मेटाडेटा पैकेज के लिए पैकेज का नाम, config_defaultModuleMetadataProvider
कॉन्फ़िगरेशन वैल्यू में सेव होता है.
मॉड्यूल मेटाडेटा की सेवा देने वाली कंपनी के <application>
टैग के लिए, एक <metadata>
एंट्री होनी चाहिए. मेटाडेटा एंट्री में एक कुंजी (android.content.pm.MODULE_METADATA
) होनी चाहिए, जिसकी वैल्यू किसी ऐसे एक्सएमएल संसाधन का रेफ़रंस है जिसमें दिए गए डिवाइस पर, मॉड्यूल की सूची का मेटाडेटा होता है.
पैकेज का फ़ॉर्मैट
ModuleMetadata मॉड्यूल (com.android.modulemetadata
) को APK फ़ाइल के तौर पर डिलीवर किया जाता है.
मेटाडेटा एलिमेंट
XML दस्तावेज़ में एक टॉप लेवल <module-metadata>
एलिमेंट होना चाहिए, जिसमें एक या उससे ज़्यादा चाइल्ड एलिमेंट शामिल हों. हर चाइल्ड एक <module>
एलिमेंट होता है, जिसमें ये एट्रिब्यूट होते हैं:
name
, उपयोगकर्ता को दिखने वाले पैकेज के नाम का रिसॉर्स रेफ़रंस है.ModuleInfo#getName
तक का मैप.packageName
, मॉड्यूल का पैकेज नाम है.ModuleInfo#getPackageName
पर मैप करें.isHidden
से पता चलता है कि मॉड्यूल छिपा है या नहीं.ModuleInfo#isHidden</code>.
के लिए मैप
उदाहरण:
<module-metadata>
<module name="@string/resource" packageName="package_name" isHidden="false|true">
<module .... >
</module-metadata>