Às vezes, o Google Play Services inclui ou depende 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 exibir corretamente os avisos das bibliotecas de código aberto que seu app usa.
O Google Play Services inclui um conjunto de ferramentas projetadas para dar aos desenvolvedores uma maneira mais fácil de expressar os avisos de software de código aberto das bibliotecas usadas nos apps. Uma dessas ferramentas é um plug-in do Gradle que coleta termos de licença das bibliotecas incluídas, conforme declarado nos arquivos POM, e cria uma atividade que pode ser usada para mostrar esses termos. Saiba mais sobre como a ferramenta encontra e empacota informações de licença.
Adicionar o plug-in para Gradle
No arquivo de build no nível raiz, faça o seguinte:
- Inclua o repositório Maven do Google.
- Adicione o plug-in
oss-licenses
às suas dependências.
O snippet de código a seguir mostra essas etapas:
DSL do Kotlin
build.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") } }
DSL do Groovy
build.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' } }
No arquivo de build no nível do app, aplique o plug-in adicionando a seguinte linha
na declaração existente 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' }
É possível conferir o código desse plug-in no GitHub.
Adicionar a biblioteca ao app
Na seção dependencies
do arquivo de build do app, adicione uma dependência à biblioteca oss-licenses
:
DSL do Kotlin
build.gradle.kts
implementation("com.google.android.gms:play-services-oss-licenses:17.0.1")
DSL do Groovy
build.gradle
implementation 'com.google.android.gms:play-services-oss-licenses:17.0.1'
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, você pode iniciar uma atividade
fornecida pela biblioteca play-services-oss-licenses
em um ponto adequado
no app, conforme mostrado no snippet de código abaixo:
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 iniciada, essa atividade exibe uma lista de bibliotecas de código aberto que são compiladas no seu app, incluindo as bibliotecas que fazem parte do Google Play Services, como mostrado na Figura 1. Os usuários podem tocar no nome de uma biblioteca para ver outras informações sobre a licença dela.
Figura 1. A atividade do menu de 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 exibida tem o título "Licenças de código aberto". Você pode
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 combinar com o tema usado nas
outras atividades do app. Para fazer isso, inclua a atividade da 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 para 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 Android
incluído no app.