Join us on the livestream at Android Dev Summit on 7-8 November 2018, starting at 10AM PDT!

Visão geral de projetos

Os projetos no Android Studio contêm tudo o que define o espaço de trabalho de um aplicativo, do código-fonte e ativos ao código de teste e configurações de compilação. Quando se começa um novo projeto, o Android Studio cria a estrutura necessária para todos os arquivos, que ficam visíveis na janela Project, no lado direito do IDE (clique em View > Tool Windows > Project). Esta página oferece uma visão geral dos principais componentes de um projeto.

Módulos

Módulo é uma coleção de arquivos de origem e configurações de compilação que permitem dividir o projeto em unidades distintas de funcionalidade. O projeto pode ter um ou mais módulos. Um módulo pode usar outro módulo como dependência. Cada módulo pode ser individualmente compilado, testado e depurado.

Muitas vezes, os módulos adicionais são úteis para criar bibliotecas de código no projeto ou quando é necessário criar conjuntos de código e recursos diferentes para tipos de dispositivos distintos, como telefones e wearables, mas mantendo todos os arquivos no escopo do mesmo projeto e compartilhando algum código.

Para adicionar um novo módulo ao projeto, clique em File > New > New Module.

O Android Studio oferece alguns tipos diferentes de módulo:

Módulo de aplicativo Android
Oferece um contêiner para o código-fonte, os arquivos de recursos e configurações do aplicativo, como o arquivo de compilação do módulo e o arquivo de manifesto do Android. Ao criar um novo projeto, o nome padrão do módulo é "app".

Na janela Create New Module, o Android Studio oferece os seguintes módulos de aplicativos:

  • Módulo de telefones e tablets
  • Módulo de Android Wear
  • Módulo de Android TV
  • Módulo de Glass

Cada um deles fornece arquivos essenciais e alguns modelos de código adequados ao aplicativo ou tipo de dispositivo correspondente.

Para obter mais informações sobre a adição de um módulo, leia Adicionar módulo para um dispositivo novo.

Módulo de biblioteca
Fornece um contêiner para o código reutilizável, que pode servir de dependência em outros módulos de aplicativos ou importado para outros projetos. Em termos de estrutura, o módulo de biblioteca é igual ao módulo de aplicativo. No entanto, quando compilado, cria um arquivo de arquivamento de código em vez de um APK, por isso não pode ser instalado em um dispositivo.

Na janela Create New Module, o Android Studio oferece os seguintes módulos de biblioteca:

  • Biblioteca Android: esse tipo de biblioteca contém todos os tipos de arquivos permitidos em um projeto Android, inclusive código-fonte, recursos e arquivos de manifesto. A compilação gera um arquivo Android Archive (AAR) que pode ser adicionado como dependência dos módulos de aplicativos Android.
  • Biblioteca Java: esse tipo de biblioteca contém apenas arquivos de origem Java. O resultado da compilação é um arquivo Java Archive (JAR) que você pode adicionar como dependência de módulos de aplicativos Android ou outros projetos Java.
Módulo de Google Cloud
Oferece um contêiner para o código de back-end do Google Cloud. O módulo adiciona o código e dependências necessários para um back-end do Java App Engine que usa HTTP simples, Cloud Endpoints e Cloud Messaging para conexão com o aplicativo. Você pode desenvolver o seu back-end para fornecer os serviços de nuvem necessários para o aplicativo.

O uso do Android Studio para criar e desenvolver o módulo de Google Cloud permite gerenciar o código do aplicativo e do back-end no mesmo projeto. Também é possível executar e testar o código de back-end localmente e usar o Android Studio para implantar o módulo de Google Cloud.

Para obter mais informações sobre a adição de um módulo de Google Cloud, consulte Adicionar um módulo de Servlet Java do App Engine. Para obter mais informações sobre a execução e implantação de um módulo de Google Cloud, consulte Executar, testar e implantar o back-end.

Algumas pessoas também usam o termo subprojeto em vez de módulo. Isso não representa um problema, pois o Gradle também faz referência a módulos como projetos. Por exemplo, quando você cria um módulo de biblioteca e quer adicioná-lo como dependência a um módulo de aplicativo Android, é necessário declará-lo da seguinte forma:

dependencies {
  compile project(':my-library-module')
}

Arquivos de projetos

Por padrão, o Android Studio exibe os arquivos de projetos na visualização Android. Essa visualização não reflete a hierarquia de arquivos real no disco, mas é organizada por módulos e tipos de arquivo para simplificar a navegação entre os principais arquivos de origem do projeto, ocultando alguns arquivos ou diretórios pouco usados. Veja a seguir algumas mudanças estruturais em relação à estrutura no disco:

  • Mostra todos os arquivos de configuração da compilação do projeto em um grupo Gradle Script no nível superior.
  • Mostra todos os arquivos de manifesto de cada módulo em um grupo no nível de módulos (quando existem arquivos de manifesto diferentes para variações e tipos de compilação de produto diferentes).
  • Mostre todos os arquivos de recursos alternativos em um único grupo, em vez de pastas separadas por qualificador de recurso. Por exemplo, todas as versões de densidade do ícone inicializador podem ser vistas lado a lado.

Em cada módulo de aplicativo Android, os arquivos são mostrados nos seguintes grupos:

