Os projetos Android contêm muitos arquivos relacionados a build e estruturas de diretório para organizar a origem e os recursos do aplicativo. Antes de mergulhar nos de configuração do Terraform, veremos a estrutura geral e as noções básicas do que pertence a cada parte.
Esta tabela lista arquivos típicos em um projeto Android. As descrições de cada ou diretório incluem observações sobre o tipo de conteúdo que está nele. Melhor as práticas evoluem ao longo do tempo, e essas descrições podem não corresponder a um projeto que você herdou ou baixou da Internet.
Ao escrever seus arquivos de compilação, use uma abordagem declarativa. a lógica de build e as tarefas definições só devem aparecer em plug-ins. Ao limitar a lógica de build a plug-ins, arquivos de build se tornam declarações de dados, que têm uma compreensão mais direta e edição. Versões futuras podem incluir uma especificação alternativa como Gradle declarativo, que impede a lógica de build na .
Pasta/Arquivo |
Uso |
---|---|
.gradle/ (link em inglês) |
Diretório de cache do projeto do Gradle Gerenciada pelo Gradle e contém a distribuição do Gradle, o cache do projeto e os arquivos de configuração transferidos por download. Não altere os arquivos neste diretório. |
.idea |
Metadados do projeto do Android Studio Não altere os arquivos neste diretório. |
build.gradle(.kts) |
Precisa conter apenas declarações de plug-in para configurar um caminho de classe de plug-in comum em subprojetos. O outro código precisa residir nas configurações ou nos arquivos de build aninhados no projeto. |
gradle.properties |
Configuração de execução do Gradle Contém propriedades do Gradle, controlando os aspectos do ambiente de build do Gradle, como tamanho de heap, armazenamento em cache e execução paralela. Algumas propriedades temporárias do Android são definidas aqui para reduzir as mudanças na DSL do AGP à medida que são adicionadas e removidas. |
gradlew (Linux, Mac) gradlew.bat (Windows) |
Arquivo wrapper do Gradle Inicializa seu build fazendo o download de uma distribuição do Gradle e encaminhando comandos para ela. Isso permite executar builds sem precisar pré-instalar o Gradle. |
local.properties |
Configuração da máquina local Contém propriedades relacionadas à máquina local, como o local do SDK do Android. Exclua este arquivo do controle de origem. |
settings.gradle(.kts) |
Inicialização de build do Gradle Contém informações globais do build para inicialização do Gradle e configuração do projeto, como:
|
Gradle/ |
|
↳ libs.versions.toml |
Define variáveis para dependências e plug-ins usados dentro do build. Você especifica quais versões quer usar aqui, garantindo a consistência em todos os subprojetos em seu projeto. |
↳ wrapper/ |
|
↳ gradle‐wrapper.jar |
Executável de bootstrap do Gradle (links em inglês). Faz o download da distribuição especificada do Gradle (se ela não existir) e a executa, transmitindo os argumentos. |
↳ gradle‐wrapper.properties |
Configuração do wrapper do Gradle Especifica onde fazer o download da distribuição do Gradle (incluindo qual versão usar). |
aplicativo/ |
Subprojetos (conhecidos como "módulos" no Android Studio) podem criar aplicativos ou bibliotecas e podem depender de outros subprojetos ou dependências externas.
|
↳ build.gradle(.kts) |
Arquivo de build do subprojeto Declara como criar o subprojeto. Cada subprojeto requer um arquivo de build separado e precisa conter
Não inclua lógica de build (como condições ou definições de função Kotlin) ou declarações de tarefas nos arquivos de build. A lógica de build e as tarefas só podem ficar dentro de plug-ins. |
↳ src/ |
Arquivos de origem do subprojeto Agrupa arquivos de origem (código e recursos do aplicativo) em conjuntos de origem. O conjunto de origem |
↳ main/ |
Conjunto de origem principal Código-fonte e recursos comuns em todas as variantes de build. Essa origem atua como base para todos os builds, e outros conjuntos mais específicos são adicionados ou substituídos. |
↳ java/ ↳ kotlin/ |
Código-fonte em Kotlin e Java O diretório |
↳ res/ |
Arquivos de recursos do Android Contém recursos de aplicativos, como arquivos XML e imagens. Todos os aplicativos usam alguns recursos básicos, como ícones na tela de início, mas muitos desses recursos, como layouts e menus, são usados apenas em aplicativos baseados em visualização. Os aplicativos do Compose usam recursos String definidos nesse diretório. |
↳ AndroidManifest.xml |
Metadados do aplicativo Android Ler pelo gerenciador de pacotes do Android para informar ao sistema
|
↳ androidTest/ |
Conjunto de origem do teste de dispositivo Contém a fonte para testes que serão executados em um dispositivo ou emulador com Android. Esses testes têm acesso a um ambiente real do Android, mas são executados mais lentamente do que os testes do host. |
↳ teste/ |
Conjunto de origem de teste do host Contém a fonte para testes executados localmente em uma JVM, em oposição aos testes executados em um dispositivo. Esses testes são muito mais rápidos de executar do que os testes de dispositivo. No entanto, todas as chamadas do sistema (incluindo os ciclos de vida que executam o aplicativo) precisam ser simuladas, fictícias, fragmentadas ou simuladas. Todos os arquivos de origem no conjunto |
↳ proguard-rules.pro |
Define regras para controlar a redução, a otimização e a ofuscação de aplicativos. O R8 remove códigos e recursos desnecessários, otimiza o desempenho do ambiente de execução e minimiza ainda mais o código renomeando identificadores. |