Glossário da plataforma Android

A lista abaixo define alguns termos básicos da plataforma Android. Veja outras fontes para definições de termos-chave:

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

Relacionado: aplicativo.

Android Runtime (ART) e Dalvik
O Android Runtime (ART) é o tempo de execução gerenciado usado por aplicativos e alguns serviços do sistema no Android. O Android Runtime (ART) é o tempo 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 seu antecessor, Dalvik, foram originalmente criados especificamente para o projeto Android. O ART como tempo de execução executa o formato Dalvik Executable e a especificação de bytecode do Dex. ART e Dalvik são tempos de execução compatíveis com bytecode do Dex. Por isso, os apps desenvolvidos para o Dalvik funcionarão com o ART.
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 por meio da tradução automática de aplicativos compilados programados na linguagem Java.

Ação
Descrição de algo que o sender de um intent quer que seja feito. Uma ação é um valor de string atribuído a um 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 aplicativo personalizado faça o smartphone vibrar.

Relacionado: intent.

Atividade
Uma única tela em um aplicativo 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 Windows usado na renderização. Embora uma atividade seja tipicamente exibida em tela cheia, ela também pode flutuar ou ser transparente.
adb
Android Debug Bridge, um aplicativo de depuração de linha de comando incluído no SDK. Ele oferece ferramentas para procurar no dispositivo, copiar ferramentas e encaminhar portas para depuração. Se você está desenvolvendo no Android Studio, o adb está integrado no ambiente de desenvolvimento. Consulte Android Debug Bridge  para saber mais.
Aplicativo
Da perspectiva de um componente, um aplicativo para Android consiste em um ou mais receptores de atividades, serviços, listeners e 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 aplicativo (.apk).

Relacionados: .apk, Atividade

Tela
Superfície de desenho que processa a composição dos bits reais de acordo com um objeto Bitmap ou Surface. Ela tem métodos para desenhos computacionais padrão de bitmaps, linhas, círculos, retângulos, texto e muito mais, além de ser vinculada a um Bitmap ou Surface. A tela é a maneira mais simples e fácil de desenhar objetos 2D na tela. A classe básica é Canvas.

Relacionados: Drawable, OpenGL ES, Surface.

Provedor de conteúdo
Uma camada de abstração de dados que pode ser usada para expor com segurança os dados do seu aplicativo 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 uma forma leve. Uma caixa de diálogo pode ter apenas controles de botões e tem o objetivo de realizar uma ação simples (como a opção de 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 básica para caixas de diálogos é Dialog.

Relacionado: Atividade.

Drawable
Um recurso visual compilado que pode ser usado como segundo plano, título ou outra parte da tela. Normalmente, um drawable é carregado em outro elemento da IU, como uma imagem de plano de fundo. Um drawable não pode receber eventos, mas atribui várias outras propriedades, como “estado” e programação, para ativar subclasses, como objetos de animação ou bibliotecas de imagens. Muitos objetos drawable são carregados a partir de arquivos de recurso de drawable: arquivos xml ou bitmap que descrevem a imagem. Recursos de drawable são compilados em subclasses de android.graphics.drawable. Para saber mais sobre drawables e outros recursos, consulte Recursos.

Relacionados: Recursos, Tela

Intent
Um objeto de mensagem que pode ser usado para iniciar ou se comunicar com outros aplicativos 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 aplicativo ou atividade receberá o intent e o que o receiver fará quando processar o 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 aplicativo envia um intent para o sistema Android em vez de diretamente para outro aplicativo ou atividade. O aplicativo pode enviar o intent para um único aplicativo de destino ou como uma transmissão, que, por sua vez, pode ser processada por vários aplicativos em sequência. O sistema Android é responsável por resolver o melhor receiver disponível para cada intent, com base nos critérios oferecidos e nos filtros de intent definidos por outros aplicativos. Para saber mais, consulte Intents e filtros de intent.

Relacionados: Filtro de intent, Broadcast Receiver.

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

Relacionados: Intent, Broadcast Receiver.

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

Relacionados: Intent, Filtro de intent.

Recurso de layout
Um arquivo XML que descreve o layout de uma tela de atividade.

Relacionado: Recursos

Arquivo de manifesto
Um arquivo XML que cada aplicativo precisa definir para descrever o nome, versão, componentes (atividades, filtros de intent, serviços) e bibliotecas importadas do aplicativo, além de descrever diversas atividades e muito mais. Consulte o arquivo AndroidManifest.xml para informações sobre o aplicativo e Formato do manifesto do repo (link em inglês) para desenvolvimento de plataformas.
Imagem Nine-patch / 9-patch / Ninepatch
Um recurso de bitmap redimensionável que pode ser usado para planos de fundo ou outras imagens no dispositivo. Consulte Imagem expansível Nine-patch para mais informações.

Relacionado: Recursos.

OpenGL ES
O Android oferece bibliotecas OpenGL ES para renderização 3D acelerada por hardware. Para renderização 2D, Canvas é a opção mais simples. O OpenGL ES está disponível no Kit de desenvolvimento nativo do Android (NDK) para facilitar o uso. Os pacotes android.opengl e javax.microedition.khronos.opengles expõem a funcionalidade do OpenGL ES.

Relacionados: Canvas, Surface

Recursos
Componentes de aplicativo não programáticos externos ao código compilado, mas que podem ser carregados a partir do código por meio de um formato de referência conhecido. O Android é compatível com vários tipos de recurso, mas os recursos comuns de aplicativo consistem em strings de IU, componentes de layout de IU, gráficos ou outros arquivos de mídia etc. Um aplicativo usa recursos para oferecer compatibilidade com localização e perfis e estados variados de dispositivo. Por exemplo, um aplicativo 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 aplicativo 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 IU) para realizar várias ações persistentes, como tocar música ou monitorar a atividade de rede.

