Die Google Play Services SDKs enthalten manchmal Open-Source-Bibliotheken oder sind von ihnen abhängig. Um die Lizenzanforderungen von Open-Source-Bibliotheken zu erfüllen, sind Sie als Entwickler dafür verantwortlich, die Hinweise für die Open-Source-Bibliotheken, die Ihre App verwendet, entsprechend anzuzeigen.
Google Play Services enthält eine Reihe von Tools, mit denen Entwickler die Hinweise zur Open-Source-Software (OSS) von Bibliotheken, die in ihren Apps verwendet werden, einfacher ausdrücken können. Das oss-licenses-plugin und das Google Play Services
oss-licenses SDK erfassen die Lizenzbedingungen aus den enthaltenen Bibliotheken, wie in
ihren POM-Dateien deklariert, und erstellen eine
Aktivität
, mit der diese Bedingungen angezeigt werden können. Weitere Informationen dazu,
wie das Tool Lizenzinformationen findet und verpackt.
Gradle-Plug-in hinzufügen
Gehen Sie in den pluginManagement-Einstellungen Ihres Projekts so vor:
- Fügen Sie das Google Maven-Repository hinzu.
- Lösen Sie das
oss-licenses-Plug-in inPluginManagementauf.
Das folgende Code-Snippet zeigt diese Schritte:
Kotlin DSL
settings.gradle.kts
pluginManagement { repositories { ... google() } resolutionStrategy { eachPlugin { if (requested.id.id == "com.google.android.gms.oss-licenses-plugin") { useModule("com.google.android.gms:oss-licenses-plugin:0.11.0") } } } }
Groovy DSL
build.gradle
pluginManagement { repositories { ... google() } resolutionStrategy { eachPlugin { if (requested.id.id == "com.google.android.gms.oss-licenses-plugin") { useModule("com.google.android.gms:oss-licenses-plugin:0.11.0") } } } }
Wenden Sie das Plug-in in der Build-Datei auf App-Ebene an, indem Sie oben in der Datei unter der vorhandenen Deklaration des com.android.application-Plug-ins die folgende Zeile hinzufügen:
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 den Code für dieses Plug-in auf GitHub ansehen.
Der App die Bibliothek play-services-oss-licenses hinzufügen
Fügen Sie im Abschnitt dependencies der Build-Datei auf App-Ebene eine Abhängigkeit von der Bibliothek play-services-oss-licenses hinzu:
Kotlin DSL
build.gradle.kts
implementation("com.google.android.gms:play-services-oss-licenses:17.5.0")
Groovy DSL
build.gradle
implementation 'com.google.android.gms:play-services-oss-licenses:17.5.0'
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 einfach anzuzeigen, können Sie an einer geeigneten Stelle in Ihrer App eine Aktivität starten, die von der Bibliothek play-services-oss-licenses bereitgestellt wird. Das folgende Code-Snippet zeigt, wie das geht:
Kotlin
import com.google.android.gms.oss.licenses.v2.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.v2.OssLicensesMenuActivity; ... // When the user selects an option to see the licenses: startActivity(new Intent(this, OssLicensesMenuActivity.class));
Wenn die Aktivität gestartet wird, wird eine Liste der Open-Source-Bibliotheken angezeigt, die in Ihre App kompiliert wurden, einschließlich der von der App verwendeten Bibliotheken. Das ist in Abbildung 1 zu sehen. Nutzer können auf den Namen einer Bibliothek tippen, um weitere Lizenzinformationen für diese Bibliothek aufzurufen.
Abbildung 1 : Die Aktivität des Menüs „Lizenzen“ zeigt eine auswählbare Liste von Open-Source-Bibliotheken, die von einer App verwendet werden.
Titel der Aktivität festlegen
Standardmäßig hat die angezeigte Aktivität den Titel „Open-Source-Lizenzen“. Sie können
den Titel der Aktivität anpassen, indem Sie
setActivityTitle()aufrufen.
Das folgende Code-Snippet zeigt, wie das geht:
Kotlin
OssLicensesMenuActivity.setActivityTitle(getString(R.string.custom_license_title))
Java
OssLicensesMenuActivity.setActivityTitle(getString(R.string.custom_license_title));
Design auf die Aktivität anwenden
Es gibt verschiedene Möglichkeiten, ein Design auf OssLicensesMenuActivity anzuwenden, je nachdem, ob Ihre App Material 3 oder XML-basierte Designs verwendet.
Apps, die Material 3 verwenden
Bei Apps, die Material 3 verwenden, können Sie die
setTheme()
Methode aufrufen, um ein benutzerdefiniertes Design auf die Aktivität anzuwenden. Das folgende Code
Snippet zeigt, wie das geht:
Kotlin
import com.google.android.gms.oss.licenses.v2.OssLicensesMenuActivity ... OssLicensesMenuActivity.setTheme(lightColorScheme, darkColorScheme, typography) startActivity(Intent(this, OssLicensesMenuActivity::class.java))
Java
import com.google.android.gms.oss.licenses.v2.OssLicensesMenuActivity; ... OssLicensesMenuActivity.setTheme(lightColorScheme, darkColorScheme, typography); startActivity(new Intent(this, OssLicensesMenuActivity.class));
Apps, die XML-Designs verwenden
Bei Apps, die XML-Designs verwenden, können Sie im Manifest ein Design auf die Aktivität anwenden, das dem Design entspricht, das in den anderen Aktivitäten Ihrer App verwendet wird. Fügen Sie dazu die Open-Source-Lizenzaktivität in ein <activity> Element in der Manifestdatei Ihrer
App ein. Das folgende Code-Snippet zeigt, wie das geht:
<application android:theme="@style/AppTheme" ...> <activity android:name="com.google.android.gms.oss.licenses.v2.OssLicensesMenuActivity" tools:replace="android:theme" android:theme="@style/AppTheme" /> </application>
So wird die Liste der Lizenzen bestimmt
Zur Kompilierzeit scannt das Gradle-Plug-in die POM-Abhängigkeiten des Projekts Ihrer App. Wenn für eine direkte Abhängigkeit der App eine Maven-POM-Datei 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.