Mediathek für die Veröffentlichung vorbereiten

Auf dieser Seite werden die Eigenschaften und Optionen beschrieben, die zur Vorbereitung der Projekt Android-Bibliothek zur Veröffentlichung mit dem Android-Gradle-Plug-in (AGP). Auch wenn Sie einige dieser Eigenschaften zu Beginn der Erstellung erhalten Sie in der folgenden Anleitung, um Ihre Einstellungen.

Namespace auswählen

Android-Bibliotheken müssen einen Namespace deklarieren, damit sie einen eindeutigen R, wenn ihre Ressourcen kompiliert werden. Dieser Namespace sollte weitgehend mit dem das Stammklassenpaket der Bibliothek, um Verwechslungen zu vermeiden, wenn Nutzer reguläre Klassen aus der Bibliothek und der zugehörigen R-Klasse.

Ab 7.0 AGP können Sie Namespace in der Datei build.gradle der App hinzu, wie im folgenden Codebeispiel gezeigt:

Cool

android {
  namespace = 'com.example.library'
}

Kotlin

android {
  namespace = "com.example.library"
}

Der Namespace ist eine für Entwickler sichtbare Property der Bibliothek. Es ist nicht zur Anwendungsidentität, die mit der applicationId Property.

In früheren Versionen von AGP wurde sowohl das Attribut applicationId (für ein App) und das Attribut namespace (für eine Bibliothek) mithilfe der Funktion package des Manifests was zu Verwirrung geführt hat.

minSdkVersion-Wert auswählen

Auswahl eines minSdkVersion für ist ein wichtiger Aspekt beim Veröffentlichen. Die minSdkVersion sollte die Mindestversion von Android widerspiegeln, die für Ihren Code verfügbar ist Support.

Beachten Sie bei der Auswahl eines minSdkVersions Folgendes:

  • Ein niedriger minSdkVersion-Wert ermöglicht in der Regel eine breitere Verteilung in deiner Mediathek.

    Der Code einer Bibliothek wird in der Regel nur ausgeführt, wenn die App explizit genannt wird. Eine App kann unter Android ausgeführt werden, niedriger ist als aufgrund einer Bibliotheksabhängigkeit erforderlich, wenn die Bibliothek nicht die für die Hauptfunktionalität der App unerlässlich sind, indem Sie vor dem Aufruf in der Bibliothek. Daher solltest du den minSdkVersion-Wert deiner Mediathek so niedrig ansetzen, dass kann es in Apps eingebettet und nach Möglichkeit aufgerufen werden, um mehr Nutzer Nutzenden.

  • Eine hohe minSdkVersion kann dazu führen, dass Anwendungen keine in der Bibliothek.

    Manifest-Fusion, ein Schritt in AGP, bei dem Manifestdateien zusammengeführt werden aus der Anwendung und ihren Abhängigkeiten, erzwingt, Abhängigkeiten haben einen höheren minSdkVersion als die Anwendung.

  • Wenn ein hoher minSdkVersion ausgewählt ist, werden App-Entwickler möglicherweise aufgefordert, Manifest-Merger-Sicherheitsprüfungen, die später im Build-Prozess Probleme verursachen.

    Da durch die Manifestzusammenführung verhindert wird, Bibliotheken mit einem höheren minSdkVersion als die App selbst, App-Entwickler kann die Sicherheitschecks der Manifest-Fusion deaktivieren, um den Build zu minimieren Fehler. Dadurch besteht jedoch das Risiko echter Inkompatibilitätsprobleme im Downstream.

  • Die Auswahl eines hohen minSdkVersion kann in Sonderfällen erforderlich sein, in denen das Manifest einer Bibliothek einen Rundfunkempfänger oder einen anderen Mechanismus enthält, und der Code wird automatisch ausgelöst.

    In diesen Fällen wird durch die Auswahl eines hohen minSdkVersion sichergestellt, dass der Code ausgeführt werden kann. Alternativ können Sie das automatische Verhalten deaktivieren, sodass die App Ausführung der Bibliothek nach der richtigen Prüfung.

Um das Einbetten in Apps zu erlauben, verwende die RequiresApi-Anmerkung in Ihrem um ihre Aufrufer darauf hinzuweisen, dass sie Laufzeitprüfungen durchführen müssen. Android-Geräte Lint verwendet die RequiresApi-Informationen für seine Inspektionen. Weitere Informationen zur Verwendung von Annotationen, um Ihren API-Code und Ihre APIs zu verbessern, finden Sie unter Code verbessern Prüfung mit Annotationen.

AAE-Metadaten einrichten

Eine Android-Bibliothek ist so gepackt, einer Android-Archivdatei (AAR). AAE-Metadaten bestehen aus Properties, AGP nutzt Bibliotheken. Wenn Ihre Bibliothek von einem inkompatiblen und AAE-Metadaten eingerichtet sind, wird Nutzern eine Fehlermeldung um das Problem zu beheben.

minCompileSdk-Wert auswählen

Ab Version 4.1 unterstützt AGP minCompileSdk Dieser Wert gibt den Mindestwert an, compileSdk die Projekte nutzen können. Wenn Ihre Bibliothek Manifesteinträge oder Ressourcen, die neuere Plattformattribute nutzen, müssen Sie legen Sie diesen Wert fest.

Der Wert minCompileSdk kann in defaultConfig{} festgelegt werden, Die Blöcke productFlavors{} und buildTypes{} auf Modulebene build.gradle Datei:

Cool

android {
  defaultConfig {
    aarMetadata {
      minCompileSdk = 29
    }
  }
  productFlavors {
    foo {
      ...
      aarMetadata {
        minCompileSdk = 30
      }
    }
  }
}

Kotlin

android {
  defaultConfig {
    aarMetadata {
      minCompileSdk = 29
    }
  }
  productFlavors {
    register("foo") {
      ...
      aarMetadata {
        minCompileSdk = 30
      }
    }
  }
}

Wenn du minCompileSdk an mehreren Stellen festlegst, werden die Einstellungen von Gradle priorisiert. während des Build-Prozesses folgende Speicherorte:

  1. buildTypes{}

  2. productFlavors{}

  3. defaultConfig{}

Im vorherigen Beispiel ist minCompileSdk in beiden defaultConfig{} und productFlavors{}, productFlavors{} hat Vorrang und minCompileSdk auf 30 festgelegt ist.

Weitere Informationen dazu, wie Gradle priorisiert Einstellungen bei der Kombination von Code und Ressourcen. Siehe Mit Quelle erstellen Sätze.

Test-Befestigungen aktivieren

Befestigungen testen werden häufig verwendet, um den zu testenden Code einzurichten oder die Tests einer Komponente. Ab Version 7.1 kann AGP Test-Fixierungen für Bibliothek erstellen Anwendungen und Projekten mit dynamischen Funktionen.

Wenn Sie eine Bibliothek veröffentlichen, die andere Nutzer nutzen können, sollten Sie einen Test erstellen. für Ihre API. Test-Displays können auf Modulebene aktiviert werden. build.gradle-Datei:

Cool

android {
  testFixtures {
    enable = true
  }
}

Kotlin

android {
  testFixtures {
    enable = true
  }
}

Wenn Sie Test-Fixierungen aktivieren, erstellt Gradle automatisch eine src/testFixtures-Quelltext, in den Sie Test-Fixierungen schreiben können.

Weitere Informationen finden Sie in der Gradle-Dokumentation zur Verwendung Test-Befestigungen.