Às vezes, os SDKs do Google Play Services incluem ou dependem de bibliotecas de código aberto. Para obedecer aos requisitos de licença das bibliotecas de código aberto, você, como desenvolvedor, é responsável por mostrar adequadamente os avisos das bibliotecas de código aberto usadas pelo app.
O Google Play Services inclui um conjunto de ferramentas projetadas para oferecer aos desenvolvedores uma
maneira mais fácil de expressar os avisos de software de código aberto (OSS) das bibliotecas usadas
nos apps. O oss-licenses-plugin
e o SDK oss-licenses do Google Play Services coletam termos de licença de bibliotecas incluídas, conforme declarado nos arquivos POM, e criam uma atividade que pode ser usada para mostrar esses termos. Saiba mais sobre
como a ferramenta encontra e agrupa informações de licença.
Adicionar o plug-in do Gradle
No pluginManagement
das configurações do projeto, faça o seguinte:
- Inclua o repositório Maven do Google.
- Resolva o plug-in
oss-licenses
noPluginManagement
.
O snippet de código a seguir mostra essas etapas:
DSL do Kotlin
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.10.6") } } } }
DSL do Groovy
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.10.6") } } } }
No arquivo de build do app, aplique o plug-in adicionando a seguinte linha
abaixo da declaração atual do plug-in com.android.application
na
parte de cima do arquivo:
DSL do Kotlin
app/build.gradle.kts
plugins { id("com.android.application") id("com.google.android.gms.oss-licenses-plugin") }
DSL do Groovy
app/build.gradle
plugins { id 'com.android.application' id 'com.google.android.gms.oss-licenses-plugin' }
Confira o código desse plug-in no GitHub.
Adicionar a biblioteca play-services-oss-licenses
ao app
Na seção dependencies
do arquivo de build no nível do app, adicione uma dependência na
biblioteca play-services-oss-licenses
:
DSL do Kotlin
build.gradle.kts
implementation("com.google.android.gms:play-services-oss-licenses:17.2.2")
DSL do Groovy
build.gradle
implementation 'com.google.android.gms:play-services-oss-licenses:17.2.2'
Mostrar informações da licença
Quando o app é criado, o plug-in do Gradle processa as licenças e as adiciona aos recursos do app. Para mostrar a licença com facilidade, inicie uma atividade
fornecida pela biblioteca play-services-oss-licenses
em um ponto
adequado do seu app, conforme mostrado no snippet de código a seguir:
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));
Quando a atividade é iniciada, ela mostra uma lista de bibliotecas de código aberto compiladas no app, incluindo as usadas por ele, conforme mostrado na figura 1. Os usuários podem tocar no nome de uma biblioteca para ver mais informações sobre a licença dela.
Figura 1. A atividade do menu "Licenças" mostra uma lista selecionável de bibliotecas de código aberto usadas por um app.
Definir o título da atividade
Por padrão, a atividade mostrada tem o título "Licenças de código aberto". É possível
personalizar o título da atividade chamando
setActivityTitle()
,
conforme mostrado no snippet de código a seguir:
Kotlin
OssLicensesMenuActivity.setActivityTitle(getString(R.string.custom_license_title))
Java
OssLicensesMenuActivity.setActivityTitle(getString(R.string.custom_license_title));
Aplicar um tema à atividade
Você pode aplicar um tema à atividade para corresponder ao tema usado nas
outras atividades do app. Para fazer isso, inclua a atividade de licença de código aberto em um
elemento <activity>
no arquivo de manifesto do app, conforme mostrado no
snippet de código a seguir:
<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>
Como a lista de licenças é determinada
Durante a compilação, o plug-in do Gradle verifica as dependências do POM do projeto
do app. Quando um POM do Maven existe para uma dependência direta do app, o plug-in
processa cada elemento <licenses>
e incorpora o link e o título de cada licença em um recurso do Android que é
incluído no app.