Diretrizes principais de qualidade de apps

sucesso a longo prazo do seu app em termos de número de instalações e avaliações dos usuários, engajamento e retenção.

Para fornecer uma base sólida para um app de qualidade, siga as diretrizes principais de qualidade de apps.

As diretrizes definem o nível de qualidade mínimo que todos os apps precisam ter.

Qualidade adaptativa do app

Os apps Android funcionam em uma grande variedade de dispositivos, desde smartphones compactos até tablets, dobráveis, computadores, telas conectadas, sistemas de infoentretenimento de carros, TVs e XR. Os modos de janela, como tela dividida e modo janela para computador, permitem que os apps sejam executados em partes redimensionáveis de uma tela.

Siga as diretrizes de qualidade adaptativa de apps, junto com as principais diretrizes de qualidade de apps, para:

  • Criar apps otimizados para todos os formatos e tamanhos de tela
  • Melhorar a classificação dos seus apps nas páginas Detalhes do app e na pesquisa do Google Play
  • Conquistar mais usuários e aumentar a retenção

Diretrizes

As diretrizes principais a seguir ajudam você a criar um app básico de alta qualidade.

Experiência do usuário

Seu app precisa ter padrões de interação e design visual do Android para oferecer uma experiência do usuário consistente e intuitiva.

Use os componentes do Material Design para criar a interface do usuário do seu app em vez dos componentes da plataforma Android sempre que possível. O Material Design oferece uma aparência moderna do Android e consistência de UI em todas as versões do SO.

ID Testes Descrição
Usabilidade
Usabilidade:UX T-Usability:Core,
T-SD-Card
O app oferece uma experiência do usuário consistente para todos os casos de uso em todos os formatos.
Usability:Switcher T-Usability:Switcher,
T-SD-Card
O app vai para o segundo plano quando o foco muda para outro app. Ele volta para o primeiro plano quando é reativado no seletor de apps Recentes.
Usabilidade:sono T-Usability:Sleep,
T-SD-Card
Quando o app está em primeiro plano, ele é pausado quando o dispositivo entra no modo de suspensão e retomado quando o dispositivo é ativado.
Usabilidade:bloqueio T-Usability:Lock,
T-SD-Card
Quando o app está em primeiro plano, ele é pausado quando o dispositivo é bloqueado e retomado quando é desbloqueado.
Interface do usuário
UI:Paridade T-UI:Transitions

As orientações de tela e os estados de dobra expõem basicamente os mesmos recursos e ações e preservam a paridade funcional.

Interface:tela cheia T-UI:Transitions

O app preenche a janela em ambas as orientações e não tem efeito letterbox devido a mudanças de configuração, incluindo dobrar e desdobrar o dispositivo.

Um leve efeito letterbox para compensar pequenas variações na geometria da tela é aceitável.

Interface:Transições T-UI:Transitions O app processa transições rápidas entre as orientações da tela e o dobrar/desdobrar do dispositivo sem problemas de renderização ou perda de estado.
Qualidade visual
Visual:Display T-Visual:Display

O app exibe gráficos, textos, imagens e outros elementos da interface sem distorção, desfoque ou pixelização perceptível.

  • O app usa drawables vetoriais sempre que possível
  • O app usa gráficos de alta qualidade para todos os tamanhos e formatos de tela.
  • Nenhum serrilhado nas bordas dos menus, botões e outros elementos da interface
Visual:legibilidade T-Visual:Readability O app garante a legibilidade do texto e dos blocos de texto limitando o comprimento da linha a 45 a 75 caracteres (incluindo espaços) para cada um dos idiomas disponíveis.
Visual:Temas T-Visual:Themes O conteúdo do app e todo o conteúdo da Web acessado por ele têm suporte a temas claros e escuros.
Navegação
T-Nav:Back O app é compatível com a navegação padrão pelo botão "Voltar" e não usa nenhuma solicitação personalizada desse botão na tela.
T-Nav:Back O app é compatível com a navegação por gestos para voltar e ir para a tela inicial.
T-Nav:State,
T-Nav:Back

O app preserva o estado do usuário ou do aplicativo ao sair do primeiro plano e evita perdas acidentais de dados devido à navegação de retorno e a outras mudanças de estado.

