Open-Source-Hinweise einschließen

Google Play-Dienste-SDKs enthalten manchmal Open-Source-Bibliotheken oder sind von ihnen abhängig. Um die Lizenzanforderungen von Open-Source-Bibliotheken einzuhalten, sind Sie als Entwickler dafür verantwortlich, die Hinweise für die Open-Source-Bibliotheken, die in Ihrer App verwendet werden, korrekt anzuzeigen.

Google Play-Dienste enthalten eine Reihe von Tools, mit denen Entwickler die Open-Source-Software-Hinweise (Open Source Software, OSS) für Bibliotheken, die in ihren Apps verwendet werden, einfacher angeben können. Das oss-licenses-plugin- und das Google Play-Dienste-SDK für Open Source-Lizenzen erfassen die Lizenzbedingungen aus den enthaltenen Bibliotheken, wie in ihren POM-Dateien angegeben, 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 Projekteinstellungen unter pluginManagement so vor:

  1. Fügen Sie das Maven-Repository von Google hinzu.
  2. Beheben Sie das Problem mit dem oss-licenses-Plug-in im PluginManagement.

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.10.6")
      }
    }
  }
}

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.10.6")
      }
    }
  }
}

Wenden Sie das Plug-in in der Build-Datei auf App-Ebene an, indem Sie die folgende Zeile unter der vorhandenen Deklaration des com.android.application-Plug-ins oben in der Datei einfü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'
}

Den Code für dieses Plug-in finden Sie auf GitHub.

play-services-oss-licenses-Bibliothek zur App hinzufügen

Fügen Sie im Abschnitt dependencies der Build-Datei auf App-Ebene eine Abhängigkeit von der play-services-oss-licenses-Bibliothek hinzu:

Kotlin DSL

build.gradle.kts

implementation("com.google.android.gms:play-services-oss-licenses:17.1.0")

Groovy 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. Wenn Sie die Lizenz einfach anzeigen lassen möchten, können Sie an einer geeigneten Stelle in Ihrer App eine Aktivität starten, die von der play-services-oss-licenses-Bibliothek 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));

Wenn die Aktivität gestartet wird, wird eine Liste der Open-Source-Bibliotheken angezeigt, die in Ihre App kompiliert werden, einschließlich der von der App verwendeten Bibliotheken, wie in Abbildung 1 dargestellt. Nutzer können auf den Namen einer Bibliothek tippen, um weitere Lizenzinformationen für diese Bibliothek aufzurufen.

Listenansicht, in der jedes Element den Namen einer Open-Source-Bibliothek enthält

Abbildung 1. Die Menüaktivität „Lizenzen“ enthält eine auswählbare Liste der Open-Source-Bibliotheken, die in einer App verwendet werden.

Titel der Aktivität festlegen

Standardmäßig trägt die angezeigte Aktivität 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 in Ihrer App entspricht. Fügen Sie dazu die Aktivität der Open-Source-Lizenz 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

Zum Zeitpunkt der Kompilierung 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 vorhanden ist, verarbeitet das Plug-in jedes <licenses>-Element und fügt den Link und den Titel jeder Lizenz in ein Android-Asset ein, das in Ihrer App enthalten ist.