โมดูล ModuleMetadata มีข้อมูลเมตาเกี่ยวกับรายการโมดูลในอุปกรณ์ที่ระบุ ระบบจะแยกวิเคราะห์และแคชข้อมูลเมตาทันทีที่เซิร์ฟเวอร์ระบบเริ่มต้น
การเปลี่ยนแปลงใน Android 10
APK ของ ModuleMetadata มี ModuleInfoProvider ซึ่งใช้เมธอด getModuleInfo และ getInstalledModules จาก API ของ PackageManager เมธอดเหล่านี้ได้รับการสนับสนุนโดยข้อมูลเมตา XML ที่แยกวิเคราะห์จากแพ็กเกจผู้ให้บริการข้อมูลเมตาของโมดูล ระบบจะจัดเก็บชื่อแพ็กเกจสำหรับแพ็กเกจข้อมูลเมตาของโมดูลไว้ในค่ากำหนด config_defaultModuleMetadataProvider
ผู้ให้บริการข้อมูลเมตาของโมดูลต้องมีรายการ <metadata>
สำหรับแท็ก <application> รายการข้อมูลเมตาต้องมีคีย์เดียว (android.content.pm.MODULE_METADATA) ซึ่งมีค่าเป็นการอ้างอิงไปยังทรัพยากร XML ที่มีข้อมูลเมตาเกี่ยวกับรายการโมดูลในอุปกรณ์ที่ระบุ
รูปแบบแพ็กเกจ
ระบบจะส่งโมดูล ModuleMetadata (com.android.modulemetadata) เป็นไฟล์ APK
องค์ประกอบข้อมูลเมตา
เอกสาร XML ต้องประกอบด้วยองค์ประกอบ <module-metadata>
ระดับบนสุดเพียงรายการเดียวที่มีองค์ประกอบย่อยตั้งแต่ 1 รายการขึ้นไป โดยแต่ละองค์ประกอบย่อยจะเป็นองค์ประกอบ <module>
ที่มีแอตทริบิวต์ต่อไปนี้
nameคือการอ้างอิงทรัพยากรไปยังชื่อแพ็กเกจที่ผู้ใช้มองเห็นได้ แมปกับModuleInfo#getNamepackageNameคือชื่อแพ็กเกจของโมดูล แมปกับModuleInfo#getPackageNameisHiddenระบุว่าโมดูลซ่อนอยู่หรือไม่ แมปกับModuleInfo#isHidden</code>.
ตัวอย่าง
<module-metadata>
<module name="@string/resource" packageName="package_name" isHidden="false|true">
<module .... >
</module-metadata>