Ao retornar para o primeiro plano, o app restaura o estado preservado e as transações com estado pendentes. Isso inclui, por exemplo, mudanças em campos editáveis, progresso em jogos, menus, vídeos e outras seções do app.

  • Quando o app é retomado pelo seletor de apps Recentes, ele retorna o usuário exatamente para o mesmo estado em que estava no último uso.
  • Quando o app é reiniciado depois que o dispositivo é ativado de um estado de suspensão (bloqueado), ele retorna o usuário exatamente para o mesmo estado em que estava no último uso.
  • Quando o app é reiniciado pela tela Inicial ou Todos os apps, ele precisa executar uma das seguintes ações, dependendo do tempo decorrido desde o último uso:
    • Se o app tiver sido usado pela última vez há poucos minutos, restaure o estado dele para que fique o mais próximo possível do anterior.
    • Se mais tempo se passou desde que o app foi usado pela última vez, tente restaurá-lo para que fique o mais próximo possível do estado anterior ou abra-o na tela inicial ou em outro estado padrão.
Notificações
Notify:Info T-Notify:Info

As notificações fornecem informações relevantes relacionadas ao seu app.

  • Não use notificações para fazer promoção cruzada ou publicidade de outro produto, já que isso é estritamente proibido pela Play Store.
  • Os canais de notificação são definidos de acordo com as práticas recomendadas em vez de mostrar todas as notificações de um canal.
  • Selecione a prioridade de notificação correta.
  • Empilhe várias notificações em um único grupo de notificações sempre que possível.
  • Defina tempos limite para as notificações, quando apropriado.
  • As notificações são persistentes apenas quando estão relacionadas a eventos contínuos, como reprodução de música ou uma chamada telefônica. Para mais informações, consulte a seção Funcionalidade.
Notify:Messaging T-Notify:Info

Para apps de mensagens, sociais e conversas, siga estas recomendações:

Acessibilidade
Acesso:destinos T-Access:destinos As áreas de toque têm no mínimo 48 dp. Consulte as diretrizes de Layout e tipografia do Material Design (em inglês).
Acessar:Contraste T-Access:Contrast (em inglês)

O texto e o conteúdo em primeiro plano do app mantêm as seguintes taxas de contraste com o plano de fundo do app:

  • 3:1 para texto e gráficos grandes
  • 4,5:1 para textos pequenos (menos de 18 pt ou menos de 14 pt se o texto estiver em negrito)

Saiba mais sobre cor e contraste.

Access:Description T-Access:Description Descreva cada elemento da interface, exceto TextView, usando contentDescription.

Funcionalidade

O app precisa implementar o seguinte comportamento funcional.

ID Testes Descrição
Áudio
Áudio:Init T-Audio:Init

Quando o usuário inicia a reprodução de áudio, o app precisa executar uma das seguintes ações em até um segundo:

  • Começar a tocar o áudio
  • Fornecer um indicador visual de que os dados de áudio estão sendo preparados
Áudio:foco T-Audio:Focus O app precisa solicitar a seleção de áudio quando a reprodução for iniciada e abandonar essa seleção quando a reprodução for interrompida.
Áudio:interromper T-Audio:Interrupt O app precisa gerenciar as solicitações de outros apps para a seleção de áudio. Por exemplo, um app pode reduzir o volume da reprodução quando outro inicia uma fala.
Áudio:segundo plano T-Audio:Background O app precisa ser compatível com a reprodução em segundo plano.
Áudio:notificação T-Audio:Notification Quando o app toca áudio em segundo plano, ele precisa criar uma notificação estilizada com MediaStyle.
Áudio:Retomar T-Audio:Resume Se o app estiver em segundo plano e o áudio estiver pausado, ele será retomado quando o app voltar para o primeiro plano. Caso contrário, o app precisa indicar ao usuário que a reprodução está pausada.
Vídeo
Vídeo:picture-in-picture T-Vídeo:PiP Se o app reproduz vídeos, ele precisa ser compatível com a reprodução picture-in-picture.
Vídeo:codificação T-Video:Encoding Se o app codifica vídeos, isso precisa ser feito usando o padrão de compactação de vídeo HEVC.
Compartilhamento
Sharing:Sheet T-Sharing:Sheet O app precisa usar o Android Sharesheet ao compartilhar conteúdo. O app pode sugerir destinos que estão indisponíveis para soluções personalizadas.
Serviços em segundo plano
Segundo plano:serviços T-Background:Services

O app evita a execução de serviços desnecessariamente longos em segundo plano. Para garantir o bom funcionamento do dispositivo do usuário.

Observação:o sistema aplica várias restrições aos serviços em segundo plano.

