Google Play-Dienste umfassen unter Umständen Open-Source-Bibliotheken bzw. sind von diesen abhängig. Zur Einhaltung der Lizenzanforderungen von Open-Source-Bibliotheken sind Sie als Entwickler dafür verantwortlich, entsprechende Hinweise für die in Ihrer App verwendeten Open-Source-Bibliotheken anzuzeigen.
Die Google Play-Dienste umfassen eine Reihe von Tools, mit denen Entwickler die Open-Source-Softwarehinweise in Bibliotheken, die in ihren Apps verwendet werden, einfacher ausdrücken können. Eines dieser Tools ist ein Gradle-Plug-in, das Lizenzbedingungen aus enthaltenen Bibliotheken gemäß den POM-Dateien 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 folgende Schritte aus:
- Schließen Sie das Google Maven-Repository ein.
- Fügen Sie Ihren 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") } }
Groovige 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 in Ihrer Build-Datei auf App-Ebene das Plug-in an, indem Sie die folgende Zeile unter der vorhandenen Deklaration des Plug-ins com.android.application
oben in der Datei hinzufügen:
Kotlin-DSL
app/build.gradle.kts
plugins { id("com.android.application") id("com.google.android.gms.oss-licenses-plugin") }
Groovige 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 in Ihre App einbinden
Fügen Sie im Abschnitt dependencies
der Build-Datei auf App-Ebene eine Abhängigkeit von der Bibliothek oss-licenses
hinzu:
Kotlin-DSL
build.gradle.kts
implementation("com.google.android.gms:play-services-oss-licenses:17.0.1")
Groovige DSL
build.gradle
implementation 'com.google.android.gms:play-services-oss-licenses:17.0.1'
Lizenzinformationen anzeigen
Wenn Ihre Anwendung erstellt wird, verarbeitet das Gradle-Plug-in die Lizenzen und fügt sie den Ressourcen der App hinzu. Zum einfachen Anzeigen der Lizenz kannst du eine Aktivität starten, die von der Bibliothek play-services-oss-licenses
an einem entsprechenden Punkt in deiner App bereitgestellt wird, 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));
Nach dem Start wird bei dieser Aktivität eine Liste der Open-Source-Bibliotheken angezeigt, die in Ihrer App kompiliert sind, einschließlich der Bibliotheken, die Teil der Google Play-Dienste sind (siehe Abbildung 1). Nutzer können auf den Namen einer Bibliothek tippen, um zusätzliche Lizenzinformationen für diese Bibliothek aufzurufen.
Abbildung 1. Die Aktivität im Lizenzmenü enthält eine auswählbare Liste von Open-Source-Bibliotheken, die eine App verwendet.
Aktivitätstitel festlegen
Die angezeigte Aktivität hat standardmäßig den Titel „Open-Source-Lizenzen“. Sie können den Titel der Aktivität anpassen, indem Sie setActivityTitle()
aufrufen, wie im folgenden Code-Snippet dargestellt:
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 ein Design auf die Aktivität anwenden, damit es mit dem Design der anderen Aktivitäten Ihrer App übereinstimmt. Fügen Sie dazu die Open-Source-Lizenzaktivität in ein <activity>
-Element in der Manifestdatei Ihrer 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 bestimmt
Zum Zeitpunkt der Kompilierung scannt das Gradle-Plug-in die POM-Abhängigkeiten des Projekts Ihrer Anwendung. Wenn ein Maven-POM für eine direkte Abhängigkeit der App 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 deiner App enthalten ist.