manifests
Contém o arquivo AndroidManifest.xml.
java
Contém os arquivos de código-fonte do Java, separados por nome de pacote, inclusive o código de teste do JUnit.
res
Contém todos os recursos que não são código, como layouts XML, strings de IU e imagens em bitmap, divididos em subdiretórios correspondentes. Para obter mais informações sobre todos os tipos de recurso possíveis, consulte Fornecimento de recursos.

A visualização de projeto Android

Para ver a estrutura de arquivos real do projeto, incluindo todos os arquivos ocultos na visualização do Android, selecione Project no menu suspenso na parte superior da janela Project.

Quando você seleciona a visualização Project, pode ver um número muito maior de arquivos e diretórios. Os mais importantes são:

module-name/
build/
Contém saídas de compilação.
libs/
Contém bibliotecas privadas.
src/
Contém todos os arquivos de código e recursos do módulo nos seguintes subdiretórios:
androidTest/
Contém o código dos testes de instrumentação executados em um dispositivo Android. Para obter mais informações, consulte a documentação do Android Test.
main/
Contém os arquivos do conjunto de origem "main": o código Android e os recursos compartilhados por todas as variações de compilação (os arquivos para outras variações de compilação residem em diretórios irmãos, como src/debug/ para o tipo de compilação de depuração).
AndroidManifest.xml
Descreve a natureza do aplicativo e de cada um de seus componentes. Para obter mais informações, consulte a documentação do AndroidManifest.xml.
java/
Contém os códigos-fonte Java.
jni/
Contém o código nativo que usa a Java Native Interface (JNI). Para obter mais informações, consulte a documentação do Android NDK.
gen/
Contém os arquivos Java gerados pelo Android Studio, como o arquivo R.java e as interfaces criadas de arquivos AIDL.
res/
Contém recursos de aplicativos, como arquivos drawable, arquivos de layout e strings de IU. Consulte Recursos de aplicativos para obter mais informações.
assets/
Contém o arquivo que deve ser compilado para um arquivo .apk no estado em que está. Você pode navegar nesse diretório da mesma forma que em um sistema de arquivos normal usando URIs e ler arquivos como stream de bytes usando o AssetManager . Por exemplo, esse é um bom local para texturas e dados de jogos.
test/
Contém código para testes locais executados na JVM host.
build.gradle (módulo)
Define as configurações de compilação do módulo.
build.gradle (projeto)
Define a configuração de compilação que se aplica a todos os módulos. Esse arquivo faz parte do projeto, portanto deve ser mantido no controle de revisões em conjunto com todo o código-fonte restante.

Para obter informações sobre outros arquivos de compilação, consulte Configurar sua compilação.

Configurações de estrutura de projetos

Para alterar várias configurações do projeto do Android Studio, clique em File > Project Structure para abrir a caixa de diálogo Project Structure. Ela contém as seguintes seções:

  • SDK Location: define a localização do JDK, do Android SDK e do Android NDK usados pelo projeto.
  • Project: define a versão do Gradle e do Android Plugin para Gradle, bem como o nome da localização do repositório.
  • Developer Services: contém configurações de componentes complementares do Google ou de terceiros para o Android Studio. Consulte Developer Services abaixo.
  • Modules: permite editar configurações de compilação de módulos, incluindo o SDK pretendido e o SDK mínimo, a assinatura do aplicativo e as dependências de biblioteca. Consulte Modules abaixo.

Developer Services

A seção Developer Services da caixa de diálogo Project Structure contém páginas de configuração para diversos serviços que podem ser usados para o aplicativo. Essa seção contém as seguintes páginas:

  • AdMob: permite ativar o componente AdMob do Google, que ajuda a entender os usuários e a exibir a eles publicidade personalizada.
  • Analytics: permite ativar o Google Analytics, que ajuda a medir interações do usuário com o aplicativo em diversos dispositivos e ambientes.
  • Authentication: permite que os usuários utilizem o Google Sign-In para fazer login no aplicativo com suas contas Google.
  • Cloud: permite ativar os serviços Firebase baseados em nuvem para o aplicativo.
  • Notifications: permite usar o Google Cloud Messaging para comunicação entre o aplicativo e o servidor.

A ativação de qualquer um desses serviços pode fazer com que o Android Studio adicione as dependências e permissões necessárias ao aplicativo. Cada página de configuração lista essas e outras ações tomadas pelo Android Studio na ativação do serviço associado.

Módulos

A seção de configurações Modules permite alterar opções de configuração de cada um dos módulos do projeto. A página de configurações de cada módulo é dividida nas seguintes guias:

  • Properties: especifica as versões do SDK e das ferramentas de compilação usadas para compilar o módulo.
  • Signing: especifica o certificado usado para assinar o APK.
  • Flavors: permite criar várias variações, onde cada variação especifica um conjunto de definições de configuração, como a versão mínima e pretendida de SDK do módulo e o código e nome da versão. Por exemplo, é possível definir uma variação que tem um SDK com versão mínima 15 e versão pretendida 21 e outra variação que tem um SDK com versão mínima 19 e versão pretendida 23.
  • Build Types: permite criar e modificar configurações de compilação, como descrito em Configuração de compilações do Gradle. Por padrão, cada módulo tem os tipos de compilação debug e release, mas tipos adicionais podem ser definidos, se necessário.
  • Dependencies: lista as dependências de biblioteca, arquivo e módulo deste módulo. É possível adicionar, modificar e excluir dependências nesse painel. Para obter mais informações sobre dependências de módulos, consulte Configuração de compilações do Gradle.