Службы Google Play иногда включают библиотеки с открытым исходным кодом или зависят от них. Чтобы соответствовать лицензионным требованиям библиотек с открытым исходным кодом, вы как разработчик несете ответственность за правильное отображение уведомлений о библиотеках с открытым исходным кодом, которые использует ваше приложение.
Сервисы Google Play включают в себя набор инструментов, призванных предоставить разработчикам более простой способ выразить уведомления о программном обеспечении с открытым исходным кодом библиотек, используемых в их приложениях. Одним из таких инструментов является плагин Gradle, который собирает условия лицензии из включенных библиотек, как указано в их POM-файлах, и создает действие , которое можно использовать для отображения этих условий. Узнайте больше о том, как инструмент находит и упаковывает информацию о лицензии .
Добавьте плагин Gradle
В файле сборки корневого уровня выполните следующие действия:
- Включите репозиторий Google Maven .
- Добавьте плагин
oss-licenses
в свои зависимости.
В следующем фрагменте кода показаны эти шаги:
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")
}
}
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'
}
}
В файле сборки уровня приложения примените плагин, добавив следующую строку под существующим объявлением плагина com.android.application
в верхней части файла:
приложение/build.gradle.kts
plugins {
id("com.android.application")
id("com.google.android.gms.oss-licenses-plugin")
}
приложение/build.gradle
plugins {
id 'com.android.application'
id 'com.google.android.gms.oss-licenses-plugin'
}
Вы можете просмотреть код этого плагина на GitHub.
Добавьте библиотеку в свое приложение
В разделе dependencies
файла сборки уровня приложения добавьте зависимость от библиотеки oss-licenses
:
build.gradle.kts
implementation("com.google.android.gms:play-services-oss-licenses:17.1.0")
build.gradle
implementation 'com.google.android.gms:play-services-oss-licenses:17.1.0'
Отображение информации о лицензии
Когда ваше приложение создается, плагин Gradle обрабатывает лицензии и добавляет их в ресурсы вашего приложения. Чтобы легко отобразить лицензию, вы можете запустить действие, предоставляемое библиотекой play-services-oss-licenses
в соответствующем месте вашего приложения, как показано в следующем фрагменте кода:
import com.google.android.gms.oss.licenses.OssLicensesMenuActivity
...
// When the user selects an option to see the licenses:
startActivity(Intent(this, OssLicensesMenuActivity::class.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));
При запуске этого действия отображается список библиотек с открытым исходным кодом, скомпилированных в ваше приложение, включая библиотеки, являющиеся частью сервисов Google Play, как показано на рисунке 1. Пользователи могут нажать на название библиотеки, чтобы просмотреть дополнительную лицензию. информация для этой библиотеки.
Рис. 1. В меню лицензий отображается список доступных для выбора библиотек с открытым исходным кодом, которые использует приложение.
Установите название действия
По умолчанию отображаемое действие имеет заголовок «Лицензии с открытым исходным кодом». Вы можете настроить заголовок действия, вызвав setActivityTitle()
, как показано в следующем фрагменте кода:
OssLicensesMenuActivity.setActivityTitle(getString(R.string.custom_license_title))
OssLicensesMenuActivity.setActivityTitle(getString(R.string.custom_license_title));
Применение темы к действию
Вы можете применить к действию тему, соответствующую теме, используемой в других действиях вашего приложения. Для этого включите действие лицензии с открытым исходным кодом в элемент <activity>
в файле манифеста вашего приложения, как показано в следующем фрагменте кода:
<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>
Как определяется список лицензий
Во время компиляции плагин Gradle сканирует POM-зависимости проекта вашего приложения. Если существует Maven POM для прямой зависимости приложения, плагин обрабатывает каждый элемент <licenses>
и встраивает ссылку и название каждой лицензии в ресурс Android, включенный в ваше приложение.