Moduł ModuleMetadata zawiera metadane dotyczące listy modułów na danym urządzeniu. Metadane są analizowane i buforowane natychmiast po uruchomieniu serwera systemowego.
Zmiany w Androidzie 10
Plik APK ModuleMetadata zawiera ModuleInfoProvider
, który implementuje metody getModuleInfo
i getInstalledModules
z interfejsu API Menedżera pakietów. Te metody są oparte na metadanych XML przeanalizowanych z pakietu dostawcy metadanych modułu. Nazwa pakietu metadanych modułu jest przechowywana w wartości konfiguracji config_defaultModuleMetadataProvider
.
Dostawca metadanych modułu musi zawierać wpis <metadata>
dla tagu <application>
. Wpis metadanych musi zawierać pojedynczy klucz (android.content.pm.MODULE_METADATA
), którego wartość jest odwołaniem do zasobu XML zawierającego metadane listy modułów na danym urządzeniu.
Format pakietu
Moduł ModuleMetadata (com.android.modulemetadata
) jest dostarczany jako plik APK.
Elementy metadanych
Dokument XML musi składać się z jednego elementu najwyższego poziomu <module-metadata>
z co najmniej 1 elementem podrzędnym. Każdy element podrzędny to element <module>
zawierający te atrybuty:
name
to odwołanie do zasobu, czyli nazwy pakietu widocznej dla użytkownika. Odwzorowuje naModuleInfo#getName
.packageName
to nazwa pakietu modułu. Odwzorowuje naModuleInfo#getPackageName
.isHidden
wskazuje, czy moduł jest ukryty. Odwzorowuje naModuleInfo#isHidden</code>.
Przykład:
<module-metadata>
<module name="@string/resource" packageName="package_name" isHidden="false|true">
<module .... >
</module-metadata>