Ir para o conteúdo principal
Documentos
O que há de novo?
Notas da versão
Boletins de segurança mais recentes
Documento de definição de compatibilidade (CDD) mais recente
Atualizações de sites
Como começar
Sobre
Iniciar
Fazer download
Criar
Testar
Criar
Contribuir
Comunidade
Ferramentas, build e referência relacionada
Segurança
Visão geral
Boletins
Atributos
Testes
Práticas recomendadas
Assuntos principais
Arquitetura
Áudio
Câmera
Conectividade
Dados
Tela
Fontes
Gráficos
Interação
Mídia
Desempenho
Permissões
Energia
Ambiente de execução
Configurações
Storage
Testes
Atualizações
Virtualização
Compatibilidade
Documento de definição de compatibilidade (CDD)
Conjunto de teste de compatibilidade (CTS)
Dispositivos Android
Cuttlefish
Empresarial
TV
Android Automotive
Começar
Diretrizes para desenvolvimento
Ferramentas de desenvolvimento
Ferramentas e infraestrutura de teste
Detalhes da versão
Referência
HIDL
HAL
Federação de comércio
Pacote de testes de segurança
Android Code Search
/
English
Deutsch
Español – América Latina
Français
Indonesia
Italiano
Polski
Português – Brasil
Tiếng Việt
Türkçe
Русский
עברית
العربيّة
فارسی
हिंदी
বাংলা
ภาษาไทย
中文 – 简体
中文 – 繁體
日本語
한국어
Fazer login
Documentação
O que há de novo?
Como começar
Segurança
Assuntos principais
Compatibilidade
Dispositivos Android
Android Automotive
Referência
Documentos
Mais
O que há de novo?
Como começar
Segurança
Assuntos principais
Compatibilidade
Dispositivos Android
Android Automotive
Referência
Android Code Search
Visão geral
Arquitetura
Visão geral
Camada de abstração de hardware (HAL)
Visão geral
HIDL (descontinuado)
Visão geral
Interfaces e pacotes
Hash da interface
Serviços e transferência de dados
Fila de mensagens rápida
Usar o IPC do Binder
Usar MemoryBlock
Ferramentas de configuração da pilha de rede
Linha de execução do modelo
Converter módulos HAL
Tipos de dados
União segura
Controle de versões da interface
Guia de estilo de código
C++ do HIDL
Visão geral
Pacotes
Interfaces
Tipos de dados
Funções
HIDL Java
Visão geral
Tipos de dados
Erros e métodos de interface
Exportar constantes
Outros
Verificação da compatibilidade de HIDL com versões anteriores do framework
HALs com disponibilidade dinâmica
HALs legados (AOSP <=v7)
Kernel
Visão geral
Notas da versão do kernel
Versões e atualizações do kernel estável
Kernels comuns do Android
Projeto do GKI
Desenvolvimento de GKI
Esquema de controle de versões do GKI
Builds de lançamento do GKI
Visão geral
Builds de lançamento do android12-5.10
Builds de lançamento do android13-5.10
Builds de lançamento do android13-5.15
Builds de lançamento do android14-5.15
Builds de lançamento do android14-6.1
Builds de lançamento do android15-6.6
Builds de lançamento do android16-6.12
Compilações descontinuadas do GKI
Builds descontinuados do android12-5.10
Builds descontinuados do android13-5.10
Builds descontinuados do android13-5.15
Builds descontinuados do android14-5.15
Builds descontinuados do android14-6.1
Builds descontinuados do android15-6.6
Builds descontinuados do android16-6.12
Processo de lançamento do GKI
GKI 16-6.12 android-mainline errata
Manter um KMI estável
Monitoramento de ABI do kernel
Visão geral
Executar monitoramento de ABI
Trabalhar com listas de símbolos
Módulos
Visão geral
Configurar recursos do kernel como módulos GKI
Diretrizes do módulo do fornecedor
Módulos do kernel carregáveis
Suporte a módulos do kernel
Testar módulos GKI
Otimização do tempo de inicialização
Recursos de depuração
Desenvolver código do kernel para GKI
Suporte ao sistema de arquivos do kernel Android
Estender o kernel com eBPF
Usar o DebugFS no Android 12
Módulo de criptografia GKI certificável para FIPS 140-3
EROFS
Perguntas frequentes sobre o kernel do Android
Testes de unidade de rede do kernel
Transição de heaps ION para DMA-BUF (kernel 5.4)
Sistema de arquivos incremental
Configuração
Visão geral
Implementar propriedades do sistema como APIs
Adicionar propriedades do sistema
Implementar a API Config File Schema
Arquivar
Visão geral
ConfigStore
Criar a interface HAL
Implementar o serviço
Uso do lado do cliente
Adicionar classes e itens do ConfigStore
Sobreposições da árvore de dispositivos
Visão geral
Implementar DTOs
Sintaxe de DTO
Compilar e verificar
Usar vários DTs
Partições DTB e DTBO
Otimizar DTO
NDK do fornecedor (<=AOSP 14)
Visão geral
Ativar o VNDK
Suporte ao sistema de build do VNDK
Extensões do VNDK
Design de snapshots do VNDK
Gerar snapshots do VNDK
Gerar snapshots do fornecedor
Namespace do vinculador
Diretórios, regras e política do SELinux
RenderScript
Estabilidade da ABI
Verificador de usos de ABI pré-compilados
Objeto da interface do fornecedor
Visão geral
Manifestos
Matrizes de compatibilidade
Ciclo de vida do FCM
Desenvolvimento do manifesto do dispositivo
Corresponder às regras
Recursos adicionais
AIDL
Visão geral
Idioma do AIDL
Back-ends da AIDL
AIDL estável
AIDL para HALs
Executar serviços AIDL dinamicamente
Anotações na AIDL
FMQ com AIDL
Fuzzing de AIDL
Guia de estilo do AIDL
Comunicação entre processos com Binder
Visão geral
Gerenciar linhas de execução
Herança de prioridade
Carregador de inicialização
Visão geral
Motivo de inicialização canônico
Cabeçalho da imagem de inicialização
Implementar o bootconfig
Imagens de recuperação
Imagens do DTB
Implementar atualizações OTA
Bloquear e desbloquear o carregador de inicialização
Informações da versão em propriedades AVB
Mover o fastboot para o espaço do usuário
Carregador de inicialização genérico
Visão geral
Implantar o GBL
Partições
Visão geral
Layout da partição
Partições de inicialização do fornecedor
Partições DLKM do fornecedor e ODM
Imagem do sistema compartilhada do Android
Partições de Ramdisk
Partição de inicialização genérica
Partições ODM
Partições de produtos
Implementar uma partição do módulo GKI
Aplicar interfaces de partição de produtos
Partições do SO confiáveis
Tamanho de página de 16 KB
Visão geral
Use o Cuttlefish com tamanho de página de 16 KB no ARM64
Simular o Cuttlefish com tamanho de página de 16 KB no x86-64
Criar e atualizar dispositivos Pixel 8 com suporte a 16 KB
Pixel Flash com suporte a tamanhos de página de 16 KB
Receber o tamanho da página
Otimizar a performance para o modo de 16 KB
Propriedades do sistema de 16 KB
Ativar o botão de 16 KB
Ativar a opção de compatibilidade com 16 KB
Nível da API do fornecedor
Áudio
Visão geral
Terminologia
Implementação
HAL de áudio
HAL de áudio AIDL
Suporte à política de áudio configurável no HAL AIDL
Comparação entre a AIDL e a HAL de áudio HIDL
HIDL
HAL de áudio HIDL
Configurar políticas de áudio
Configurar uma biblioteca compartilhada
Configurar efeitos de pré-processamento
Formatos de dados
Atributos
Efeitos
Áudio de alta resolução
Limite de tipo de dispositivo
AAudio e MMAP
Aquecimento de áudio
Latência
Visão geral
Colaboradores
Projetar para reduzir a latência
Medir a latência de áudio
Dongle de loopback de áudio
Medições
Para desenvolvedores de apps
Evite a inversão de prioridade
Conversão de taxa de amostragem
Depuração
MIDI
Visão geral
Arquitetura MIDI
Procedimento de teste MIDI
USB
Áudio digital USB
Atributos de mixer preferidos em dispositivos USB
Áudio da TV
Captura simultânea
Gatilho de som
Roteamento combinado para dispositivos de áudio
Áudio espacial
Áudio espacial e rastreamento da cabeça
Implementação
Rastreamento da cabeça no Áudio de baixa energia
Dose sonora
Modo soundbar dinâmico
Câmera
Visão geral
Arquitetura
HAL da câmera
Subsistema HAL
Conceitos básicos
Modos 3A e transição de estado
Depuração da câmera
Tratamento de erros e streams
Metadados e controles
Saída de streams, corte e zoom
Criação e envio de solicitações
Configurações de streaming
Desempenho
APIs para gerenciamento de buffer da HAL3 da câmera
Parâmetros de sessão
Produtor único, vários consumidores
Recursos de câmera
Saída de câmera de 10 bits
Bokeh na câmera
Streaming simultâneo da câmera
Extensões de câmera
Ferramenta de validação das extensões da câmera
Estabilização da visualização da câmera
Câmeras USB externas
Modos de high dynamic range
Tecnologia HEIF
Câmeras monocromáticas
Registro de movimento
Suporte a várias câmeras
Câmeras do sistema
Controle da intensidade da luz da lanterna
Ultra HDR
Usar um dispositivo como webcam
Captura de ampla gama
Controle de versões
Suporte à versão da câmera
Conectividade
Visão geral
Bluetooth
Visão geral
Serviços Bluetooth
Bluetooth Low Energy
Suporte a áudio para aparelhos auditivos usando BLE
Publicidade BLE
Verificar e depurar
Requisitos de HCI
Calibração de presença
Identificação do SO Android
NFC
Emulação de cartão host de FeliCa
Sincronização de pagamentos NFC fora do host
NFC segura
Acesso rápido à carteira
Comandos NCI exclusivos do Android
Chamadas e mensagens
5G não autônomo (NSA)
Implementar o bloqueio de números de telefone
Notificações de chamada
Serviço de seleção de domínio
Implementar o affordance de emergência
Banco de dados de números de emergência do Android
Números e chamadas de emergência
Implementar IMS
Direito de serviço IMS
Registro IMS único
Sugestão de conta telefônica
Implementar RTT
Suporte a apps de terceiros para ligações
Correio de voz visual
Operadora
Visão geral
Fracionamento de rede 5G
APN e CarrierConfig
Identificação da operadora
Implementar planos de dados
Identificadores de dispositivo
eSIM
Implementar o eSIM
Requisitos do modem para suporte a eSIM
APIs de eUICC
Vários perfis ativados
Processar erros da API eUICC
Perfis de teste para download
Integração da operadora de transferência de eSIM
Melhorar a experiência do usuário com a VPN
Suporte a redes de várias operadoras
Personalizar o comportamento do dispositivo para usuários desbalanceados
Refatoração do RIL
Suporte a células pequenas
Privilégios da operadora do UICC
Hora
Visão geral
Detecção do fuso horário do local
Detecção de fuso horário de telefonia
Detecção de tempo de rede
Detecção de horário do GNSS
Detecção de horário externo
Prioridade da fonte de tempo
Política e recomendações de fuso horário
Regras de fuso horário
Banda ultralarga
Visão geral
Interface de HAL para UWB
Wi-Fi
Visão geral
Wi-Fi HAL
Recursos de infraestrutura de Wi-Fi
Testar, depurar e ajustar o Wi-Fi
Android Packet Filter
Wi-Fi da operadora
Comportamento de ordem aleatória de MAC
Implementar a ordem aleatória de MAC
Passpoint (Ponto de acesso 2.0)
Simultaneidade de STA/AP Wi-Fi
Simultaneidade de Wi-Fi STA/STA
Confiança no primeiro uso (TOFU)
Wi-Fi Aware
Evitar a coexistência em canais Wi-Fi/celular
Wi-Fi Direct
Wi-Fi Easy Connect
Ponto de acesso Wi-Fi (Soft AP)
Simultaneidade de Wi-Fi AP/AP
Modo de baixa latência de Wi-Fi
Seleção de rede Wi-Fi
Como procurar uma rede Wi-Fi preferencial de descarga
Tempo de retorno do Wi-Fi (RTT, na sigla em inglês)
WPA3 e Wi-Fi Enhanced Open
Wi-Fi 7
Perfis de dispositivos complementares
API Connectivity Diagnostics
Interface do usuário de conectividade
Seleção de rede
Ranging: especificação de payload e sequência de mensagens fora da banda
Relatório de intensidade do sinal
Dados
Visão geral
Explicação das tags de uso de dados
Modo de Economia de dados
Monitoramento de tráfego eBPF
Excluir tipos de rede dos dados de uso
Visão geral das estatísticas da interface de rede
Dados de tethering
Descarga de hardware para tethering
Datas de redefinição do ciclo de uso
Visão geral do kernel
Mudanças no kernel
Tela
Visão geral
Apps
Implementar ícones adaptáveis
Atalhos de aplicativo
Implementar ícones circulares
Notificações e widgets de conversa
Desfoques de janela
Widgets e atalhos
Implementar transições de app sincronizadas
Cor
Gerenciamento de cores
Cortes de tela
Não perturbe
Reprodução de vídeo HDR
Implementar o Modo noturno
Mapeamento de tons da luminância HDR em um intervalo compatível com SDR
Design do Material You
Cores dinâmicas
Várias janelas
Visão geral
Recursos do modo janela para computador
Interações de tela dividida
Picture-in-picture
Ampliação de janela
Várias telas
Visão geral
Práticas recomendadas
Ambiente de teste e desenvolvimento
Perguntas frequentes
Retomadas múltiplas
Política de lançamento de atividades
Suporte de exibição
Suporte a decorações do sistema
Tela de bloqueio
Suporte ao editor de método de entrada
Roteamento de entrada
Áudio multizona
Notificações
Histórico de notificações
Permissão para notificações de ativação
Gerenciador de tarefas
Modo de demonstração na loja
Sugestões de rotação
Implementar o classificador de texto
Composição com SDR e HDR
Controles de mídia na interface do sistema
Extensões do WindowManager
Fontes
Implementar fallback de fonte personalizada
Gráficos
Visão geral
Arquitetura
BufferQueue e Gralloc
Implementar a contabilidade de memória de DMABUF e GPU
Rastrear transições de janela usando o Winscope
Visão geral
Executar o Winscope
Capturar rastros
Visão geral
ViewCapture em apps do sistema
No dispositivo
Usar o Winscope
Usar comandos adb
Traces de carga
Analisar rastros
Visão geral
Navegação na linha do tempo
Pesquisa de trace
SurfaceFlinger
WindowManager
Protolog
Transições de shell
ViewCapture
Surface e SurfaceHolder
Visão geral
SurfaceView e GLSurfaceView
SurfaceTexture
TextureView
SurfaceFlinger e WindowManager
Visão geral
Propriedades do sistema no SurfaceFlinger
HAL do Hardware Composer
Visão geral
Implementar a HAL de HWC
Processamento de hot-plug
AIDL para a HAL do HWC
Gerenciamento de framebuffer do cliente
Reduzir o consumo de memória gráfica
Camadas e telas
VSync
Frame Pacing
Taxa de atualização múltipla
Taxa de atualização adaptativa
EGLSurfaces e OpenGL ES
Visão geral
Implementar o OpenGL ES e o EGL
Configuração do OpenGLRenderer
Vulkan
Visão geral
Implementar o Vulkan
Framework de sincronização
Testes
Testes de implementação
Integrar com o Android CTS
Testes do programa de qualidade do drawElements
Travamento de buffers não sinalizados com a AutoSingleLayer
Adicionar novos formatos de pixel ao Android
HDR em capturas de tela do Android
Interação
Visão geral
Entrada
Visão geral
Arquivos de layout de chaves
Arquivos de mapa de caracteres de chave
Arquivos de configuração de entrada do dispositivo
Guia de migração
Dispositivos de teclado
Dispositivos por toque
ferramenta getevent
Ferramenta validatekeymaps
Retorno tátil
Visão geral
Implementar o retorno tátil
Visão geral
Implementar constantes e primitivos
Mapear constantes entre HAL e API
Implementar efeitos de envelope linear em trechos
Avaliar o hardware
Base de UX para framework tátil
Design de UX de retorno tátil
Avaliação de hardware
Visão geral
Configurar o equipamento de teste
Configurar o software de teste
Medir e registrar efeitos desejados
Analisar a forma de onda
Comparar resultados usando o mapa de performance
Redes neurais
Visão geral
Execuções de burst e filas rápidas de mensagens
Armazenamento em cache de compilação
Fluxo de controle
Descoberta e atribuição de dispositivos
Pools de memória
Práticas recomendadas de implementação do driver da NNAPI
Qualidade de serviço
Extensões do fornecedor
Periféricos
Visão geral
Acessórios de áudio
Visão geral
Fone de ouvido de 3,5 mm
Especificação do fone de ouvido
Especificação do dispositivo de entrada para fone de ouvido
Headset USB
Especificação do fone de ouvido
Especificação do adaptador
Especificação do dispositivo
Comportamento esperado do fone de ouvido
Teste de fones de ouvido
Acessórios personalizados
Visão geral
Acessório aberto do Android
Visão geral
AOA 2.0
AOA 1.0
Desativar a sinalização de dados por USB
Stylus
Sensores
Visão geral
Pilha de sensores
Tipos de sensores
Interação
Protocolo HID do rastreador de posições da cabeça
Energia
Lotes
Consumo de energia
Modos
Modos de relatório
Modo de suspensão
Sensores desativados
HAL de sensores
HAL de sensores AIDL
Sensores Multi-HAL
HAL 2.0 de sensores
HAL 1.0 de sensores
Descontinuação da versão da HAL
Ambiente de execução do hub de contexto
Visão geral
Mídia
Visão geral
Módulos de mídia
Módulo MediaProvider
Personalizar componentes de mídia
Decodificação de baixa latência no MediaCodec
Aumento da proteção do framework de mídia
Dependências do fornecedor do SoC
Dependências do OEM
DRM
Transcodificação de mídia compatível
Exportar estatísticas de codificação de vídeo
Orientações do OEM para a implementação do ROI
Desempenho
Visão geral
Armazenamento em cache de APK
Armazenamento em cache de apps
Otimizar os tempos de inicialização
Saúde
Visão geral
Implementar o Google Fit 2.1
Camada de abstração Cgroup
Daemon de eliminação de pouca memória
Otimização automática direcionada por feedback (12 ou mais recente)
Usar a otimização guiada por perfil
Resumos de tarefas
Registro prévio de escrita de compatibilidade
Hibernação do app
Melhor desempenho para jogos
Estatísticas de memória histórica de eventos de MM
Receber informações de integridade do sistema
Permissões
Visão geral
Funcionalidades de ambiente
Lembrete de acesso à localização em segundo plano
Provedor de contatos e afinidades
Controle de acesso discricionário
IDs de dispositivos imutáveis
Namespaces para bibliotecas nativas
Lista de permissões privilegiadas
Pacotes de sistema pré-instalados
Indicadores de privacidade
Lista de permissões de UID compartilhados assinados pela plataforma
Indicadores de privacidade
Restringir locais oportunistas
Leitura de tela restrita
Papéis do Android
Permissões de execução
Lista de permissões de assinatura
Permissões de localização tri-state
Implementar a HAL de USB
Espelhamento do app complementar
Limites de intent para tela cheia
Capturar conteúdo para notas
Energia
Visão geral
Gerenciamento de energia
Mitigação térmica
HAL de estatísticas de energia
Gerenciamento de energia de apps
Gerenciamento de energia da plataforma com o Soneca
Gerenciamento de desempenho
Monitores de comportamento de apps em segundo plano
Suporte a dispositivos sem bateria
Medir a potência do componente
Medir a energia do dispositivo
Medir valores de potência
Economia de bateria de rotina
TV em standby
Serviço SystemSuspend
Ambiente de execução
Visão geral
Verificações dexpreopt e <uses-library>
Melhorias no ART do Android 8.0
Formato de bytecode Dalvik
Formato executável Dalvik
Formatos de instrução executável do Dalvik
Restrições
Configuração
Visão geral
Configuração do serviço ART
Configuração do gerenciador de pacotes (descontinuado)
ART TI
Implementar a configuração assinada
Depurar a coleta de lixo do ART
Implementar o compilador JIT do ART
Mudar o valor dos recursos de um app durante a execução
Resolver problemas de RROs
Perfis de imagem de inicialização
Reinícios em segundo plano (<= AOSP 14)
Sobre o zigoto
Configurações
Visão geral
Diretrizes de design
Padrões e componentes
Arquitetura de informações
Configurações personalizadas
Pesquisa universal
Storage
Visão geral
Armazenamento tradicional
Armazenamento adotável
Armazenamento com escopo
Transferência de FUSE
Configuração do dispositivo
Exemplos de configuração
Estatísticas mais rápidas
Descontinuação do SDCardFS
Testes
Visão geral
Fluxo de trabalho de desenvolvimento de testes
Visão geral
Configuração de build simples
Configuração de teste complexa
Testes de instrumentação
Visão geral
Exemplo de testes de autoinstrumentação
Segmentar um exemplo de app
GoogleTests (GTests)
Visão geral
Adicionar novos GTests
Testes de métricas
Testes de host JAR
Mapeamento de testes
Executar testes com o Atest
OmniLab Android Test Station
Guia do usuário
Dispositivos virtuais no OmniLab ATS
Ativar automaticamente a depuração USB em builds do usuário
Executar testes do UIConductor
API
Notas da versão
Perguntas frequentes
Teste de fornecedor (VTS)
Visão geral
GTest parametrizado para testes de HAL
Como configurar o teste
Imagem genérica do sistema (GSI)
Vendor Test Suite (VTS) 10
Visão geral
Tutoriais em vídeo
Testes de sistemas com VTS
Framework de teste
Comandos do shell do dispositivo
Testar modelos
Testes de HAL com reconhecimento de nome de serviço
Verificação da capacidade de teste de HAL
Testes em vários dispositivos
VTS com ramdisk de depuração
Painel do VTS
Configuração
Banco de dados
Interface do usuário
Infraestrutura do laboratório
Infraestrutura de testes automatizada
Arquitetura do controlador de host
Teste de desempenho
Arcabouço de testes da Trade Federation (TF)
Começar
Visão geral
Iniciar
Ambiente de desenvolvimento
Trabalhar com dispositivos
Console
Ciclo de vida do teste
Processamento de opções
Exemplo completo
Programar e executar testes Tradefed
Visão geral
Testar usando o Tradefed
Visão geral
Criar um executor de testes
Criar um executor de teste IRemoteTest fragmentado