Usługi Google Play czasami zawierają biblioteki open source lub są od nich zależne. Aby zachować zgodność z wymaganiami dotyczącymi licencji bibliotek open source, jako deweloper odpowiadasz za odpowiednie wyświetlanie powiadomień dotyczących bibliotek open source, z których korzysta Twoja aplikacja.
Usługi Google Play obejmują zestaw narzędzi ułatwiających programistom informowanie o otwartym oprogramowaniu informacji o bibliotekach używanych w ich aplikacjach. Jednym z tych narzędzi jest wtyczka Gradle, która zbiera hasła licencyjne z uwzględnionych bibliotek zgodnie z definicją w plikach POM i tworzy aktywność, której można użyć do wyświetlania tych warunków. Dowiedz się więcej o tym, jak narzędzie znajduje i pobiera informacje o licencji.
Dodawanie wtyczki Gradle
W pliku kompilacji na poziomie głównym wykonaj te czynności:
- Uwzględnij repozytorium Google Maven.
- Dodaj wtyczkę
oss-licenses
do zależności.
Ten fragment kodu zawiera te informacje:
Kotlin DSL
kompilacja.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") } }
Świetne DSL
kompilacja.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' } }
W pliku kompilacji na poziomie aplikacji zastosuj wtyczkę, dodając ten wiersz pod istniejącą deklaracją wtyczki com.android.application
u góry pliku:
Kotlin DSL
app/build.gradle.kts
plugins { id("com.android.application") id("com.google.android.gms.oss-licenses-plugin") }
Świetne DSL
app/build.gradle
plugins { id 'com.android.application' id 'com.google.android.gms.oss-licenses-plugin' }
Kod tego wtyczki możesz zobaczyć na GitHubie.
Dodaj bibliotekę do aplikacji
W sekcji dependencies
pliku kompilacji na poziomie aplikacji dodaj zależność od biblioteki oss-licenses
:
Kotlin DSL
kompilacja.gradle.kts
implementation("com.google.android.gms:play-services-oss-licenses:17.0.0")
Świetne DSL
kompilacja.gradle
implementation 'com.google.android.gms:play-services-oss-licenses:17.0.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 uruchomić w odpowiednim momencie aplikacji działanie pochodzące z biblioteki 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 tej aktywności wyświetlana jest lista bibliotek open source skompilowanych w aplikacji, w tym bibliotek stanowiących część Usług Google Play (jak pokazano na rysunku 1). Użytkownicy mogą kliknąć nazwę biblioteki, aby wyświetlić dodatkowe informacje o licencji.
Rysunek 1. Aktywność związana z menu licencji zawiera możliwą do wyboru listę bibliotek open source, z których korzysta aplikacja.
Ustaw nazwę aktywności
Domyślnie wyświetlana aktywność ma tytuł „Licencje open source”. Możesz dostosować tytuł aktywności, wywołując metodę setActivityTitle()
, jak w tym fragmencie kodu:
Kotlin
OssLicensesMenuActivity.setActivityTitle(getString(R.string.custom_license_title))
Java
OssLicensesMenuActivity.setActivityTitle(getString(R.string.custom_license_title));
Zastosowanie motywu do działania
Możesz zastosować motyw do aktywności, aby pasował do motywu używanego w innych działaniach w aplikacji. Aby to zrobić, dołącz aktywność dotyczącą licencji open source do elementu <activity>
w 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>
Sposób określania listy licencji
Podczas kompilacji wtyczka Gradle skanuje zależności POM projektu. Gdy klucz menedżera Maven zawiera bezpośrednią zależności aplikacji, wtyczka przetwarza każdy element <licenses>
i umieszcza link oraz tytuł każdej licencji w zasobie Androida dołączonym do aplikacji.