Estes são exemplos de uso inadequado de serviços em segundo plano:

  • Manter uma conexão de rede para notificações
  • Manter uma conexão Bluetooth
  • Manter o GPS ligado

Para mais informações, consulte Visão geral das tarefas em segundo plano.

Desempenho e estabilidade

Seu app precisa oferecer desempenho, estabilidade, compatibilidade e capacidade de resposta ideais.

ID Testes Descrição
Desempenho
Performance:inicialização T- Performance:Startup O app carrega rapidamente ou, se leva mais de dois segundos para carregar, mostra feedback na tela para o usuário, como um indicador de progresso ou sugestão semelhante.
Performance:FPS T-Performance:FPS O app renderiza quadros a cada 16 (ou menos) milissegundos para mostrar pelo menos 60 quadros por segundo. Para ajuda com problemas de renderização, consulte Renderização lenta.
Performance:Strict T-Performance:Strict Com o StrictMode ativado (consulte a seção de teste StrictMode), nenhum flash vermelho (avisos de desempenho do StrictMode) fica visível ao testar o app.
Estabilidade
Estabilidade:ANR T-Stability:ANR O app não apresenta falhas nem bloqueia a linha de execução de IU, causando erros ANR (Android não está respondendo). Use o relatório de pré-lançamento do Google Play para identificar possíveis problemas de estabilidade. Após a implantação, monitore a página Android vitals no Google Play Console.
SDK
SDK:Platform T-SDK:Platform O app é executado na última versão pública da Plataforma Android sem falhas e sem afetar drasticamente a funcionalidade principal.
SDK:Target T-SDK:Latest O app é destinado ao SDK do Android mais recente necessário para se alinhar aos requisitos do Google Play definindo o valor de targetSdk no arquivo build.gradle do módulo do app.
SDK:Compile T-SDK:Latest O app é criado com o SDK do Android mais recente definindo o valor de compileSdk no arquivo build.gradle do módulo do app.
SDK:3P T-SDK:3P,
T-SDK:Non

Todos os SDKs do Google ou de terceiros usados estão atualizados. Qualquer melhoria nesses SDKs relacionada à estabilidade, compatibilidade ou segurança precisa ser disponibilizada aos usuários em tempo hábil.

Para SDKs do Google, use SDKs com a tecnologia do Google Play Services sempre que ela estiver disponível. Esses SDKs são compatíveis com versões anteriores, recebem atualizações automáticas, reduzem o tamanho do pacote de apps e usam os recursos do dispositivo com eficiência.

SDK:Non T-SDK:Non O app não usa interfaces que não são SDK.
SDK:Debug T-SDK:Debug Nenhuma biblioteca de depuração está incluída no app de produção. As bibliotecas de depuração incluídas no app podem causar problemas de desempenho e de segurança.
Bateria
Bateria:gerenciar T-Battery:Manage

O app é compatível com os recursos de gerenciamento de energia Soneca e App em espera.

Os apps podem pedir uma isenção de manutenção de energia. Consulte Suporte a outros casos de uso em Otimizar para os modos Soneca e App em espera.

Privacidade e segurança

O app trata dados e informações pessoais do usuário de modo seguro e oferece níveis de permissão adequados.

Os apps publicados na Google Play Store também precisam seguir as políticas de dados do usuário do Google Play para proteger a privacidade dos usuários.

ID Testes Descrição
Permissões
Permissões:Min T-Permissions:Min O app solicita apenas as permissões mínimas absolutas necessárias para oferecer suporte ao caso de uso atual. Para algumas permissões, como a de localização, o app usa uma especificação aproximada em vez de exata, se possível. Consulte Minimizar suas solicitações de permissão.
Permissões:sensíveis T-Permissions:Sensitive (em inglês)

O app solicita permissão para acessar dados sensíveis, como grupos de permissões de SMS ou registro de chamadas ou localização, ou serviços que geram custos, como Telefone ou SMS, somente quando ela está diretamente relacionada aos principais casos de uso. As implicações relacionadas a essas permissões precisam ser divulgadas em destaque para o usuário.

Dependendo de como o app usa as permissões, pode haver uma forma alternativa de atender ao caso de uso do app sem depender de acesso a informações sensíveis. Por exemplo, em vez de solicitar permissões relacionadas aos contatos de um usuário, use uma intent implícita para pedir acesso.

