Visão geral de projetos

Os projetos no Android Studio contêm tudo o que define o espaço de trabalho para um app, do código-fonte e recursos ao código de teste e configurações de compilação. Quando você inicia um novo projeto, o Android Studio cria a estrutura necessária para todos os seus arquivos e os torna visíveis na janela Project à esquerdo do ambiente de desenvolvimento integrado (clique em View > Tool Windows > Project). Essa página oferece uma visão geral dos principais componentes do seu 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, e um módulo pode usar outro como dependência. Cada módulo pode ser individualmente compilado, testado e depurado.

Muitas vezes, módulos extras são úteis para criar bibliotecas de código no projeto ou quando você quer criar conjuntos de código e recursos diferentes para tipos de dispositivo distintos, como smartphones e wearables, mas mantendo todos os arquivos no escopo do mesmo projeto e compartilhando algum código.

Você pode adicionar um novo módulo ao projeto clicando em File > New > New Module.

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

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

Na janela Create New Module, o Android Studio oferece os seguintes tipos de módulo de app:

  • Módulo de smartphone e tablet
  • Módulo de Wear OS
  • Módulo de Android TV
  • Módulo de Glass

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

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

Módulo de recurso dinâmico
Representa um recurso modularizado do seu app que pode aproveitar a Dynamic Delivery do Google Play. Por exemplo, com módulos de recursos dinâmicos, você pode oferecer aos usuários determinados recursos do seu app sob demanda ou como experiências instantâneas por meio do Google Play Instant.

Para saber mais, leia Adicionar compatibilidade com Dynamic Delivery.

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 app ou ser importado para outros projetos. Em termos de estrutura, o módulo de biblioteca é igual ao módulo de app. No entanto, quando compilado, ele cria um arquivo de código em vez de um APK, e 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 do Android: esse tipo de biblioteca pode conter todos os tipos de arquivo compatíveis em um projeto Android, incluindo código-fonte, recursos e arquivos de manifesto. A compilação gera um arquivo ARchive do Android (AAR), que pode ser adicionado como dependência dos módulos do seu app Android.
  • Biblioteca Java: esse tipo de biblioteca pode conter apenas arquivos de origem em Java. O resultado da compilação é um arquivo Java Archive (JAR), que você pode adicionar como dependência de módulos do seu app Android ou outros projetos Java.
Módulo do Google Cloud
Oferece um contêiner para o código de back-end do Google Cloud. Esse módulo tem as dependências e o código necessários para um back-end do Java App Engine, que usa HTTP simples, Cloud Endpoints e Cloud Messaging para se conectar ao seu app. Você pode desenvolver seu back-end para fornecer os serviços em nuvem de que seu app precisa.

O uso do Android Studio para desenvolver o módulo do Google Cloud permite gerenciar o código do app 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 ver mais informações sobre a execução e implantação de um módulo do Google Cloud, consulte Como 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, porque o Gradle também chama os módulos de projetos. Por exemplo, quando você cria um módulo de biblioteca e quer adicioná-lo como dependência a um módulo de app 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 do seu projeto 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 seu projeto, ocultando alguns arquivos ou diretórios pouco usados. Veja a seguir algumas mudanças estruturais com relação à estrutura no disco:

  • Mostra todos os arquivos de configuração da compilação do projeto em um grupo Gradle Script de 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 de produto e tipos de compilação diferentes).
  • Mostre todos os arquivos de recursos alternativos em um único grupo, em vez de em pastas separadas por qualificador de recurso. Por exemplo, todas as versões de densidade do ícone na tela de início podem ser vistas lado a lado.

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

manifestos
Contém o arquivo AndroidManifest.xml.
java
Contém os arquivos de código-fonte Java, separados por nome de pacote, incluindo o código de teste JUnit.
res
Contém todos os recursos que não são código, como layouts XML, strings de IU e imagens bitmap, divididos em subdiretórios correspondentes. Para saber mais informações sobre todos os tipos de recursos 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 ver 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 variantes de compilação. Os arquivos para outras variantes 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 dos componentes dele. Para ver mais informações, consulte a documentação 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 ver 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 ver mais informações.
assets/
Contém o arquivo que precisa ser compilado em um arquivo .apk no estado em que está. Você pode navegar nesse diretório da mesma maneira que um sistema de arquivos típico usando URIs e ler arquivos como um fluxo de bytes usando 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, então precisa ser mantido no controle de revisões em conjunto com todo o código-fonte restante.

Para saber mais sobre outros arquivos de compilação, consulte Configurar sua compilação.

Configurações de estrutura de projetos

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

  • SDK Location: define a localização do JDK, Android SDK e Android NDK que seu projeto usa.
  • Project: define a versão do Gradle e do plug-in do Android para Gradle, bem como o nome da localização do repositório.
  • Developer Services: contém configurações para componentes complementares do Android Studio do Google ou de terceiros. Consulte Developer Services abaixo.
  • Modules: permite que você edite configurações de compilação específicas do módulo, incluindo o SDK de destino e mínimo, a assinatura do app e as dependências da 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 vários serviços que você pode usar com seu app. Essa seção contém as seguintes páginas:

  • Google AdMob: permite ativar o componente Google AdMob do Google, que ajuda você a entender os usuários e exibir anúncios personalizados para eles.
  • Analytics: permite ativar o Google Analytics, que ajuda a medir as interações dos usuários com seu app em diversos dispositivos e ambientes.
  • Authentication: permite que os usuários utilizem o Login do Google para fazer login no seu app com as Contas do Google deles.
  • Cloud: permite ativar os serviços do Firebase baseados em nuvem para seu app.
  • Notifications: permite usar o Google Cloud Messaging para a comunicação entre o app e o servidor.

A ativação de qualquer um desses serviços pode fazer com que o Android Studio adicione dependências e permissões necessárias ao seu app. Cada página de configuração lista essas e outras ações que o Android Studio realizará se você ativar o serviço associado.

Modules

A seção de configurações Modules permite alterar as opções de configuração de cada um dos módulos do seu 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 diversas variações de compilação, em que cada variação especifica um conjunto de configurações, como a versão mínima e pretendida do SDK do módulo e o código e o nome da versão. Por exemplo, é possível definir uma variação que tenha um SDK com versão mínima 15 e versão pretendida 21 e outra variação que tenha um SDK com versão mínima 19 e versão pretendida 23.
  • Build Types: permite criar e modificar configurações de compilação, conforme 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.
  • Dependências: lista as dependências de biblioteca, arquivo e módulo para este módulo. É possível adicionar, modificar e excluir dependências nesse painel. Para obter mais informações sobre dependências de módulos, consulte Configurar compilações do Gradle.