Usługi Google Play czasami zawierają biblioteki open source lub zależą od nich. Aby spełnić wymagania licencyjne dotyczące bibliotek open source, jako deweloper ponosisz odpowiedzialność za odpowiednie wyświetlanie powiadomień dotyczących bibliotek open source, z których korzysta Twoja aplikacja.
Usługi Google Play zawierają zestaw narzędzi ułatwiających programistom informowanie o otwartym oprogramowaniu informacji o bibliotekach używanych w ich aplikacjach. Jedno z tych narzędzi to wtyczka Gradle, która zbiera hasła licencji z uwzględnionych bibliotek zadeklarowanych w plikach POM i tworzy aktywność, której można użyć do wyświetlenia tych warunków. Dowiedz się więcej o tym, jak narzędzie znajduje i pakuje licencje.
Dodawanie wtyczki Gradle
W pliku kompilacji najwyższego poziomu wykonaj te czynności:
- Dołącz repozytorium Google Maven.
- Dodaj wtyczkę
oss-licenses
do zależności.
Ten fragment kodu zawiera następujące 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") } }
Imponująca wersja 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") }
Imponująca wersja DSL
app/build.gradle
plugins { id 'com.android.application' id 'com.google.android.gms.oss-licenses-plugin' }
Kod tej 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
kompilacja.gradle.kts
implementation("com.google.android.gms:play-services-oss-licenses:17.0.1")
Imponująca wersja DSL
kompilacja.gradle
implementation 'com.google.android.gms:play-services-oss-licenses:17.0.1'
Wyświetl informacje o licencji
Podczas kompilowania aplikacji wtyczka Gradle przetwarza licencje i dodaje je do zasobów aplikacji. Aby łatwo wyświetlić licencję, możesz uruchomić działanie dostarczane przez bibliotekę play-services-oss-licenses
w odpowiednim miejscu aplikacji, 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 Twojej aplikacji, łącznie z bibliotekami będącymi częścią Usług Google Play, jak pokazano na ilustracji 1. Aby wyświetlić dodatkowe informacje o licencji, użytkownicy mogą kliknąć nazwę biblioteki.
Rysunek 1. Aktywność w menu licencji zawiera listę możliwych do wybrania bibliotek open source używanych przez aplikację.
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 pokazano w tym fragmencie kodu:
Kotlin
OssLicensesMenuActivity.setActivityTitle(getString(R.string.custom_license_title))
Java
OssLicensesMenuActivity.setActivityTitle(getString(R.string.custom_license_title));
Stosowanie motywu do aktywności
Do aktywności możesz zastosować motyw pasujący do innych działań w aplikacji. Aby to zrobić, uwzględnij aktywność dotyczącą licencji open source w elemencie <activity>
aplikacji 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>
Jak określa się listę licencji
W czasie kompilacji wtyczka Gradle skanuje zależności POM projektu aplikacji. W przypadku bezpośredniego zarządzania zależnościami aplikacji Maven Pom przetwarza każdy element <licenses>
i umieszcza link oraz tytuł każdej licencji w zasobie Android dołączonym do aplikacji.