Mô-đun ModuleMetadata chứa siêu dữ liệu về danh sách mô-đun trên một thiết bị nhất định. Siêu dữ liệu được phân tích cú pháp và lưu vào bộ nhớ đệm ngay khi máy chủ hệ thống khởi động.
Thay đổi trong Android 10
APK ModuleMetadata chứa ModuleInfoProvider, triển khai các phương thức getModuleInfo và getInstalledModules từ API của PackageManager. Các phương thức này được hỗ trợ bởi siêu dữ liệu XML được phân tích cú pháp từ gói nhà cung cấp siêu dữ liệu mô-đun. Tên gói cho gói siêu dữ liệu mô-đun được lưu trữ trong giá trị cấu hình config_defaultModuleMetadataProvider.
Nhà cung cấp siêu dữ liệu mô-đun phải chứa một <metadata>
mục cho thẻ <application> của nó. Mục siêu dữ liệu phải chứa một khoá duy nhất (android.content.pm.MODULE_METADATA) có giá trị là một tham chiếu đến tài nguyên XML chứa siêu dữ liệu về danh sách mô-đun trên một thiết bị nhất định.
Định dạng gói
Mô-đun ModuleMetadata (com.android.modulemetadata) được phân phối dưới dạng tệp APK.
Phần tử siêu dữ liệu
Tài liệu XML phải bao gồm một phần tử cấp cao nhất duy nhất <module-metadata>
có một hoặc nhiều phần tử con. Mỗi phần tử con là một <module>
phần tử chứa các thuộc tính sau:
namelà một tham chiếu tài nguyên đến tên gói mà người dùng có thể thấy. Ánh xạ vàoModuleInfo#getName.packageNamelà tên gói của mô-đun. Ánh xạ vàoModuleInfo#getPackageName.isHiddencho biết liệu mô-đun có bị ẩn hay không. Ánh xạ vàoModuleInfo#isHidden</code>.
Ví dụ:
<module-metadata>
<module name="@string/resource" packageName="package_name" isHidden="false|true">
<module .... >
</module-metadata>