Permissões:execução T-Permissions:Runtime O app solicita permissões de execução quando a funcionalidade é solicitada, e não durante a inicialização dele.
Permissions:Explain T-Permissions:Explain O app explica claramente por que as permissões são necessárias.
Permissões:Degrade T-Permissions:Degrade O app faz uma degradação suave quando os usuários negam ou revogam uma permissão. O app não pode impedir o acesso do usuário por completo.
Dados e arquivos
Data:Sensitive T-Data:Sensitive,
T-Data:Handling
Todos os dados sensíveis são mantidos no armazenamento interno do app.
Dados:registro T-Data:Log Nenhum dado pessoal ou sensível do usuário é registrado no sistema ou em um registro específico do app.
Dados:IDs T-Data:IDs O app não usa IDs de hardware que não podem ser redefinidos, como o IMEI, para fins de identificação.
Identidade
Identity:Hints T-Identity:Hints O app oferece dicas para o preenchimento automático de credenciais da conta e outras informações sensíveis, como informações de cartão de crédito, endereço físico e número de telefone.
Identity:CredMan T-Identity:CredMan O app integra o Gerenciador de credenciais para Android para uma experiência de login integrada que unifica o suporte a chaves de acesso, identidade federada e senhas.
Identidade:biografia T-Identity:Bio O app oferece suporte à autenticação biométrica para proteger transações financeiras ou informações sensíveis, como documentos importantes do usuário.
Componentes do app
Componentes:Exportar T-Components:Export

O app define o atributo android:exported explicitamente para todas as atividades, serviços, broadcast receivers e, principalmente, provedores de conteúdo.

Apenas componentes de aplicativo que compartilham dados com outros apps ou que deveriam ser invocados por outros apps são exportados.

Componentes:permissões T-Components:Permissions

Todas as intents e transmissões seguem as práticas recomendadas:

Componentes:proteção T-Components:Protection

Todos os componentes que compartilham conteúdo entre apps usam android:protectionLevel="signature" para permissões personalizadas. Isso inclui atividades, serviços, broadcast receivers e, principalmente, provedores de conteúdo.

Os apps não podem acessar uma lista de pacotes instalados.

Redes
Rede:tráfego T-Network:Traffic Todo o tráfego de rede é enviado por SSL.
Network:Config T-Network:Config O app declara uma configuração de segurança de rede.
Rede:Play T-Network:Play Se o app usar o Google Play Services, o provedor de segurança será inicializado com ele.
WebViews
WebViews:Config T-WebViews:Config,
T-WebViews:Nav
Não use setAllowUniversalAccessFromFileURLs() para acessar o conteúdo local. Em vez disso, use WebViewAssetLoader.
WebViews:JavaScript T-WebViews:JavaScript,
T-WebViews:Nav

As visualizações da Web não usam addJavaScriptInterface() com conteúdo não confiável.

No Android 6.0 (nível 23 da API e mais recentes), use canais de mensagem HTML.

Execução
Execução:pacotes T-Execution:Bundles

O app não carrega dinamicamente códigos de fora do APK. Use os Android App Bundles, que incluem o Play Feature Delivery e o Play Asset Delivery.

Desde agosto de 2021, o uso de Android App Bundles é obrigatório para todos os novos apps na Google Play Store.

Criptografia
Criptografia:algoritmos T-Crypto:Algorithms O app usa algoritmos criptográficos e um gerador de números aleatórios fornecidos pela plataforma. Além disso, ele não implementa algoritmos personalizados.

Google Play

Permita que seu app seja publicado no Google Play.

ID Testes Descrição
Políticas
Play:Policies T-Play:Policies O app obedece totalmente aos termos da Política de conteúdo do desenvolvedor do Google Play, não apresenta conteúdo inadequado e não usa a propriedade intelectual ou a marca de outros.
Play:Maturidade T-Play:Policies O nível de maturidade do app está definido corretamente com base nas Diretrizes de classificação de conteúdo.
Página de detalhes do app
Play:Graphics T-Play:Graphics,
T-Play:Assets

O recurso gráfico do app segue as diretrizes descritas neste artigo de suporte. Confira se:

  • A página "Detalhes do app" inclui um recurso gráfico de alta qualidade
  • o recurso gráfico não contém imagens do dispositivo, capturas de tela ou textos pequenos que ficarão ilegíveis quando reduzidos e exibidos em uma tela menor do que aquela para a qual o app é destinado;
  • O recurso gráfico não se assemelha a um anúncio
