Die Google Play-Dienste umfassen manchmal Open-Source-Bibliotheken oder sind von diesen abhängig. Gemäß den Lizenzanforderungen von Open-Source-Bibliotheken sind Sie als Entwickler dafür verantwortlich, die Hinweise für die von Ihrer App verwendeten Open-Source-Bibliotheken ordnungsgemäß anzuzeigen.
Die Google Play-Dienste umfassen eine Reihe von Tools, mit denen Entwickler die Open-Source-Softwarehinweise für 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, wie in ihren POM-Dateien deklariert, erfasst und eine Aktivität erstellt, die zur Anzeige dieser Bedingungen verwendet werden kann. Weitere Informationen dazu, wie das Tool Lizenzinformationen findet und verpackt
Gradle-Plug-in hinzufügen
Führen Sie in Ihrer Build-Datei auf Stammebene folgende Schritte aus:
- Fügen Sie das Google Maven-Repository hinzu.
- 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") } }
Groovy 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 Ihrer Build-Datei auf App-Ebene an. Fügen Sie dazu die folgende Zeile unter der vorhandenen Deklaration des Plug-ins com.android.application
am Anfang der Datei ein:
Kotlin DSL
app/build.gradle.kts
plugins { id("com.android.application") id("com.google.android.gms.oss-licenses-plugin") }
Groovy DSL
app/build.gradle
plugins { id 'com.android.application' id 'com.google.android.gms.oss-licenses-plugin' }
Sie können sich den Code für dieses Plug-in auf GitHub ansehen.
Bibliothek zu Ihrer App hinzufügen
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")
Groovy DSL
build.gradle
implementation 'com.google.android.gms:play-services-oss-licenses:17.0.1'
Lizenzinformationen anzeigen
Wenn Ihre App erstellt wird, verarbeitet das Gradle-Plug-in die Lizenzen und fügt sie den Ressourcen Ihrer App hinzu. Um die Lizenz auf einfache Weise anzuzeigen, können Sie eine Aktivität, die von der play-services-oss-licenses
-Bibliothek bereitgestellt wird, an einer geeigneten Stelle in Ihrer 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));
Wenn diese Aktivität gestartet wird, wird eine Liste der Open-Source-Bibliotheken angezeigt, die in Ihre 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 zusätzliche Lizenzinformationen dafür aufzurufen.
Abbildung 1. Die Aktivität im Menü „Lizenzen“ enthält eine auswählbare Liste der 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 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 dem Design der anderen Aktivitäten Ihrer App entspricht. 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 ermittelt
Bei der Kompilierung scannt das Gradle-Plug-in die POM-Abhängigkeiten des Projekts Ihrer App. 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 Ihrer App enthalten ist.