ModuleMetadata

Das Modul „ModuleMetadata“ enthält Metadaten zur Liste der Module auf einem bestimmten Gerät. Die Metadaten werden geparst und im Cache gespeichert, sobald der Systemserver gestartet wird.

Änderungen in Android 10

Die ModuleMetadata-APK enthält ModuleInfoProvider, das die Methoden getModuleInfo und getInstalledModules aus der API von PackageManager implementiert. Diese Methoden werden durch XML-Metadaten unterstützt, die aus einem Paket des Modulmetadatenanbieters geparst wurden. Der Paketname für das Modulmetadatenpaket wird im Konfigurationswert config_defaultModuleMetadataProvider gespeichert.

Der Modulmetadatenanbieter muss einen <metadata> Eintrag für sein <application> Tag enthalten. Der Metadateneintrag muss einen einzelnen Schlüssel (android.content.pm.MODULE_METADATA) enthalten, dessen Wert ein Verweis auf eine XML-Ressource ist, die Metadaten zur Liste der Module auf einem bestimmten Gerät enthält.

Paketformat

Das Modul „ModuleMetadata“ (com.android.modulemetadata) wird als APK-Datei bereitgestellt.

Metadatenelemente

Das XML-Dokument muss aus einem einzelnen Element der obersten Ebene <module-metadata> mit einem oder mehreren untergeordneten Elementen bestehen. Jedes untergeordnete Element ist ein <module> -Element, das die folgenden Attribute enthält:

  • name ist ein Ressourcenverweis auf einen für Nutzer sichtbaren Paketnamen. Wird ModuleInfo#getName zugeordnet.
  • packageName ist der Paketname des Moduls. Wird ModuleInfo#getPackageName zugeordnet.
  • isHidden gibt an, ob das Modul ausgeblendet ist. Wird zugeordnet ModuleInfo#isHidden</code>.

Beispiel:

<module-metadata>
<module name="@string/resource" packageName="package_name" isHidden="false|true">
<module .... >
</module-metadata>