Play:NonAndroid T-Play:Assets As capturas de tela e os vídeos do app não mostram nem fazem referência a dispositivos que não são Android.
Play:enganoso T-Play:Assets As capturas de tela ou vídeos do app não representam o conteúdo e a experiência do seu aplicativo de forma enganosa.
Suporte do usuário
Play:Bugs T-Play:Policies Os bugs comuns relatados pelos usuários na guia Avaliações da página do Google Play são resolvidos se forem reproduzíveis e ocorrerem em vários dispositivos diferentes. Se um bug ocorrer apenas em alguns dispositivos, tente resolvê-lo mesmo se esses dispositivos forem novos ou muito comuns.

Ambiente de teste

Configure um ambiente de teste da seguinte maneira:

  • Teste de emulador:o Android Emulator é uma ótima maneira de testar seu app em diferentes versões do Android e resoluções de tela. Configure dispositivos emulados (AVDs) para representar os formatos e as combinações de hardware/software mais comuns para sua base de usuários de destino. Teste vários formatos usando os seguintes emuladores (no mínimo):

    • Dispositivos dobráveis: 7,6" com tela externa (listados em smartphones no AVD Manager).
    • Tablet: Pixel C 9,94" (2.560 px x 1.800 px)
    • Teste de notificação de apps para dispositivos móveis: pareie um dispositivo móvel ou emulador com o emulador do Wear OS: Wear OS Round 1,84"
  • Dispositivos de hardware:seu ambiente de teste precisa incluir um pequeno número de dispositivos de hardware reais que representem os principais formatos e combinações de hardware/software disponíveis para os consumidores. Não é necessário testar em todos os dispositivos disponíveis no mercado. Concentre-se em um pequeno número de dispositivos representativos, usando um ou dois modelos por formato.

  • Laboratórios de teste de dispositivos:você também pode usar serviços de terceiros, como o Firebase Test Lab, para testar seu app em uma grande variedade de dispositivos.

  • Teste com a versão mais recente do Android:além de testar versões representativas do Android para sua base de usuários de destino, sempre teste com a versão mais recente do Android para garantir que as mudanças de comportamento mais recentes não afetem negativamente a experiência do usuário do app.

Para mais orientações sobre testes, incluindo testes de unidade, de integração e de interface, consulte Conceitos básicos para testar apps Android.

StrictMode

Para testar o desempenho, ative StrictMode no app. Use StrictMode para detectar operações que podem afetar o desempenho, os acessos à rede e as leituras e gravações de arquivos. Procure operações que podem ser problemáticas na linha de execução principal e em outras linhas de execução.

Configure uma política de monitoramento por linha de execução usando StrictMode.ThreadPolicy.Builder e ative todo o monitoramento compatível na ThreadPolicy usando detectAll().

Ative a notificação visual das violações da política para a ThreadPolicy usando penaltyFlashScreen().

Testes

Os testes de qualidade básica do app ajudam você a avaliar a qualidade fundamental do seu app. É possível combinar os testes ou integrar grupos de testes no seu planejamento.

Experiência do usuário

ID Recurso Descrição
Usabilidade
T-Usability:Core Usabilidade:UX

Navegue por todas as partes do app: todas as telas, caixas de diálogo, configurações e todos os fluxos de usuários.

Faça o seguinte:
  • Se o app permitir a edição ou criação de conteúdo, reprodução de mídia ou jogos, teste esses fluxos.
  • Ao testar o app, inclua interrupções de outros apps, como receber uma notificação ou uma chamada telefônica. Além disso, aplique mudanças temporárias a atributos do dispositivo, como conectividade de rede, função da bateria, disponibilidade de GPS e carregamento do sistema.
  • Insira e teste todos os fluxos de compra no app.
T-Usability:Switcher Usabilidade:Switcher Em cada tela do app, alterne para outro app em execução e volte para o que está em teste usando o seletor de apps Recentes.
T-Usability:Sleep Usabilidade:dormir Pressione o botão liga/desliga para colocar o dispositivo em suspensão e pressione-o novamente para ligar a tela.
T-Usability:Lock Usabilidade:bloqueio Configure um bloqueio de tela no dispositivo. Pressione o botão liga/desliga para colocar o dispositivo em suspensão, o que o bloqueará. Em seguida, pressione o botão novamente para ligar a tela e desbloquear o dispositivo.
Cartão SD
T-SD-Card Usabilidade:UX

Faça testes de funcionalidade principal com o app instalado no cartão SD do dispositivo, se o app for compatível com esse método de instalação.

Para mover o app para um cartão SD, consulte as Configurações do app.

