Pakiety SDK Usług Google Play czasami zawierają biblioteki open source lub są od nich zależne. Aby zachować zgodność z wymaganiami licencyjnymi bibliotek open source, musisz jako programista odpowiednio wyświetlać informacje o bibliotekach open source używanych przez Twoją aplikację.
Usługi Google Play zawierają zestaw narzędzi, które ułatwiają programistom wyświetlanie informacji o oprogramowaniu open source (OSS) w bibliotekach używanych w ich aplikacjach. oss-licenses-plugin i pakiet SDK oss-licenses Usług Google Play zbierają warunki licencji z dołączonych bibliotek, zgodnie z deklaracją w ich plikach POM, i tworzą aktywność, która może służyć do wyświetlania tych warunków. Dowiedz się więcej o
tym, jak to narzędzie znajduje i pakuje informacje o licencjach.
Dodawanie wtyczki Gradle
W sekcji pluginManagement ustawień projektu wykonaj te czynności:
- Dodaj repozytorium Google Maven.
- Rozwiąż wtyczkę
oss-licensesw sekcjiPluginManagement.
Ten fragment kodu pokazuje te kroki:
Kotlin DSL
settings.gradle.kts
pluginManagement { repositories { ... google() } resolutionStrategy { eachPlugin { if (requested.id.id == "com.google.android.gms.oss-licenses-plugin") { useModule("com.google.android.gms:oss-licenses-plugin:0.12.0") } } } }
Groovy DSL
build.gradle
pluginManagement { repositories { ... google() } resolutionStrategy { eachPlugin { if (requested.id.id == "com.google.android.gms.oss-licenses-plugin") { useModule("com.google.android.gms:oss-licenses-plugin:0.12.0") } } } }
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") }
Groovy DSL
app/build.gradle
plugins { id 'com.android.application' id 'com.google.android.gms.oss-licenses-plugin' }
Kod tej wtyczki możesz wyświetlić na GitHubie.
Dodawanie biblioteki play-services-oss-licenses do aplikacji
W sekcji dependencies pliku kompilacji na poziomie aplikacji dodaj zależność od biblioteki play-services-oss-licenses:
Kotlin DSL
build.gradle.kts
implementation("com.google.android.gms:play-services-oss-licenses:17.5.1")
Groovy DSL
build.gradle
implementation 'com.google.android.gms:play-services-oss-licenses:17.5.1'
Wyświetlanie informacji o licencji
Podczas kompilowania aplikacji wtyczka Gradle przetwarza licencje i dodaje je do zasobów aplikacji. Aby łatwo wyświetlić licencję, możesz uruchomić aktywność udostępnianą przez bibliotekę play-services-oss-licenses w odpowiednim momencie w aplikacji, jak pokazano w tym fragmencie kodu:
Kotlin
import com.google.android.gms.oss.licenses.v2.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.v2.OssLicensesMenuActivity; ... // When the user selects an option to see the licenses: startActivity(new Intent(this, OssLicensesMenuActivity.class));
Po uruchomieniu aktywności wyświetla ona listę bibliotek open source skompilowanych w aplikacji, w tym bibliotek używanych przez aplikację, jak pokazano na rysunku 1. Użytkownicy mogą kliknąć nazwę biblioteki, aby wyświetlić dodatkowe informacje o licencji.
Rysunek 1. Aktywność menu licencji wyświetla listę bibliotek open source używanych przez aplikację.
Ustawianie tytułu 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
Istnieją różne sposoby stosowania motywu do OssLicensesMenuActivity, w zależności od tego, czy aplikacja używa motywów Material 3 czy motywów opartych na XML.
Aplikacje korzystające z Material 3
W przypadku aplikacji korzystających z Material 3 możesz wywołać metodę
setTheme(), aby zastosować niestandardowy motyw do aktywności, jak pokazano w tym fragmencie kodu:
Kotlin
import com.google.android.gms.oss.licenses.v2.OssLicensesMenuActivity ... OssLicensesMenuActivity.setTheme(lightColorScheme, darkColorScheme, typography) startActivity(Intent(this, OssLicensesMenuActivity::class.java))
Java
import com.google.android.gms.oss.licenses.v2.OssLicensesMenuActivity; ... OssLicensesMenuActivity.setTheme(lightColorScheme, darkColorScheme, typography); startActivity(new Intent(this, OssLicensesMenuActivity.class));
Aplikacje korzystające z motywów XML
W przypadku aplikacji korzystających z motywów XML możesz zastosować motyw do aktywności w manifeście, aby pasował do motywu używanego w innych aktywnościach aplikacji. Aby to zrobić,
dodaj aktywność 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.v2.OssLicensesMenuActivity" tools:replace="android:theme" android:theme="@style/AppTheme" /> </application>
Określanie listy licencji
Podczas kompilacji wtyczka Gradle skanuje zależności POM projektu aplikacji. Gdy dla bezpośredniej zależności aplikacji istnieje plik POM Maven, wtyczka
przetwarza każdy <licenses>
element i osadza link oraz tytuł każdej licencji w zasobie Androida, który jest
dołączony do aplikacji.