Diretrizes principais de qualidade de apps

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 janelamento, 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 de usuários

Diretrizes

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

Experiência do usuário

O design visual e os padrões de interação padrão do Android oferecem 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.

Usabilidade

ID Testes Descrição
Consistent_UX T-Consistent_UX,
T-SD_Card
O app oferece uma experiência do usuário consistente para todos os casos de uso em todos os formatos.
App_Switcher T-App_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.
Sleep_Resume T-Sleep_Resume,
T-SD_Card
Quando o aplicativo está em primeiro plano, ele é pausado quando o dispositivo entra no modo de suspensão e retomado quando o dispositivo é ativado.
Lock_Resume T-Lock_Resume,
T-SD_Card
Quando o aplicativo está em primeiro plano, ele é pausado quando o dispositivo é bloqueado e retomado quando é desbloqueado.

Interface do usuário

ID Testes Descrição
Display_State_Parity T-Orientation_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.

Fullscreen_Display T-Orientation_Transitions

O app preenche a janela do app 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.

Orientation_Transitions T-Orientation_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

ID Testes Descrição
Graphic_Quality T-Graphic_Quality

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
Line_Length T-Line_Length 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.
Theme_Support T-Theme_Support O conteúdo do app e todo o conteúdo da Web acessado por ele têm suporte a temas claros e escuros.
ID Testes Descrição
Back_Button_Nav T-Back_Nav 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.
Back_Gesture_Nav T-Back_Nav O app é compatível com a navegação por gestos para voltar e ir para a tela inicial.
State_Preservation T-State_Preservation,
T-Back_Nav

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

ID Testes Descrição
Notification_Quality T-Notification_Quality

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 Google 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.
Conversation_Quality T-Notification_Quality

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

Acessibilidade

ID Testes Descrição
Touch_Target_Size T-Touch_Target_Size As áreas de toque têm no mínimo 48 dp. Consulte as diretrizes de Layout e tipografia do Material Design (em inglês).
Visual_Contrast T-Visual_Contrast

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.

Content_Description T-Content_Description Descreva cada elemento da interface, exceto TextView, usando contentDescription.

Funcionalidade

O app precisa implementar o seguinte comportamento funcional.

Áudio

ID Testes Descrição
Audio_Playback_Start T-Audio_Playback_Start

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
Audio_Focus_Request T-Audio_Focus_Request 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.
Audio_Focus_Change T-Audio_Focus_Change 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.
Audio_Playback_Background T-Audio_Playback_Background

O app precisa ser compatível com a reprodução em segundo plano.

O app precisa usar um serviço em primeiro plano para evitar que o sistema encerre o processo do app quando ele não estiver mais visível. O app também precisa mostrar uma notificação persistente e não dispensável na barra de status ou na tela de bloqueio para informar ao usuário que o app está em execução.

Os usuários precisam conseguir controlar a reprodução usando os controles de notificação ou da tela de bloqueio ou os controles em um acessório conectado.

Audio_Notification_Style T-Audio_Notification_Style Quando o app toca áudio em segundo plano, ele precisa criar uma notificação estilizada com MediaStyle.
Audio_Playback_Resume T-Audio_Playback_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

ID Testes Descrição
Video_PiP T-Video_PiP Se o app reproduz vídeos, ele precisa ser compatível com a reprodução picture-in-picture.
Video_Encoding T-Video_Encoding Se o app codifica vídeos, isso precisa ser feito usando o padrão de compactação de vídeo HEVC.
Video_Playback_Background T-Video_Playback_Background

O app oferece suporte à reprodução de vídeo em segundo plano quando não é o app principal, inclusive quando a janela do app está:

  • Minimizado
  • Atrás de outras janelas ou da interface do sistema (por exemplo, aba de notificações ou tela inicial/tela de bloqueio)
  • Fora da tela visível da área de trabalho

Compartilhamento

ID Testes Descrição
System_Sharesheet T-System_Sharesheet 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

ID Testes Descrição
Background_Service_Optimization T-Background_Service_Optimization

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.

Desempenho

ID Testes Descrição
App_Startup_Time T-App_Startup_Time 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.
Rendering_Performance T-Rendering_Performance 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.
StrictMode_Compliance T-StrictMode_Compliance 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

ID Testes Descrição
Stability_ANR T-Stability_ANR O app não apresenta falhas nem bloqueia a linha de execução de interface, 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

ID Testes Descrição
Android_Platform_Compatibility T-Android_Platform_Compatibility O app é executado na última versão pública da Plataforma Android sem falhas e sem afetar drasticamente a funcionalidade principal.
Target_SDK_Version T-Target_SDK_Version 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.
Compile_SDK_Version T-Target_SDK_Version 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_Maintenance T-SDK_Maintenance,
T-Non_SDK_Interfaces

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.

Non_SDK_Interfaces T-Non_SDK_Interfaces O app não usa interfaces que não são SDK.
Production_Build_Quality T-Production_Build_Quality 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

ID Testes Descrição
Power_Management T-Power_Management

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 do usuário e informações pessoais com segurança 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.

Permissões

