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

Das ModuleMetadata-APK enthält ModuleInfoProvider, das die Methoden getModuleInfo und getInstalledModules aus der API des PackageManager implementiert. Diesen Methoden liegen XML-Metadaten zugrunde, die aus einem Modulmetadaten-Anbieterpaket geparst werden. Der Paketname für das Modulmetadatenpaket wird im Konfigurationswert config_defaultModuleMetadataProvider gespeichert.

Der Anbieter von Modulmetadaten 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 ModuleMetadata-Modul (com.android.modulemetadata) wird als APK-Datei bereitgestellt.

Metadatenelemente

Das XML-Dokument muss aus einem einzelnen <module-metadata>-Element der obersten Ebene mit einem oder mehreren untergeordneten Elementen bestehen. Jedes untergeordnete Element ist ein <module>-Element mit den folgenden Attributen:

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

Beispiel:

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