Um projeto no Android Studio contém tudo o que define seu espaço de trabalho para um app, desde código-fonte e recursos até código de teste e configurações do build.
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. Para abrir a janela, selecione View > Tool Windows > Project.
Esta página oferece uma visão geral dos principais componentes de um projeto.
Módulos
Um módulo é uma coleção de arquivos de origem e configurações de build que permite 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. Você pode criar, testar e depurar cada módulo de forma independente.
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.
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 app Android
- Oferece um contêiner para o código-fonte,
os arquivos de recursos e as configurações do app, como o
arquivo de build do módulo e o arquivo de manifesto do Android. Quando
você cria um novo projeto, o módulo padrão do app é chamado de "app".
O Android Studio oferece estes tipos de módulos de apps:
- Smartphone e tablet
- Automotive
- Wear OS
- Televisão
- Gerador de perfil de referência
- Comparativo de mercado
Cada módulo fornece arquivos essenciais e alguns modelos de código adequados ao tipo de dispositivo ou app correspondente.
Para mais informações sobre como adicionar módulos, leia Adicionar um módulo para um novo dispositivo.
- Módulo do recurso
-
Representa um recurso modularizado do seu app que pode aproveitar o Play
Feature Delivery. Por exemplo, com módulos de recursos, é possível oferecer aos usuários
determinados recursos do app sob demanda ou como experiências instantâneas pelo
Google Play Instant.
O Android Studio oferece estes tipos de módulos de recursos:
- Módulo de recurso dinâmico
- Módulo da biblioteca de recursos dinâmicos instantâneos
Para saber mais, leia sobre o Play Feature 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 criado,
ele gera 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 estes tipos de módulo de biblioteca:
- Biblioteca do Android: contém todos os tipos de arquivo com suporte em um projeto do Android, exceto código C++ nativo, incluindo código-fonte em Java e Kotlin, recursos e arquivos de manifesto. O build gera um arquivo ARchive do Android (AAR), que pode ser adicionado como dependência dos módulos do seu app Android.
- Biblioteca nativa do Android: contém todos os tipos de arquivo com suporte em um projeto Android, da mesma forma que uma biblioteca Android. No entanto, as bibliotecas nativas do Android também podem conter o código-fonte C++ nativo. O build gera um arquivo ARchive do Android (AAR), que pode ser adicionado como dependência dos módulos do seu app Android.
- Biblioteca Java ou Kotlin: contém apenas arquivos de origem Kotlin ou Java. O resultado do build é um arquivo Java (JAR), que você pode adicionar como dependência de módulos do seu app Android ou outros projetos Kotlin ou Java.
Os módulos às vezes são chamados de subprojetos, porque o Gradle também se refere a módulos como projetos.
Por exemplo, quando você cria um módulo de biblioteca e quer que ele seja adicionado como dependência a um módulo de app Android, ele precisa ser declarado desta forma:
Groovy
dependencies { implementation project(':my-library-module') }
Kotlin
dependencies { implementation(project(":my-library-module")) }
Arquivos de projetos
![](https://developer.android.com/static/images/tools/projectview-p1.png?authuser=19&hl=pt)
Por padrão, o Android Studio mostra os arquivos do seu projeto na visualização Android. Essa visualização não reflete a hierarquia de arquivos real no disco. Em vez disso, ela é 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.
Algumas das diferenças estruturais entre o Android e a estrutura do disco são que a visualização do Android:
- Mostra todos os arquivos de configuração do build 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 build diferentes.
- Mostra todos os arquivos de recursos alternativos em um único grupo, em vez de em pastas separadas por qualificadores de recurso. Por exemplo, todas as versões de densidade do ícone na tela de início podem ser conferidas lado a lado.
Em cada módulo de app Android, os arquivos são mostrados nestes grupos:
- manifestos
- Contém o arquivo
AndroidManifest.xml
. - java
- Contém os arquivos de código-fonte Kotlin e 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 strings de interface e imagens bitmap, divididos em subdiretórios correspondentes. Para mais informações sobre possíveis tipos de recursos, consulte Visão geral dos recursos de aplicativo.
Visualização Project
![](https://developer.android.com/static/images/tools/projectview-p2.png?authuser=19&hl=pt)
Para conferir a estrutura de arquivos real do projeto, incluindo todos os arquivos ocultos na visualização Android, selecione Project no menu suspenso, na parte de cima da janela Project.
Quando você seleciona a visualização Project, pode encontrar um número muito maior de arquivos e diretórios, incluindo:
module-name/
-
build/
- Contém saídas de build.
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 mais informações, consulte Testar no Android Studio.
cpp/
- Contém o código nativo C ou C++ que usa a Java Native Interface (JNI). Para mais informações, consulte a documentação do Android NDK.
main/
- Contém os arquivos do conjunto de origem "main": o código Android e os recursos
compartilhados por todas as variantes de build. Os arquivos para outras variantes de build
ficam em diretórios irmãos, como
src/debug/
para o tipo de build de depuração.AndroidManifest.xml
- Descreve a natureza do aplicativo e de cada um dos componentes dele. Para mais informações, consulte a visão geral do manifesto do app.
java/
- Contém fontes de código Kotlin ou Java, ou ambas, se o app tiver código-fonte Kotlin e Java.
kotlin/
- Contém apenas fontes de código Kotlin.
res/
- Contém recursos de aplicativos, como arquivos drawable e de strings de interface. Para saber mais, consulte a visão geral de recursos do app.
assets/
- Contém arquivos que são compilados em um arquivo APK no estado em que se encontram. Por exemplo,
esse é um bom local para dados de texturas e de jogos. Você pode
navegar nesse diretório da mesma forma que em um sistema de arquivos normal
usando URIs e ler arquivos como streams de bytes usando o
AssetManager
.
test/
- Contém código para testes locais executados na JVM host.
build.gradle
oubuild.gradle.kts
(módulo)- Define as configurações de build do módulo.
build.gradle
é o nome de arquivo correto, se você está usando o Groovy como linguagem de script de build, ebuild.gradle.kts
, se estiver usando o script Kotlin.
build.gradle
oubuild.gradle.kts
(projeto)- Define a configuração de build relevante a todos os módulos.
build.gradle
é o nome de arquivo correto, se você está usando o Groovy como linguagem de script de build, ebuild.gradle.kts
, se está usando o script Kotlin. Como esse arquivo faz parte do projeto, ele precisa ser mantido no controle de revisões em conjunto com todos os outros códigos-fonte.Para mais informações sobre outros arquivos de build, consulte Configurar seu build.
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 seções abaixo:
- Project: define a versão do Gradle e do Plug-in do Android para Gradle e o nome do local do repositório.
- SDK Location: define a localização do JDK, Android SDK e Android NDK que seu projeto usa.
- Variables: permite editar variáveis usadas nos scripts de build.
-
Modules: permite que você edite configurações do build
específicas do módulo, incluindo o SDK de destino e mínimo, a assinatura do app
e as dependências da biblioteca. A página de configurações de cada módulo é dividida nestas guias:
- Propriedades: especifica as versões do SDK e das ferramentas de build usadas para compilar o módulo.
- Signing: especifica o certificado usado para assinar o app.
-
Dependencies: 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 saber mais sobre dependências de módulos, consulte Configurar variantes de build.
-
Build Variants: permite configurar diferentes variações e tipos de build para seu projeto.
-
Flavors: permite criar diversas variações de build, em que cada uma delas especifica um conjunto de configurações, por exemplo, 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 21 e versão pretendida 29 e outra variação que tenha um SDK com versão mínima 24 e versão pretendida 33.
- Build Types: permite criar e modificar configurações do build, conforme descrito em Configurar variantes de build. Por padrão, cada módulo tem os tipos de build debug e release, mas outros tipos podem ser definidos, se necessário.
-