ID Testes Descrição
Minimize_Permissions T-Minimize_Permissions O app solicita apenas o mínimo absoluto de permissões 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.
Sensitive_Permissions T-Sensitive_Permissions

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.

Runtime_Permissions T-Runtime_Permissions O app solicita permissões de execução quando a funcionalidade é solicitada, e não durante a inicialização dele.
Permission_Rationale T-Permission_Rationale O app explica claramente por que as permissões são necessárias.
Graceful_Degradation T-Graceful_Degradation 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

ID Testes Descrição
Sensitive_Data_Storage T-Sensitive_Data_Storage,
T-Sensitive_Data_Handling
Todos os dados sensíveis são mantidos no armazenamento interno do app.
Sensitive_Data_Logging T-Sensitive_Data_Logging Nenhum dado pessoal ou sensível do usuário é registrado no sistema ou em um registro específico do app.
Hardware_IDs T-Hardware_IDs O app não usa IDs de hardware que não podem ser redefinidos, como o IMEI, para fins de identificação.

Identidade

ID Testes Descrição
Autofill_Hints T-Autofill_Hints O app oferece dicas para o preenchimento automático de credenciais da conta e outras informações sensíveis, como dados do cartão, endereço físico e número de telefone.
Credential_Manager T-Credential_Manager 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.
Biometric_Authentication T-Biometric_Authentication 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

ID Testes Descrição
Component_Export T-Component_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.

Component_Permissions T-Component_Permissions

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

Component_Protection T-Component_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

ID Testes Descrição
Network_Security_Traffic T-Network_Security_Traffic Todo o tráfego de rede é enviado por SSL.
Network_Security_Configuration T-Network_Security_Configuration O app declara uma configuração de segurança de rede.
Security_Provider_Initialization T-Security_Provider_Initialization Se o app usar o Google Play Services, o provedor de segurança será inicializado com ele.

WebViews

ID Testes Descrição
WebView_Asset_Loader T-WebView_Asset_Loader,
T-WebView_Navigation
Não use setAllowUniversalAccessFromFileURLs() para acessar o conteúdo local. Em vez disso, use WebViewAssetLoader.
WebView_JavaScript T-WebView_JavaScript,
T-WebView_Navigation

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

ID Testes Descrição
App_Bundles T-App_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

ID Testes Descrição
Cryptographic_Algorithms T-Cryptographic_Algorithms O app usa algoritmos criptográficos e um gerador de números aleatórios fortes fornecidos pela plataforma. Além disso, ele não implementa algoritmos personalizados.

Google Play

Permita que seu app seja publicado no Google Play.

Políticas

ID Testes Descrição
Play_Content_Policies T-Play_Content_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_Content_Rating T-Play_Content_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

ID Testes Descrição
Play_Feature_Graphic T-Play_Feature_Graphic,
T-Play_Graphic_Assets

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

  • A página de 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_Device_References T-Play_Graphic_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_Misleading_Content T-Play_Graphic_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

ID Testes Descrição
Play_User_Reviews T-Play_Content_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 no 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

Teste para uma experiência do usuário consistente e intuitiva.

Usabilidade

ID Recurso Descrição
T-Consistent_UX Consistent_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-App_Switcher App_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-Sleep_Resume Sleep_Resume Pressione o botão liga/desliga para colocar o dispositivo em suspensão e pressione-o novamente para ligar a tela.
T-Lock_Resume Lock_Resume 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

ID Recurso Descrição
T-SD_Card Consistent_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

ID Recurso Descrição
T-Orientation_Transitions Display_State_Parity,
Fullscreen_Display,
Orientation_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

ID Recurso Descrição
T-Graphic_Quality Graphic_Quality 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-Line_Length Line_Length

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-Theme_Support Theme_Support 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.
ID Recurso Descrição
T-Back_Nav Back_Button_Nav,
Back_Gesture_Nav

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-State_Preservation State_Preservation 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

ID Recurso Descrição
T-Notification_Quality Notification_Quality,
Conversation_Quality
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

ID Recurso Descrição
T-Touch_Target_Size Touch_Target_Size 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-Visual_Contrast Visual_Contrast Verifique o contraste de todos os elementos visuais.
T-Content_Description Content_Description Verifique se todos os elementos da interface, exceto TextView, têm descrições de conteúdo.

Funcionalidade

Verifique se o app implementa o seguinte comportamento funcional.

Áudio

ID Recurso Descrição
T-Audio_Playback_Start Audio_Playback_Start 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_Request Audio_Focus_Request Iniciar a reprodução de áudio. O app precisa solicitar a seleção de áudio. Quando a reprodução de áudio é interrompida, 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_Focus_Change Audio_Focus_Change 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_Playback_Background Audio_Playback_Background

Iniciar a reprodução de áudio. Interaja com outro app não relacionado a áudio como o aplicativo em primeiro plano. O app precisa continuar tocando áudio em segundo plano e mostrar uma notificação na barra de status. Verifique se você consegue gerenciar a reprodução usando os controles exibidos na notificação.

Bloqueie a tela do dispositivo. O app precisa continuar tocando áudio em segundo plano e mostrar uma notificação na tela de bloqueio. Verifique se você consegue gerenciar a reprodução usando os controles exibidos na notificação.

T-Audio_Notification_Style Audio_Notification_Style Iniciar a reprodução de áudio. Interaja com outro app não relacionado a áudio como o aplicativo 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_Playback_Resume Audio_Playback_Resume Iniciar a reprodução de áudio. Interaja com outro app que não seja de áudio como o aplicativo 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.

Vídeo

ID Recurso Descrição
T-Video_PiP Video_PiP Ative a reprodução de vídeo do app no modo picture-in-picture.
T-Video_Encoding Video_Encoding Verifique se o app codifica vídeos usando o padrão de compactação de vídeo HEVC.
T-Video_Playback_Background Video_Playback_Background Comece a reprodução do vídeo. Minimize a janela do app e abra outro para mover a janela para o segundo plano. Em dispositivos compatíveis com computadores, mova a janela do app para fora da área de trabalho visível. Verifique se a reprodução de vídeo continua sem interrupções em todos os casos.

Compartilhamento

ID Recurso Descrição
T-System_Sharesheet System_Sharesheet 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

ID Recurso Descrição
T-Background_Service_Optimization Background_Service_Optimization

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

Verifique o desempenho, a estabilidade e os visuais perfeitos em pixels.

Desempenho

ID Recurso Descrição
T-App_Startup_Time App_Startup_Time 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-Rendering_Performance Rendering_Performance 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-StrictMode_Compliance StrictMode_Compliance

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 mau comportamento 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

ID Recurso Descrição
T-Stability_ANR Stability_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

ID Recurso Descrição
T-Android_Platform_Compatibility Android_Platform_Compatibility 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 funciona sem perda de funcionalidades principais.
T-Target_SDK_Version Target_SDK_Version,
Compile_SDK_Version
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_Maintenance SDK_Maintenance Revise o arquivo build.gradle do app para ver se há dependências desatualizadas.
T-Non_SDK_Interfaces Non_SDK_Interfaces 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-Production_Build_Quality Production_Build_Quality Analise o arquivo build.gradle do app para verificar se há bibliotecas de depuração incluídas.

Bateria

ID Recurso Descrição
T-Power_Management Power_Management

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

Teste as proteções de privacidade e segurança esperadas pelos usuários.

Permissões

ID Recurso Descrição
T-Minimize_Permissions Minimize_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-Sensitive_Permissions Sensitive_Permissions 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-Runtime_Permissions Runtime_Permissions 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-Permission_Rationale Permission_Rationale 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-Graceful_Degradation Graceful_Degradation 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

ID Recurso Descrição
T-Sensitive_Data_Storage Sensitive_Data_Storage Revise todos os dados armazenados no armazenamento interno. Verifique se os dados armazenados externamente não são dados sensíveis.
T-Sensitive_Data_Handling Sensitive_Data_Storage Revise como os dados carregados do armazenamento externo são gerenciados e tratados.
T-Sensitive_Data_Logging Sensitive_Data_Logging 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-Hardware_IDs Hardware_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

ID Recurso Descrição
T-Autofill_Hints Autofill_Hints 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-Credential_Manager Credential_Manager Faça login no app. Verifique se ele integra o Gerenciador de credenciais para Android para uma experiência de login que unifica o suporte a chaves de acesso, identidade federada e senhas.
T-Biometric_Authentication Biometric_Authentication 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

ID Recurso Descrição
T-Component_Export Component_Export 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-Component_Permissions Component_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-Component_Protection Component_Protection Revise todos os provedores de conteúdo definidos no arquivo de manifesto do Android. Confira se cada provedor tem um protectionLevel apropriado.

Redes

ID Recurso Descrição
T-Network_Security_Traffic Network_Security_Traffic 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_Security_Configuration Network_Security_Configuration 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-Security_Provider_Initialization Security_Provider_Initialization Verifique se o provedor de segurança foi inicializado na inicialização do aplicativo para o Google Play Services.

WebViews

ID Recurso Descrição
T-WebView_Asset_Loader WebView_Asset_Loader 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-WebView_JavaScript WebView_JavaScript Para cada WebView, navegue até uma página que requer JavaScript.
T-WebView_Navigation WebView_Asset_Loader,
WebView_JavaScript
Em cada WebView, tente navegar para sites e conteúdo que não sejam carregados diretamente pelo seu app.

Execução

ID Recurso Descrição
T-App_Bundles App_Bundles Verifique se o app usa Android App Bundles e não carrega dinamicamente códigos de fora do APK.

Criptografia

ID Recurso Descrição
T-Cryptographic_Algorithms Cryptographic_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

Verifique se o app está pronto para o Google Play.

Políticas

ID Recurso Descrição
T-Play_Content_Policies Play_Content_Policies,
Play_Content_Rating,
Play_User_Reviews
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

ID Recurso Descrição
T-Play_Feature_Graphic Play_Feature_Graphic 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_Graphic_Assets Play_Feature_Graphic,
Play_Device_References,
Play_Misleading_Content
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 expansão.

Arquivar

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