Usługi Google Play zawierają czasem biblioteki open source lub zależą od nich takie biblioteki. Aby zachować zgodność z wymaganiami dotyczącymi licencji bibliotek open source, jako deweloper odpowiadasz za odpowiednie wyświetlanie informacji o bibliotekach open source, z których korzysta Twoja aplikacja.
Usługi Google Play obejmują zestaw narzędzi, które mają ułatwić deweloperom zgłaszanie powiadomień o używanych w aplikacjach bibliotekach oprogramowania open source. Jednym z tych narzędzi jest wtyczka do Gradle, która zbiera warunki licencji z uwzględnionych bibliotek zgodnie z zadeklarowanymi w plikach POM i tworzy działanie, które może służyć do wyświetlania tych haseł. Dowiedz się więcej o tym, jak narzędzie znajduje i pakietuje informacje o licencji.
Dodawanie wtyczki Gradle
W pliku kompilacji na poziomie głównym wykonaj te czynności:
- Dodaj repozytorium Google Maven.
- Dodaj wtyczkę
oss-licenses
do zależności.
Ten fragment kodu wykonuje 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") } }
Świetny 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' } }
Zastosuj wtyczkę w pliku kompilacji na poziomie aplikacji, dodając na górze pliku ten wiersz pod istniejącą deklaracją wtyczki com.android.application
:
Kotlin DSL
plugins { id("com.android.application") id("com.google.android.gms.oss-licenses-plugin") }
Świetny DSL
plugins { id 'com.android.application' id 'com.google.android.gms.oss-licenses-plugin' }
Możesz wyświetlić kod tej wtyczki na GitHubie.
Dodaj bibliotekę do aplikacji
W sekcji dependencies
pliku kompilacji na poziomie aplikacji dodaj zależność z biblioteką oss-licenses
:
Kotlin DSL
implementation("com.google.android.gms:play-services-oss-licenses:17.0.1")
Świetny DSL
implementation 'com.google.android.gms:play-services-oss-licenses:17.0.1'
Wyświetl informacje o licencji
Podczas tworzenia aplikacji wtyczka Gradle przetwarza licencje i dodaje je do zasobów aplikacji. Aby łatwo wyświetlić licencję, możesz uruchomić aktywność z biblioteki play-services-oss-licenses
w odpowiednim punkcie aplikacji, jak widać 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 to działanie wyświetla listę bibliotek open source skompilowanych w Twoją aplikację, w tym biblioteki wchodzące w skład Usług Google Play, jak widać na ilustracji 1. Użytkownicy mogą kliknąć nazwę biblioteki, aby wyświetlić dodatkowe informacje na jej temat.
Rysunek 1. Aktywność w menu licencji zawiera listę bibliotek open source używanych przez aplikację do wyboru.
Ustaw tytuł aktywności
Domyślnie wyświetlana aktywność ma tytuł „Licencje open source”. Możesz dostosować tytuł aktywności, wywołując metodę 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, aby pasował do motywu używanego w innych działaniach w aplikacji. Aby to zrobić, umieść aktywność związaną z licencją open source w elemencie <activity>
w pliku manifestu aplikacji, jak pokazano poniżej:
<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>
Sposób określania listy licencji
Podczas kompilacji wtyczka Gradle skanuje zależności POM projektu aplikacji. Jeśli POM jest uzależnione od aplikacji bezpośrednio, wtyczka przetwarza każdy element <licenses>
i umieszcza link oraz tytuł każdej licencji w zasobie Androida dołączonym do aplikacji.