Включить уведомления об открытом исходном коде

SDK сервисов Google Play иногда включают в себя или зависят от библиотек с открытым исходным кодом. Чтобы соответствовать требованиям лицензий библиотек с открытым исходным кодом, вы, как разработчик, несете ответственность за надлежащее отображение уведомлений об этих библиотеках, используемых вашим приложением.

Сервисы Google Play включают набор инструментов, предназначенных для упрощения разработчиками отображения информации об открытом исходном коде (OSS) библиотек, используемых в их приложениях. Плагин oss-licenses-plugin и SDK oss-licenses для сервисов Google Play собирают условия лицензирования из включенных библиотек, указанные в их POM-файлах, и создают действие , которое можно использовать для отображения этих условий. Узнайте больше о том, как инструмент находит и упаковывает информацию о лицензиях .

Добавьте плагин Gradle.

В настройках вашего проекта в pluginManagement выполните следующие действия:

  1. Включите репозиторий Google Maven .
  2. Удалите плагин oss-licenses в разделе PluginManagement .

Следующий фрагмент кода демонстрирует эти шаги:

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

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

В файле сборки вашего приложения добавьте следующую строку под существующим объявлением плагина com.android.application в верхней части файла:

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'
}

Код этого плагина можно посмотреть на GitHub.

Добавьте библиотеку play-services-oss-licenses в ваше приложение.

В разделе dependencies файла сборки вашего приложения добавьте зависимость от библиотеки play-services-oss-licenses :

Kotlin DSL

build.gradle.kts

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

Groovy DSL

build.gradle

implementation 'com.google.android.gms:play-services-oss-licenses:17.4.0'

Отобразить информацию о лицензии

При сборке вашего приложения плагин Gradle обрабатывает лицензии и добавляет их к ресурсам приложения. Для удобного отображения лицензии вы можете запустить активность, предоставляемую библиотекой play-services-oss-licenses в подходящем месте вашего приложения, как показано в следующем фрагменте кода:

Котлин

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));

При запуске приложения отображается список библиотек с открытым исходным кодом, скомпилированных в ваше приложение, включая библиотеки, используемые приложением, как показано на рисунке 1. Пользователи могут нажать на название библиотеки, чтобы просмотреть дополнительную информацию о лицензии для этой библиотеки.

Представление в виде списка, где каждый элемент содержит название библиотеки с открытым исходным кодом.

Рисунок 1. В меню лицензий отображается список библиотек с открытым исходным кодом, которые использует приложение, и их можно выбрать.

Задайте название мероприятия

По умолчанию отображаемое действие имеет заголовок «Лицензии с открытым исходным кодом». Вы можете изменить заголовок действия, вызвав метод setActivityTitle() , как показано в следующем фрагменте кода:

Котлин

OssLicensesMenuActivity.setActivityTitle(getString(R.string.custom_license_title))

Java

OssLicensesMenuActivity.setActivityTitle(getString(R.string.custom_license_title));

Примените тему к этому занятию.

Вы можете применить к активности тему оформления, соответствующую теме оформления других активностей вашего приложения. Для этого включите активность, посвященную лицензии с открытым исходным кодом, в элемент <activity> в файле манифеста вашего приложения, как показано в следующем фрагменте кода:

<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>

Как определяется список лицензий

На этапе компиляции плагин Gradle сканирует зависимости POM-файла проекта вашего приложения. Если для прямой зависимости приложения существует POM-файл Maven, плагин обрабатывает каждый элемент <licenses> и встраивает ссылку и название каждой лицензии в ресурс Android, который включается в ваше приложение.