Usługi Google Play czasami zawierają biblioteki open source lub są od nich zależne. Aby zachować zgodność z wymaganiami dotyczącymi licencji dotyczącymi bibliotek open source, jako deweloper odpowiadasz za prawidłowe wyświetlanie powiadomień dotyczących bibliotek open source używanych przez Twoją aplikację.
Usługi Google Play zawierają zestaw narzędzi, które ułatwiają deweloperom zgłaszanie powiadomień o oprogramowaniu open source pochodzącym z bibliotek używanych w aplikacjach. Jednym z tych narzędzi jest wtyczka do Gradle, która zbiera warunki licencji z dołączonych bibliotek zgodnie z deklaracją w plikach POM i tworzy działanie, które można wykorzystać do wyświetlania tych warunków. Dowiedz się więcej o tym, jak to narzędzie znajduje i pakuje informacje o licencji.
Dodawanie wtyczki Gradle
W głównym pliku kompilacji wykonaj te czynności:
- Dołącz repozytorium Google Maven.
- Dodaj wtyczkę
oss-licenses
do zależności.
Ten fragment kodu ilustruje te kroki:
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' } }
W pliku kompilacji na poziomie aplikacji zastosuj wtyczkę, dodając ten wiersz w istniejącej deklaracji wtyczki com.android.application
na górze pliku:
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' }
Kod tej wtyczki możesz wyświetlić na GitHubie.
Dodaj bibliotekę do aplikacji
W sekcji dependencies
pliku kompilacji na poziomie aplikacji dodaj zależność do biblioteki oss-licenses
:
Kotlin DSL
implementation("com.google.android.gms:play-services-oss-licenses:17.1.0")
Świetny DSL
implementation 'com.google.android.gms:play-services-oss-licenses:17.1.0'
Wyświetl informacje o licencji
Podczas kompilacji aplikacji wtyczka Gradle przetwarza licencje i dodaje je do zasobów aplikacji. Aby łatwo wyświetlić licencję, możesz w odpowiednim punkcie aplikacji uruchomić aktywność udostępnianą 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 to działanie wyświetla listę bibliotek open source, które są kompilowane w Twojej aplikacji, w tym biblioteki wchodzące w skład usług Google Play, jak pokazano na rysunku 1. Użytkownicy mogą dotknąć nazwy biblioteki, aby wyświetlić dodatkowe informacje o licencji na daną bibliotekę.
Rysunek 1. Aktywność w menu licencji zawiera listę bibliotek open source używanych przez aplikację, które można wybrać.
Ustaw nazwę aktywności
Domyślnie wyświetlana aktywność nosi tytuł „Licencje open source”. Możesz dostosować nazwę 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
Do aktywności możesz zastosować motyw, aby dopasować go do innych aktywności w aplikacji. Aby to zrobić, uwzględnij aktywność związaną z licencją open source w elemencie <activity>
w pliku manifestu aplikacji, jak 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>
Sposób określania listy licencji
Podczas kompilowania wtyczka Gradle skanuje zależności POM projektu aplikacji. Gdy istnieje menedżer Maven zależny od bezpośredniej zależności aplikacji, wtyczka przetwarza każdy element <licenses>
i umieszcza link oraz tytuł każdej licencji w zasobie Androida dołączanym do aplikacji.