Glossário da plataforma Android

Confira a lista abaixo para saber mais sobre a terminologia básica do Android Open Source Project (AOSP). Veja outras fontes para definições de termos-chave:

Consulte Programar com respeito para verificar exemplos de terminologia a serem usados ou evitados na manutenção de um ecossistema mais inclusivo.

Apps

Arquivo .apk
Arquivo de pacote de aplicativo Android. Cada app Android é compilado e empacotado em um único arquivo que inclui todo o código (arquivos .dex), recursos e o arquivo de manifesto do app. O arquivo de pacote pode ter qualquer nome, mas precisa usar a extensão .apk. Exemplo: myExampleAppname.apk. Por conveniência, o arquivo de pacote de um app é geralmente denominado ".apk".

Relacionado: Aplicativo.

Ação
Descrição de algo que quem envia uma intent quer que seja feito. Uma ação é um valor de string atribuído a uma intent. As strings de ação podem ser definidas pelo Android ou por um desenvolvedor terceiro. Por exemplo, android.intent.action.VIEW para um URL da Web ou com.example.rumbler.SHAKE_PHONE para que um app personalizado faça o smartphone vibrar.

Relacionado: intent.

Atividade
Uma única tela em um app compatível com código Java e derivada da classe Activity. Geralmente, uma atividade é visivelmente representada por uma janela em tela cheia que pode receber e processar eventos de UI e realizar tarefas complexas, devido ao objeto Window que é usado para a renderização. Embora uma atividade seja tipicamente exibida em tela cheia, ela também pode flutuar ou ser transparente.
Aplicativo
Da perspectiva de um componente, um aplicativo para Android consiste em um ou mais receptores de atividades, serviços, listeners e recebedores de intents. Da perspectiva do arquivo de origem, um aplicativo para Android consiste em códigos, recursos e um único manifesto. Durante a compilação, esses arquivos são empacotados em um único arquivo denominado arquivo de pacote de apps (.apk).

Relacionados: .apk, Atividade

Broadcast Receiver
Uma classe de aplicativos que ouve intents que são transmitidas em vez de enviadas a um único app/atividade de destino. O sistema envia uma intent de transmissão para todos os broadcast receivers interessados, que processam a intent em sequência.

Relacionados: Intent, Filtro de intent.

Provedor de conteúdo
Uma camada de abstração de dados que pode ser usada para expor com segurança os dados do seu app para outros. Um provedor de conteúdo é criado na classe ContentProvider, que processa strings de consulta de conteúdo de um formato específico para retornar dados em um determinado formato. Consulte o tópico Provedores de conteúdo para saber mais.

Relacionado: uso do URI no Android

Caixa de diálogo
Uma janela flutuante que funciona como um formulário simples. Uma caixa de diálogo pode ter apenas controles de botões e tem o objetivo de realizar uma ação simples (por exemplo, a escolha de um botão) e, talvez, retornar um valor. O objetivo de uma caixa de diálogo não é persistir na pilha de histórico, conter layout complexo ou realizar ações complexas. O Android oferece uma caixa de diálogo simples padrão com botões opcionais, embora você possa definir o próprio layout de caixa de diálogo. A classe de base para caixas de diálogos é Dialog.

Relacionado: Atividade.

Intent
Um objeto de mensagem que pode ser usado para iniciar ou se comunicar com outros apps e atividades de maneira assíncrona. Um objeto de intent é uma instância de Intent. Ele inclui vários campos de critérios que podem ser oferecidos para determinar que app ou atividade receberá a intent e o que o receptor fará quando processar a intent. Os critérios disponíveis incluem a ação visada, uma categoria, uma string de dados, o tipo MIME dos dados, uma classe de gerenciamento, entre outros. Um app envia uma intent para o sistema Android em vez de diretamente para outro app ou atividade. O app pode enviar a intent para um único app de destino ou como uma transmissão, que, por sua vez, pode ser processada por vários apps em sequência. O sistema Android é responsável por resolver o melhor receptor disponível para cada intent, com base nos critérios oferecidos e nos filtros de intent definidos por outros apps. Para saber mais, consulte Intents e filtros de intent.

Relacionados: Filtro de intent, Broadcast Receiver.

Filtro de intent
Um objeto de filtro que um app declara no arquivo de manifesto para informar ao sistema quais tipos de intent cada um dos componentes está disposto a aceitar e sob quais critérios. Usando um filtro de intent, um app pode expressar interesse em tipos de dados específicos, ações de intent, formatos de URI e assim por diante. Ao resolver uma intent, o sistema avalia todos os filtros de intent disponíveis em todos os apps e transmite a intent ao app/atividade que melhor atende aos critérios. Para saber mais, consulte Intents e filtros de intent.

Relacionados: Intent, Broadcast receiver.

