Open-Source-Hinweise einschließen

Google Play-Dienste enthalten manchmal Open-Source-Bibliotheken oder sind von diesen abhängig. Um die Lizenzanforderungen von Open-Source-Bibliotheken zu erfüllen, müssen Sie als Entwickler sind dafür verantwortlich, die Hinweise für die offene Quellbibliotheken, die Ihre Anwendung verwendet.

Die Google Play-Dienste umfassen eine Reihe von Tools, mit denen Entwickler einfachere Möglichkeit, Hinweise auf Open-Source-Software von Bibliotheken auszudrücken, die in für ihre Apps. Eines dieser Tools ist ein Gradle-Plug-in, mit dem Lizenzbedingungen erfasst werden. aus enthaltenen Bibliotheken, wie in den POM-Dateien angegeben, und erstellt ein Aktivität die zur Anzeige dieser Begriffe verwendet werden können. Weitere Informationen dazu, wie das Tool die Ergebnisse findet Lizenzinformationen für Pakete und Pakete.

Gradle-Plug-in hinzufügen

Führen Sie in der Build-Datei auf Stammebene die folgenden Schritte aus:

  1. Fügen Sie den Maven-Code von Google .
  2. Fügen Sie den 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")
  }
}

Grooviges 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 der Build-Datei auf App-Ebene an, indem Sie die folgende Zeile hinzufügen unter der vorhandenen Deklaration des com.android.application-Plug-ins auf der zum Anfang der Datei:

Kotlin-DSL

app/build.gradle.kts

plugins {
    id("com.android.application")
    id("com.google.android.gms.oss-licenses-plugin")
}

Grooviges DSL

app/build.gradle

plugins {
    id 'com.android.application'
    id 'com.google.android.gms.oss-licenses-plugin'
}

Sie können die Code dafür. auf GitHub.

Bibliothek zur App hinzufügen

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

Kotlin DSL

build.gradle.kts

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

Grooviges 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 Ihrem die Ressourcen Ihrer App. Du kannst eine Aktivität starten, um die Lizenz ganz einfach anzeigen zu lassen der von der play-services-oss-licenses-Bibliothek in einem geeigneten in Ihrer App platzieren, 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));

Beim Start zeigt diese Aktivität eine Liste von Open-Source-Bibliotheken an, in deiner App kompiliert, einschließlich der Bibliotheken, die Teil von Google Play sind wie in Abbildung 1 dargestellt. Nutzer können auf den Namen der Bibliothek tippen, um sie anzusehen. zusätzliche Lizenzinformationen für diese Bibliothek.

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

Abbildung 1. Im Menü „Lizenzen“ ist eine auswählbare Liste Quellbibliotheken, die eine Anwendung verwendet.

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(), Dies wird 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 zu dem Design Ihrer App passt. andere Aktivitäten. Nehmen Sie dazu die Aktivitäten zu Open-Source-Lizenzen in einer <activity>-Element in der Manifestdatei deiner App, wie im Folgenden gezeigt. Code-Snippet hinzu:

<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

Beim Kompilieren scannt das Gradle-Plug-in die POM-Abhängigkeiten der Projekt arbeiten. Wenn für eine direkte Abhängigkeit der App ein Maven-POM vorhanden ist, verarbeitet jede <licenses> und bettet den Link und den Titel jeder Lizenz in ein Android-Asset ein, das automatisch die in Ihrer App enthalten sind.