Interface do usuário
T-UI:Transições UI:Parity,
UI:Fullscreen,
UI:Transitions

Em cada tela do app, gire o dispositivo entre as orientações paisagem e retrato e os estados dobrado e desdobrado pelo menos três vezes.

Verifique se o app faz o seguinte:
  • Oferece paridade de função em todas as orientações de tela e estados de dobra
  • Preenche a janela do app em todas as orientações de exibição e estados de dobra e não tem efeito letterbox
  • Mantém o estado e não tem problemas de renderização durante transições rápidas entre orientações e o dobrar/desdobrar do dispositivo
Qualidade visual
T-Visual:Display Visual:Display Use todos os recursos do app. Verifique se todos os recursos visuais, incluindo gráficos, texto, imagens e outros elementos da interface do usuário, não têm distorção, desfoque ou pixelização.
T-Visual:Readability Visual:legibilidade

Revise todos os blocos de texto no app. Verifique se o texto e o comprimento da linha do bloco de texto estão limitados a 45 a 75 caracteres (incluindo espaços) para facilitar a leitura.

Verifique o seguinte:
  • A composição é aceitável em todos os formatos
  • Não há corte de letras ou palavras
  • Não há quebras de palavras inadequadas dentro de botões ou ícones
  • Espaço suficiente entre o texto e os elementos ao redor dele
T-Visual:Themes Visual:Temas Verifique se todo o texto está legível nos temas claro e escuro. Verifique se todos os recursos visuais são claramente discerníveis e estéticos em temas claros e escuros.
Navegação
T-Nav:Back Nav:BackButton,
Nav:BackGesture

Navegue por todas as partes do app: todas as telas, caixas de diálogo, configurações e todos os fluxos de usuários.

Em cada tela do app, pressione o botão Voltar ou use o gesto de deslizar para voltar. O app precisa navegar para a tela anterior ou inicial.

T-Nav:State Nav:State Em cada tela do app, pressione o botão Home do dispositivo ou deslize para cima na navegação por gestos. Depois, reinicie o app na tela Todos os apps.
Notificações
T-Notify:Info Notify:Info,
Notify:Messaging
Acione todos os tipos de notificação que o app pode exibir e observe-as na gaveta de notificações. Expanda as notificações quando aplicável (Android 4.1 e mais recentes) e toque em todas as ações disponíveis.
Acessibilidade
T-Access:Targets Acessar:destinos Verifique se as áreas de toque mantêm um tamanho e uma posição acessíveis e consistentes para todos os tamanhos de tela e configurações. Para saber mais sobre acessibilidade, consulte o Scanner de acessibilidade.
T-Access:Contrast Acesso:contraste Verifique o contraste de todos os elementos visuais.
T-Access:Description Access:Description Verifique se todos os elementos da interface, exceto TextView, têm descrições de conteúdo.

Funcionalidade

ID Recurso Descrição
Áudio
T-Audio:Init Audio:Init Iniciar a reprodução de áudio. Verifique se, em um segundo, o app começa a tocar o áudio ou fornece um indicador visual de que os dados de áudio estão sendo preparados para reprodução.
T-Audio:Focus Áudio:foco Iniciar a reprodução de áudio. O app precisa solicitar a seleção de áudio. Quando a reprodução de áudio para, o app precisa liberar o foco de áudio, o que acontece automaticamente em apps direcionados ao Android 12 (nível 31 da API) e versões mais recentes.
T-Audio:Interrupt Áudio:Interrupt Iniciar a reprodução de áudio. Inicie a reprodução de áudio em outro app. Seu app precisa responder à mudança na seleção de áudio e interromper a reprodução ou reduzir o volume.
T-Audio:Background Áudio:segundo plano Iniciar a reprodução de áudio. Interaja com outro app não relacionado a áudio em primeiro plano. O app precisa continuar tocando áudio em segundo plano.
T-Audio:Notification Áudio:notificação Iniciar a reprodução de áudio. Interaja com outro app não relacionado a áudio em primeiro plano. Verifique se o app continua tocando áudio em segundo plano e se criou uma notificação estilizada com MediaStyle. Consulte Como usar os controles de mídia.
T-Audio:Resume Áudio:retome Iniciar a reprodução de áudio. Interaja com outro app que não seja de áudio como o app em primeiro plano. Interaja com seu app para que ele seja o principal. O áudio vai ser retomado ou o volume vai ser restaurado. Caso contrário, o app precisa indicar ao usuário que a reprodução está pausada.
T-Video:PiP Vídeo:PiP Ative a reprodução de vídeo do app no modo picture-in-picture.
T-Video:Encoding Vídeo:codificação Verifique se o app codifica vídeos usando o padrão de compactação de vídeo HEVC.
Compartilhamento
Compartilhamento:planilha Crie uma intent e inicie uma atividade chamando startActivity() com a intent como argumento. Consulte Usar o Android Sharesheet. O app precisa mostrar o Android Sharesheet.
Serviços em segundo plano
CR-6 Informações gerais:serviços

