Skip to content

Most visited

Recently visited

navigation

Criar uma biblioteca Android

Estruturalmente, uma biblioteca Android é igual a um módulo de aplicativo Android. Ela pode conter tudo o que é necessário para criar um aplicativo, inclusive código-fonte, arquivos de recursos e um manifesto do Android. No entanto, em vez de compilada em um APK para execução em um dispositivo, a biblioteca Android é compilada em um arquivo Android Archive (AAR) que pode ser usado como dependência de um módulo de aplicativo Android. Diferentemente dos arquivos JAR, os arquivos AAR podem conter recursos Android e um arquivo de manifesto, o que permite empacotar recursos compartilhados como layouts e drawables, além de classes e métodos Java.

Um módulo de biblioteca é útil nas seguintes situações:

Nos dois casos, basta mover os arquivos a reutilizar para um módulo de biblioteca e adicioná-la como dependência para cada módulo de aplicativo. Esta página ensina a proceder nas duas situações.

Criar um módulo de biblioteca

Para criar um novo módulo de biblioteca no projeto, faça o seguinte:

  1. Clique em File > New > New Module.
  2. Na janela exibida Create New Module, clique em Android Library e em Next.

    Existe também uma opção para criar uma biblioteca Java, que cria um arquivo JAR tradicional. Embora um arquivo JAR seja útil para muitos projetos, principalmente quando é necessário compartilhar código com outras plataformas, esse tipo de arquivo não permite a inclusão de recursos Android nem arquivos de manifesto, o que é muito útil para reutilização de código em projetos Android. Portanto, este guia se concentra na criação de bibliotecas Android.

  3. Atribua um nome à biblioteca, selecione uma versão mínima de SDK para o código na biblioteca e clique em Finish.

Após a conclusão da sincronização do projeto Gradle, o módulo de biblioteca será exibido no painel Project à esquerda. Se a pasta do novo módulo não for exibida, verifique se a visualização do Android está sendo exibida.

Converter um módulo de aplicativo em um módulo de biblioteca

Se você tiver um módulo de aplicativo com todo o código que quer reutilizar, poderá transformá-lo em um módulo de biblioteca da seguinte forma:

  1. Abra o arquivo build.gradle do módulo de aplicativo existente. Na parte superior, você verá o seguinte:
    apply plugin: 'com.android.application'
    
  2. Altere a atribuição de plug-in da seguinte forma:

    apply plugin: 'com.android.library'
    
  3. Clique em Sync Project with Gradle Files.

Pronto. A estrutura inteira do módulo se mantém, mas ele passa a operar como uma biblioteca Android e a compilação criará um arquivo AAR em vez de APK.

Adicionar uma biblioteca como dependência

Para usar o código de uma biblioteca Android em outro módulo de aplicativo, faça o seguinte:

  1. Adicione a biblioteca ao projeto usando um dos seguintes métodos (se você criou o módulo de biblioteca no mesmo projeto, a biblioteca já está no projeto e você pode ignorar esta etapa):
    • Adicione o arquivo AAR (ou JAR) compilado:
      1. Clique em File > New Module.
      2. Clique em Import .JAR/.AAR Package e em Next.
      3. Insira a localização do arquivo AAR ou JAR e clique em Finish.
    • Importe o módulo de biblioteca para o projeto:
      1. Clique em File > New > Import Module.
      2. Insira a localização do diretório do módulo de biblioteca e clique em Finish.

      O módulo de biblioteca é copiado para o projeto, portanto você pode até editar o código da biblioteca. Se você quiser manter uma única versão do código da biblioteca, provavelmente não é isso que você quer. Em vez disso, importe o arquivo AAR compilado como descrito acima.

  2. Verifique se a biblioteca é a primeira do arquivo settings.gradle, como mostrado abaixo para uma biblioteca denominada "my-library-module":
    include ':app', ':my-library-module'
    
  3. Abra o arquivo build.gradle do módulo de aplicativo e adicione uma nova linha ao bloco dependencies, como mostrado no snippet abaixo:
    dependencies {
        compile project(":my-library-module")
    }
    
  4. Clique em Sync Project with Gradle Files.

No exemplo acima, o módulo de biblioteca Android denominado my-library- module torna-se uma dependência de compilação para o módulo em que reside o arquivo build.gradle.

Todo o código e todos os recursos da biblioteca Android passam a estar disponíveis para o módulo de aplicativo e o arquivo AAR da biblioteca é empacotado com o APK durante a compilação.

No entanto, se você quiser compartilhar separadamente o arquivo AAR, poderá encontrá-lo em project-name/module-name/build/outputs/aar/ e gerá-lo novamente clicando em Build > Make Project.

Escolher os recursos que serão públicos

Por padrão, todos os recursos de uma biblioteca são públicos. Para tornar todos os recursos implicitamente privados, é necessário definir pelo menos um atributo específico como público. Os recursos incluem todos os arquivos no diretório res/ do projeto, como imagens. Para evitar que os usuários da biblioteca acessem recursos destinados exclusivamente para uso interno, use esse mecanismo automático de designação de privacidade declarando um ou mais recursos públicos.

Para declarar um recurso público, adicione uma declaração ao arquivo public.xml da biblioteca. Se você ainda não adicionou recursos públicos antes, é necessário criar o arquivo public.xml no diretório res/values/ da biblioteca.

O código de amostra a seguir cria dois recursos públicos de string com os nomes mylib_app_name e mylib_public_string:

<resources>
    <public name="mylib_app_name" type="string"/>
    <public name="mylib_public_string" type="string"/>
</resources>

Todos os recursos que devem ficar visíveis para os desenvolvedores que usam a biblioteca devem ser tornados públicos. Por exemplo: embora a maioria dos recursos na biblioteca appcompat v7 sejam privados, os atributos que controlam o widget Toolbar são públicos para manter a compatibilidade com o material design.

Além de evitar que os usuários da biblioteca vejam sugestões de conclusão de código dos recursos internos da biblioteca, os atributos tornados implicitamente privados também permitem renomear ou remover recursos privados sem afetar os clientes da biblioteca. Os recursos privados são filtrados da conclusão de código e do editor de temas, e o Lint emite um aviso quando você tenta fazer uma referência a um recurso privado.

Considerações de desenvolvimento

Esteja ciente dos comportamentos e limitações abaixo ao desenvolver módulos de biblioteca e aplicativos dependentes.

Depois de adicionar referências a módulos de biblioteca ao módulo de aplicativo Android, você pode definir sua prioridade relativa. Durante a compilação, as bibliotecas são mescladas com o aplicativo, uma de cada vez, começando pela biblioteca de menor prioridade até a de maior prioridade.

Anatomia de um arquivo AAR

A extensão de arquivo de um arquivo AAR é .aar, e o tipo de artefato Maven também deve ser aar. O arquivo em si é um arquivo zip contendo estas entradas obrigatórias:

Além disso, um arquivo AAR pode incluir uma ou mais destas entradas opcionais:

This site uses cookies to store your preferences for site-specific language and display options.

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields

Hooray!

Follow Google Developers on WeChat

Browse this site in ?

You requested a page in , but your language preference for this site is .

Would you like to change your language preference and browse this site in ? If you want to change your language preference later, use the language menu at the bottom of each page.

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a short survey?
Help us improve the Android developer experience.
(Sep 2017 survey)