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 minSdkVersion
s 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:
buildTypes{}
productFlavors{}
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.