Use todos os principais recursos do app. Verifique se nenhum serviço em segundo plano de longa duração foi iniciado.

Alterne para outro app para enviar o seu para o segundo plano. Acesse Configurações e confira se o app está executando algum serviço enquanto está em segundo plano. No Android 4.0 e mais recentes, acesse a tela Apps e localize o app na guia Em execução.

Desempenho e estabilidade

ID Recurso Descrição
Desempenho
T- Performance:Startup Performance:Startup Inicie o app. Verifique se ele carrega rapidamente ou mostra um indicador de progresso ou sugestão semelhante se levar mais de dois segundos para carregar.
T-Performance:FPS Performance:QPS Use todos os principais recursos do app. Verifique se ele renderiza pelo menos 60 frames por segundo. Use a opção Criar perfil de renderização de HWUI para ajudar a testar seu app.
T-Performance:Strict Performance:Strict

Ative o StrictMode no seu app e use todos os recursos principais. Verifique se o app não produz nenhum aviso de desempenho StrictMode. Ou seja, nenhum flash vermelho fica visível ao testar o app. Os flashes vermelhos indicam comportamento inadequado em relação ao armazenamento, ao acesso à rede ou ao gerenciamento de memória (como vazamentos de memória).

Preste muita atenção à coleta de lixo e ao impacto dela na experiência do usuário.

Estabilidade
T-Stability:ANR Estabilidade:ANR Use todos os principais recursos do app. Verifique se ele não falha nem bloqueia a linha de execução de interface, causando erros de ANR (Android não está respondendo). Analise o relatório de pré-lançamento do Google Play para identificar possíveis problemas de estabilidade.
SDK
T-SDK:Platform SDK:Platform Execute o app na versão pública mais recente da plataforma Android. Use todos os principais recursos. Verifique se o app não falha e é executado sem perda de funcionalidade principal.
T-SDK:Latest SDK:Target,
SDK:Compile
Revise o arquivo de manifesto do Android e a configuração do build para garantir que o app seja compilado de acordo com o SDK mais recente disponível (targetSdk e compileSdk).
T-SDK:3P SDK:3P Revise o arquivo build.gradle do app para ver se há dependências desatualizadas.
T-SDK:Non SDK:Non Use a ferramenta lint do Android Studio para detectar o uso de interface que não é SDK. Consulte Restrições para interfaces que não são SDK para conhecer métodos de teste alternativos.
T-SDK:Debug SDK:Debug Analise o arquivo build.gradle do app para verificar se há bibliotecas de depuração incluídas.
Bateria
T-Battery:Manage Bateria:gerenciar

Use todos os principais recursos do app nos modos Soneca e App em espera. Verifique se alarmes, timers, notificações e sincronizações funcionam corretamente na janela de manutenção do modo Soneca e quando o app sai do modo App em espera.

Teste o comportamento dos recursos Soneca e App em espera usando comandos do ADB. Consulte Testes com os recursos Soneca e App em espera para ver os requisitos e as orientações.

Para diagnosticar o consumo inesperado da bateria, use o Power Profiler do Android Studio ou a ferramenta Battery Historian combinada com trabalho planejado em segundo plano.

Privacidade e segurança