Relacionado: Atividade

Surface
Um objeto de tipo Surface que representa um bloco de memória composto na tela. Um objeto Surface evita que um objeto Canvas desenhe e oferece vários métodos auxiliares para desenhar camadas e redimensionar a superfície. Não use essa classe diretamente. Use SurfaceView.

Relacionado: Canvas

SurfaceView
Um objeto View que une um objeto Surface para fazer desenhos e expõe métodos para especificar o tamanho e o formato dinamicamente. Um SurfaceView permite desenhar de maneira independente da linha de execução de IU para operações com uso intenso de recursos, como jogos ou visualizações de câmera. No entanto, essa opção consome mais memória. O SurfaceView é compatível com gráficos Canvas e OpenGL ES. A classe básica é SurfaceView.

Relacionado: Surface

Tema
Um conjunto de propriedades (tamanho de texto, cor de plano de fundo etc.) agrupadas para definir várias configurações padrão de exibição. O Android oferece poucos temas padrão, que estão listados em R.style (começam com "Theme_").
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 um intent (como 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 aplicativo 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 um intent, um URI que usa um esquema http:// será processado pelo navegador.
Ver
Um objeto que é desenhado em uma área retangular na tela e processa cliques, pressionamento de teclas e outros eventos de interação. Um view é uma classe básica para a maioria dos componentes de layout em uma tela de atividade ou caixa de diálogo (caixas de texto, janelas etc.). Ele recebe chamadas do objeto pai (consulte ViewGroup) para desenhar a si mesmo e informa ao objeto pai onde quer estar e qual tamanho quer ter (o que pode ou não ser respeitado). Para mais informações, consulte View.

Relacionados: Hierarquia de visualizações, ViewGroup, Widget

Hierarquia de visualizações
Uma organização de objetos View e ViewGroup que define a interface do usuário para cada componente de um app. A hierarquia consiste em grupos de visualizações que contêm uma ou mais visualizações filhas ou grupos de visualizações. Você pode conseguir uma representação visual de uma hierarquia de visualizações para depuração e otimização por meio do Hierarchy Viewer, que é fornecido com o SDK Android.

Relacionados: View, ViewGroup

ViewGroup
Um objeto contêiner que agrupa um conjunto de visualizações filhas. O grupo de visualizações é responsável por decidir onde as visualizações filhas são posicionadas e qual pode ser o tamanho delas, bem como por chamar cada uma para fazer o próprio desenho quando apropriado. Alguns grupos de visualizações são invisíveis e servem apenas para layout, enquanto outros têm uma IU intrínseca (por exemplo, uma caixa de listagem de rolagem). Os grupos estão todos no pacote widget, mas estendem ViewGroup.

Relacionados: View, Hierarquia de visualizações

Widget
Um dos conjuntos de subclasses View totalmente implementadas que renderizam elementos de formulário e outros componentes de IU, como caixa de texto ou menu pop-up. Como um widget é totalmente implementado, ele processa a medição e o desenho por conta própria e responde a eventos de tela. Os widgets estão todos no pacote android.widget.
Janela
Em um aplicativo Android, um objeto derivado da classe abstrata Window que especifica os elementos de uma janela genérica, como aparência (texto da barra de título, local e conteúdo dos menus etc.). A caixa de diálogo e a atividade usam uma implementação dessa classe para renderizar uma janela. Você não precisa implementar essa classe ou usar janelas no seu aplicativo.