Recursos
Componentes de aplicativo não programáticos externos ao código compilado do app, mas que podem ser carregados do código por um formato de referência conhecido. O Android é compatível com vários tipos de recurso, mas os recursos comuns de um app consistem em strings de interface, componentes de layout de interface, gráficos ou outros arquivos de mídia etc. Um app usa recursos para oferecer compatibilidade com localização e perfis e estados variados de dispositivo. Por exemplo, um app incluiria um conjunto separado de recursos para cada tipo de local ou de dispositivo compatível e poderia incluir recursos de layout específicos para a orientação de tela atual (paisagem ou retrato). Para saber mais sobre recursos, consulte Recursos. Os recursos de um app são sempre armazenados nas subpastas res/* do projeto.
Serviço
Um objeto de classe Service que é executado em segundo plano (sem uma presença de interface) para realizar várias ações persistentes, como tocar música ou monitorar a atividade de rede.

Relacionado: Atividade

URIs no Android
O Android se baseia em strings de URI (Uniform Resource Identifier) para solicitar dados em um provedor de conteúdo (por exemplo, para recuperar uma lista de contatos) e ações em uma intent (por exemplo, abrir uma página da Web em um navegador). O formato e o esquema do URI são especializados de acordo com o tipo de uso, e um app pode processar strings e esquemas de URI específicos da maneira que quiser. Alguns esquemas de URI são reservados pelos componentes do sistema. Por exemplo, solicitações de dados de um provedor de conteúdo precisam usar o content://. Em uma intent, um URI que usa um esquema http:// será processado pelo navegador.

Build

adb
Android Debug Bridge, um app de depuração de linha de comando incluído no SDK. Ele oferece ferramentas para navegar pelo dispositivo, copiar ferramentas e encaminhar portas para depuração. Se você está desenvolvendo no Android Studio, o adb está integrado no seu ambiente de desenvolvimento. Consulte Android Debug Bridge para saber mais.
Projeto Android
Um repositório Git em um host do Android Gerrit. Consulte Ferramentas de controle de origem > Gerrit para ver mais informações.
Impressão digital do build
A impressão digital do build é uma string exclusiva legível por humanos que contém informações do fabricante emitidas para cada build. Consulte Noções básicas sobre impressões digitais do build para mais informações.
Ramificação Git - canônica
Versões distintas para cada repositório Git, como android-11.0.0_r1, encontradas em cs.android.com/android/platform/superproject/+/android-11.0.0_r1. Para ver mais informações, consulte Ramificações Git - Resumo de Ramificações (link em inglês).
Ramificação Git - local
Uma ramificação temporária no cliente Repo atual para fazer alterações no código, começando com o comando repo start branch-name .. Uma linha de desenvolvimento ativa. A confirmação mais recente em uma ramificação é chamada de "ponta" da ramificação.
Repositório do Git
Anteriormente chamado de projeto, ele faz parte da base do código que representa um componente ou tipo de dispositivo específico, como frameworks/base ou platform/packages/apps/Car/Media.
Arquivo de manifesto
Um arquivo XML que descreve um conjunto de repositórios Git por ramificação, as revisões do Git em que esses repositórios são conferidos e o layout deles em um sistema de arquivos. Esse arquivo XML, normalmente chamado de default.xml, está associado a uma ramificação do Repo e descreve os repositórios e ramificações Git verificados quando você inicializa e sincroniza a ramificação do Repo. Esse arquivo define os vários repositórios Git que a ferramenta Repo precisa buscar em uma finalização do cliente Repo para criar um produto (como o Android Automotive OS). Confira todos os manifestos em android.googlesource.com/platform/manifest/+refs. Confira o manifesto padrão incluído nos arquivos AndroidManifest para extrair os arquivos da plataforma Android (AOSP) em android.googlesource.com/platform/manifest/+/refs/heads/main/default.xml. Consulte o arquivo AndroidManifest.xml para conferir informações sobre o app e o formato do manifesto do repo para desenvolvimento de plataformas.
Atualização over-the-air (OTA)
Os dispositivos Android em uso podem receber e instalar atualizações OTA (over-the-air) no sistema, software de aplicativo e regras de fuso horário. Consulte Atualizações OTA para saber mais.
Ramificação repo
Uma coleção de repositórios Git capturados em um arquivo AndroidManifest que representa uma versão (build) da base do código do Android, como android11-gsi ouaosp-android-games-sdk, transferido por download por comandos repo init erepo sync. Consulte a descrição do arquivo de manifesto para ver links de todos os arquivos de manifesto e use https://cs.android.com/ para pesquisar os builds.
uprev
No geral, o uprev atualiza um subprojeto constituinte de um projeto maior para uma versão mais recente. Ele muda um nível de revisão para a próxima versão incrementada ou para a versão mais recente disponível. No caso de um pacote HIDL, um uprev de versão secundária atualiza o novo pacote para uma versão secundária mais alta, continuando com o mesmo nome e a versão principal como o pacote antigo. Isso é feito para manter a extensibilidade compatível com versões anteriores no nível do pacote. No caso da configuração do carregador de inicialização, um uprev atualiza o suporte ao cabeçalho de inicialização para a versão mais recente.

Plataforma

Android Runtime (ART) e Dalvik
O Android Runtime (ART) é o tempo de execução gerenciado usado por apps e alguns serviços do sistema no Android. O Android Runtime (ART) é o ambiente de execução padrão para dispositivos que executam o Android 5.0 (API de nível 21) e versões mais recentes. O ART e o Dalvik, antecessor dele, foram originalmente criados especificamente para o Android Open Source Project. O ART como ambiente de execução abre o formato Dalvik Executable e a especificação de bytecode do Dex. ART e Dalvik são ambientes de execução compatíveis com bytecode do Dex. Por isso, os apps desenvolvidos para o Dalvik funcionarão com o ART.
Linha de código
Uma linha de código contém a versão de um produto de software. Ela consiste em uma ou mais ramificações de um ou mais repositórios, todos frequentemente em desenvolvimento ativo simultâneo. A linha de código é o ponto de agregação e o destino da versão. Para mais informações sobre linhas de código, consulte Gerenciamento de software Android.
Arquivo .dex
Arquivo de código de aplicativo para Android compilado.

Os programas do Android são compilados em arquivos .dex (Dalvik Executable) que, por sua vez, são compactados em um único arquivo .apk no dispositivo. Os arquivos .dex podem ser criados usando tradução automática de apps compilados programados na linguagem Java.