ID Recurso Descrição
Permissões
T-Permissions:Min Permissões:Min Revise todas as permissões exigidas pelo app no arquivo de manifesto (no momento da execução) e nas configurações do app no dispositivo (Configurações > Informações do app).
T-Permissions:Sensitive Permissões:sensíveis Use todos os recursos do app que pedem permissões. Verifique se o app solicita permissão para acessar dados ou serviços sensíveis apenas para os principais casos de uso. Verifique se as implicações de conceder permissão para dados e serviços sensíveis são comunicadas claramente ao usuário.
T-Permissions:Runtime Permissões:tempo de execução Use todos os recursos do app que exigem permissões. Verifique se as permissões são solicitadas de forma lenta, ou seja, apenas quando os recursos são acessados, e não durante a inicialização do app.
T-Permissions:Explain Permissões:explicar Use todos os recursos do app que exigem permissões. Verifique se o app explica ao usuário por que as permissões são necessárias.
T-Permissions:Degrade Permissões:redução Use todos os recursos do app que exigem permissões. Negue ou revogue as permissões. Verifique se o app oferece um caso de uso alternativo e continua funcionando.
Dados e arquivos
T-Data:Sensitive Data:Sensitive Revise todos os dados armazenados no armazenamento interno. Verifique se os dados armazenados externamente não são sensíveis.
T-Data:Handling Data:Sensitive Revise como os dados carregados do armazenamento externo são gerenciados e tratados.
T-Data:Log Dados:registro Use todos os principais recursos do app enquanto monitora o registro do dispositivo. Verifique se nenhuma informação particular do usuário foi registrada.
T-Data:IDs Dados:IDs Use todos os principais recursos do app. Verifique se o app não usa IDs de hardware, como o IMEI, para fins de identificação.
Identidade
T-Identity:Hints Identidade:dicas Use todos os recursos do app que exigem entrada do usuário. Verifique se o app oferece dicas para preencher automaticamente campos de entrada de dados, como credenciais da conta e outras informações sensíveis.
T-Identity:CredMan Identidade:CredMan Faça login no app. Verifique se ele integra o Credential Manager para Android para uma experiência de login que unifica o suporte a chaves de acesso, identidade federada e senhas.
T-Identity:Bio Identidade:biografia Use todos os recursos do app que exigem autenticação. Verifique se o app protege transações financeiras ou informações sensíveis, como documentos importantes do usuário, com autenticação biométrica.
Componentes do app
T-Components:Export Componentes:exportação Revise todos os componentes de aplicativo definidos no arquivo de manifesto do Android para o estado de exportação adequado. A propriedade exportada precisa ser definida explicitamente para todos os componentes.
T-Components:Permissions Componentes:Permissions Revise todas as permissões exigidas pelo app no arquivo de manifesto, no momento da execução e nas configurações do app no dispositivo (Configurações > Informações do app).
T-Components:Protection Componentes:proteção Revise todos os provedores de conteúdo definidos no arquivo de manifesto do Android. Confira se cada provedor tem um protectionLevel apropriado.
Redes
T-Network:Traffic Rede:tráfego Declare uma configuração de segurança de rede que desative o tráfego de texto não criptografado e depois teste o app.
T-Network:Config Network:Config Revise a configuração de segurança de rede do app. Verifique se não há falhas na verificação de lint na configuração.
T-Network:Play Rede:Play Verifique se o provedor de segurança foi inicializado na inicialização do aplicativo para o Google Play Services.
WebViews
T-WebViews:Config WebViews:Config Revise a configuração de segurança de rede do app. Verifique se não há falhas na verificação de lint na configuração.
T-WebViews:JavaScript WebViews:JavaScript Para cada WebView, navegue até uma página que requer JavaScript.
T-WebViews:Nav WebViews:Config,
WebViews:JavaScript
Em cada WebView, tente navegar para sites e conteúdo que não sejam carregados diretamente pelo seu app.
Execução
T-Execution:Bundles Execução:pacotes Verifique se o app usa Android App Bundles e não carrega dinamicamente códigos de fora do APK.
Criptografia
T-Crypto:Algorithms Crypto:Algorithms Verifique se o app usa um gerador de números aleatórios e algoritmos criptográficos fortes fornecidos pela plataforma. Além disso, verifique se o app não implementa algoritmos personalizados.

Google Play

ID Recurso Descrição
Políticas
T-Play:Policies Play:Policies,
Play:Maturity,
Play:Bugs
Faça login no Google Play Console para revisar seu perfil de desenvolvedor, a descrição do app, as capturas de tela, o recurso gráfico, a classificação do conteúdo e o feedback dos usuários.
Página de detalhes do app
T-Play:Graphics Play:Graphics Faça o download do recurso gráfico e das capturas de tela e reduza-os para que fiquem do tamanho da tela nos dispositivos e formatos pretendidos.
T-Play:Assets Play:Graphics,
Play:NonAndroid,
Play:Misleading
Revise todos os recursos gráficos, os conteúdos de mídia, textos, bibliotecas de código e outros conteúdos inclusos no pacote do app ou do download do arquivo de extensão.

Arquivar

Versões anteriores das principais diretrizes de qualidade de apps: