Incluir avisos de código aberto

À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ê, desenvolvedor é responsável por exibir adequadamente os avisos para o bibliotecas de origem que seu app usa.

O Google Play Services inclui um conjunto de ferramentas projetadas para dar aos desenvolvedores um mais fácil de expressar os avisos de software de código aberto das bibliotecas usadas em seus 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 podem ser usadas para exibir esses termos. Saiba mais sobre como a ferramenta encontra e informações sobre licença de pacotes e pacotes.

Adicionar o plug-in do Gradle

No arquivo de build no nível raiz, faça o seguinte:

  1. Inclua o arquivo Maven do Google repositório.
  2. Adicione o plug-in oss-licenses às dependências.

O snippet de código abaixo 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 maneiro

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 atual do plug-in com.android.application, topo do arquivo:

DSL do Kotlin

app/build.gradle.kts

plugins {
    id("com.android.application")
    id("com.google.android.gms.oss-licenses-plugin")
}

DSL maneiro

app/build.gradle

plugins {
    id 'com.android.application'
    id 'com.google.android.gms.oss-licenses-plugin'
}

Você pode acessar a código para isso. 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.1.0")

DSL maneiro

build.gradle

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

Mostrar informações da licença

Quando o aplicativo é compilado, o plug-in do Gradle processa as licenças e as adiciona ao os recursos do seu app. Para mostrar a licença com facilidade, inicie uma atividade. fornecido pela biblioteca play-services-oss-licenses em um no 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 iniciada, essa atividade exibe uma lista de bibliotecas de código aberto que estão compilados no app, incluindo as bibliotecas que fazem parte do Google Play e serviços, como mostrado na Figura 1. Os usuários podem tocar no nome de uma biblioteca para conferir informações adicionais sobre a licença dessa biblioteca.

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

Figura 1. A atividade do menu de licenças mostra uma lista de opções bibliotecas de origem que um aplicativo usa.

Definir o título da atividade

Por padrão, a atividade exibida tem o título "Licenças de código aberto". Você pode personalize o título da atividade chamando setActivityTitle(), conforme mostrado neste snippet de código:

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 no outras atividades. Para isso, inclua a atividade da licença de código aberto em um <activity> no arquivo de manifesto do app, conforme mostrado no exemplo abaixo snippet de código:

<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

No tempo de compilação, o plug-in do Gradle verifica as dependências de POM do projeto. Quando existe um POM do Maven para uma dependência direta do app, o plug-in processa cada <licenses>; e incorpora o link e o título de cada licença em um ativo Android que é incluídos no seu app.