Incluir avisos de código aberto

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

À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 adequadamente os avisos das bibliotecas de código aberto que seu app usa.

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 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 exibir 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:

  1. Inclua o repositório Maven do Google.
  2. 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'
}

Veja 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 na biblioteca oss-licenses:

DSL do Kotlin

build.gradle.kts.

implementation("com.google.android.gms:play-services-oss-licenses:17.0.0")

DSL do Groovy

build.gradle

implementation 'com.google.android.gms:play-services-oss-licenses:17.0.0'

Mostrar informações da licença

Quando seu app é criado, o plug-in para Gradle processa as licenças e as adiciona aos recursos dele. Para exibir a licença com facilidade, você pode iniciar uma atividade fornecida pela biblioteca play-services-oss-licenses em um ponto adequado do app, como 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 app, incluindo as que fazem parte do Google Play Services, conforme mostrado na Figura 1. Os usuários podem tocar no nome de uma biblioteca para ver outras informações de licença.

Visualização em lista com cada elemento que contém o nome de uma biblioteca de
código aberto.

Figura 1. A atividade do menu de licenças mostra uma lista selecionável de bibliotecas de código aberto que um app usa.

Definir o título da atividade

Por padrão, a atividade exibida 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 abaixo:

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 usado em 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 abaixo:

<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 existe um POM do Maven 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.