Google Play-Dienste enthalten manchmal Open-Source-Bibliotheken oder sind von diesen abhängig. Zur Einhaltung der Lizenzanforderungen der Open-Source-Bibliotheken sind Sie als Entwickler dafür verantwortlich, dass die Hinweise zu den von Ihrer Anwendung verwendeten Open-Source-Bibliotheken korrekt angezeigt werden.
Die Google Play-Dienste umfassen eine Reihe von Tools, die Entwicklern eine einfache Möglichkeit bieten, die Open-Source-Softwarehinweise von Bibliotheken anzugeben, die in ihren Apps verwendet werden. Eines dieser Tools ist ein Gradle-Plug-in, das Lizenzbedingungen aus enthaltenen Bibliotheken, wie in den POM-Dateien angegeben, erfasst und eine Aktivität erstellt, mit der diese Bedingungen angezeigt werden können. Weitere Informationen dazu, wie das Tool Lizenzinformationen findet und verpackt
Gradle-Plug-in hinzufügen
Führen Sie in der Build-Datei auf Stammebene die folgenden Schritte aus:
- Fügen Sie das Maven-Repository von Google ein.
- Fügen Sie den Abhängigkeiten das Plug-in
oss-licenses
hinzu.
Das folgende Code-Snippet zeigt diese Schritte:
Kotlin-DSL
build.gradle.kts
buildscript { repositories { ... google() // maven { url("https://maven.google.com") } for Gradle <= 3 } dependencies { ... classpath("com.google.android.gms:oss-licenses-plugin:0.10.6") } }
Grooviges DSL
build.gradle
buildscript { repositories { ... google() // maven { url "https://maven.google.com" } for Gradle <= 3 } dependencies { ... classpath 'com.google.android.gms:oss-licenses-plugin:0.10.6' } }
Wenden Sie das Plug-in in der Build-Datei auf App-Ebene an, indem Sie unter der vorhandenen Deklaration des com.android.application
-Plug-ins oben in der Datei die folgende Zeile einfügen:
Kotlin-DSL
app/build.gradle.kts
plugins { id("com.android.application") id("com.google.android.gms.oss-licenses-plugin") }
Grooviges DSL
app/build.gradle
plugins { id 'com.android.application' id 'com.google.android.gms.oss-licenses-plugin' }
Sie können den Code für dieses Plug-in auf GitHub ansehen.
Bibliothek zur App hinzufügen
Füge im Abschnitt dependencies
der Build-Datei auf App-Ebene eine Abhängigkeit von der oss-licenses
-Bibliothek hinzu:
Kotlin-DSL
build.gradle.kts
implementation("com.google.android.gms:play-services-oss-licenses:17.1.0")
Grooviges DSL
build.gradle
implementation 'com.google.android.gms:play-services-oss-licenses:17.1.0'
Lizenzinformationen anzeigen
Beim Erstellen Ihrer App verarbeitet das Gradle-Plug-in die Lizenzen und fügt sie den Ressourcen Ihrer App hinzu. Zur einfachen Anzeige der Lizenz kannst du eine von der play-services-oss-licenses
-Bibliothek bereitgestellte Aktivität an einer geeigneten Stelle in deiner App starten, wie im folgenden Code-Snippet gezeigt:
Kotlin
import com.google.android.gms.oss.licenses.OssLicensesMenuActivity ... // When the user selects an option to see the licenses: startActivity(Intent(this, OssLicensesMenuActivity::class.java))
Java
import com.google.android.gms.oss.licenses.OssLicensesMenuActivity; ... // When the user selects an option to see the licenses: startActivity(new Intent(this, OssLicensesMenuActivity.class));
Beim Start dieser Aktivität wird eine Liste der Open-Source-Bibliotheken angezeigt, die in deiner App kompiliert wurden, einschließlich der Bibliotheken, die Teil der Google Play-Dienste sind (siehe Abbildung 1). Nutzer können auf den Namen einer Bibliothek tippen, um weitere Lizenzinformationen für diese Bibliothek aufzurufen.
Abbildung 1: In der Aktivität im Menü „Lizenzen“ wird eine auswählbare Liste der von einer Anwendung verwendeten Open-Source-Bibliotheken angezeigt.
Titel der Aktivität festlegen
Standardmäßig trägt die angezeigte Aktivität den Titel „Open-Source-Lizenzen“. Du kannst den Titel der Aktivität anpassen, indem du setActivityTitle()
aufrufst, wie im folgenden Code-Snippet gezeigt:
Kotlin
OssLicensesMenuActivity.setActivityTitle(getString(R.string.custom_license_title))
Java
OssLicensesMenuActivity.setActivityTitle(getString(R.string.custom_license_title));
Design auf die Aktivität anwenden
Sie können der Aktivität ein Design zuweisen, das zum Design der anderen Aktivitäten Ihrer App passt. Füge dazu die Open-Source-Lizenzaktivität in ein <activity>
-Element in der Manifestdatei deiner App ein, wie im folgenden Code-Snippet gezeigt:
<application android:theme="@style/AppTheme" ...> <activity android:name="com.google.android.gms.oss.licenses.OssLicensesMenuActivity" android:theme="@style/AppTheme" /> <activity android:name="com.google.android.gms.oss.licenses.OssLicensesActivity" android:theme="@style/AppTheme" /> </application>
So wird die Liste der Lizenzen ermittelt
Zum Zeitpunkt der Kompilierung scannt das Gradle-Plug-in die POM-Abhängigkeiten des Projekts Ihrer Anwendung. Wenn für eine direkte Abhängigkeit der App ein Maven-POM vorhanden ist, verarbeitet das Plug-in jedes <licenses>
-Element und bettet den Link und den Titel jeder Lizenz in ein Android-Asset ein, das in Ihrer App enthalten ist.