Open-Source-Hinweise einschließen

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:

  1. Schließen Sie das Google Maven-Repository ein.
  2. 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.

Listenansicht mit jedem Element, das den Namen einer Open-Source-Bibliothek enthält

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.