Usługi Google Play mogą czasami zawierać biblioteki open source lub być od nich zależne. Aby spełnić wymagania licencyjne bibliotek open source, jako deweloper musisz odpowiednio wyświetlać powiadomienia dotyczące bibliotek open source, których używa Twoja aplikacja.
Usługi Google Play obejmują zestaw narzędzi, które ułatwiają deweloperom dodawanie powiadomień o oprogramowaniu open source w bibliotekach używanych w ich aplikacjach. Jednym z tych narzędzi jest wtyczka Gradle, która zbiera warunki licencji z załączonych bibliotek zgodnie z deklaracją w ich plikach POM i tworzy aktywność, która może być używana do wyświetlania tych warunków. Dowiedz się więcej o tym, jak narzędzie znajduje i pakuje informacje o licencjach.
Dodawanie wtyczki Gradle
W pliku kompilacji na poziomie katalogu głównego:
- Uwzględnij repozytorium Google Maven.
- Dodaj wtyczkę
oss-licenses
do swoich zależności.
Ten fragment kodu pokazuje te czynności:
Kotlin DSL
buildscript { repositories { ... google() // maven { url("https://maven.google.com") } for Gradle <= 3 } dependencies { ... classpath("com.google.android.gms:oss-licenses-plugin:0.10.6") } }
Groovy DSL
buildscript { repositories { ... google() // maven { url "https://maven.google.com" } for Gradle <= 3 } dependencies { ... classpath 'com.google.android.gms:oss-licenses-plugin:0.10.6' } }
W pliku kompilacji na poziomie aplikacji zastosuj wtyczkę, dodając ten wiersz pod istniejącą deklaracją wtyczki com.android.application
na początku pliku:
Kotlin DSL
plugins { id("com.android.application") id("com.google.android.gms.oss-licenses-plugin") }
Groovy DSL
plugins { id 'com.android.application' id 'com.google.android.gms.oss-licenses-plugin' }
Kod źródłowy tego wtyczki znajdziesz na GitHubie.
Dodawanie biblioteki do aplikacji
W sekcji dependencies
pliku kompilacji na poziomie aplikacji dodaj zależność od biblioteki oss-licenses
:
Kotlin DSL
implementation("com.google.android.gms:play-services-oss-licenses:17.1.0")
Groovy DSL
implementation 'com.google.android.gms:play-services-oss-licenses:17.1.0'
Wyświetlanie informacji o licencjach
Podczas kompilowania aplikacji wtyczka Gradle przetwarza licencje i dodaje je do zasobów aplikacji. Aby łatwo wyświetlić licencję, możesz uruchomić w odpowiednim miejscu w aplikacji aktywność udostępnioną przez bibliotekę play-services-oss-licenses
, jak pokazano w tym fragmencie kodu:
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));
Po uruchomieniu ta aktywność wyświetla listę bibliotek open source skompilowanych w aplikacji, w tym bibliotek wchodzących w skład usług Google Play (patrz rys. 1). Użytkownicy mogą kliknąć nazwę biblioteki, aby wyświetlić dodatkowe informacje o licencji.
Rysunek 1. Aktywność w menu Licencje zawiera listę bibliotek open source, których używa aplikacja.
Ustaw tytuł aktywności
Domyślnie wyświetlana aktywność ma tytuł „Licencja open source”. Możesz dostosować tytuł aktywności, wywołując funkcję setActivityTitle()
, jak pokazano w tym fragmencie kodu:
Kotlin
OssLicensesMenuActivity.setActivityTitle(getString(R.string.custom_license_title))
Java
OssLicensesMenuActivity.setActivityTitle(getString(R.string.custom_license_title));
Zastosuj motyw do aktywności
Możesz zastosować motyw do aktywności, aby dopasować go do motywu używanego w innych aktywnościach w aplikacji. Aby to zrobić, dodaj element <activity>
do pliku manifestu aplikacji, jak pokazano w tym fragmencie kodu:
<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>
Jak określana jest lista licencji
Podczas kompilacji wtyczka Gradle skanuje zależności POM projektu aplikacji. Jeśli istnieje plik Maven POM dla bezpośredniej zależności aplikacji, wtyczka przetwarza każdy element <licenses>
i umieszcza link oraz tytuł każdej licencji w zasobie Androida, który jest dołączony do aplikacji.