
O usuário do Android espera aplicativos de alta qualidade. A qualidade do aplicativo influencia diretamente seu sucesso em longo prazo em termos de instalação, classificação e avaliação, participação e retenção de usuários.
Esta página ajuda a avaliar os aspectos principais da qualidade do aplicativo a partir de um conjunto compacto de critérios de qualidade e testes associados. Todos os aplicativos Android devem atender a esses critérios.
Antes de publicar seus aplicativos, teste-os novamente segundo esses critérios para garantir que funcionem bem em vários dispositivos, atendam aos padrões de navegação e projeto do Android e estejam preparados para oportunidades promocionais na Google Play Store. Seu teste irá além do que está descrito aqui. O objetivo deste documento é especificar as principais características de qualidade que todos os aplicativos devem mostrar para que possam ser abordadas nos planos de teste.
Se você está criando aplicativos para outros dispositivos Android, como tablets ou TV, há outras diretrizes de qualidade adicionais que precisam ser consideradas.
Projeto visual e interação do usuário
Esses critérios garantem que seu aplicativo forneça design visual padrão do Android e padrões de interação conforme necessário para uma experiência do usuário consistente e intuitiva.
Área | ID | Descrição | Testes |
---|---|---|---|
Projeto padrão | UX-B1 |
O aplicativo segue as diretrizes de Design para Android e usa padrões e ícones comuns de IU:
|
CR-all |
Navegação | UX-N1 |
O aplicativo é compatível com a navegação do botão Back do sistema padrão e não utiliza nenhum prompt personalizado do “botão Back” na tela. |
CR-3 |
UX-N2 |
Todas as caixas de diálogo são descartadas usando o botão Back. |
CR-3 | |
UX-N3 | Pressionar o botão Home em qualquer ponto navega para a Tela inicial do dispositivo. | CR-1 | |
Notificações | UX-S1 |
As notificações seguem as diretrizes de Projeto para Android. Principalmente:
|
CR-11 |
UX-S2 |
O aplicativo usa notificações apenas para:
|
CR-11 |
Funcionalidade
Esses critérios garantem que seu aplicativo forneça o comportamento funcional esperado, com o nível de permissões adequado.
Área | ID | Descrição | Testes |
---|---|---|---|
Permissões | FN-P1 | O aplicativo solicita apenas as permissões absolutamente mínimas necessárias para oferecer suporte às principais funcionalidades. | SC-4 |
FN-P2 |
O aplicativo não solicita permissões para acessar dados privados (como Contatos ou Registro do Sistema) ou serviços que podem custar dinheiro (como Discador ou SMS), a não ser que esteja relacionado à principal capacidade do aplicativo. |
||
Local da instalação | FN-L1 |
O aplicativo funciona normalmente quando instalado em um cartão SD (se compatível com o aplicativo). O suporte para instalação no cartão SD é recomendado para a maioria dos grandes aplicativos (mais de 10 MB). Veja o guia do desenvolvedor Local de instalação do aplicativo para obter mais informações sobre quais tipos de aplicativos devem ser compatíveis com a instalação no cartão SD. |
SD-1 |
Áudio | FN-A1 | O áudio não é reproduzido quando a tela está desligada, a não ser que haja um recurso principal (por exemplo, o aplicativo é um leitor de música). | CR-7 |
FN-A2 | O áudio não é reproduzido com a tela de bloqueio, a não ser que seja um recurso principal. | CR-8 | |
FN-A3 | O áudio não é reproduzido na tela inicial ou por cima de outro aplicativo, a não ser que seja um recurso principal. | CR-1, CR-2 | |
FN-A4 | O áudio é reiniciado quando o aplicativo volta para o segundo plano ou indica para o usuário que a reprodução está pausada. | CR-1, CR-8 | |
Interface do usuário e gráficos | FN-U1 |
O aplicativo oferece suporte para as orientações horizontal e vertical (se possível). As orientações expõem basicamente os mesmos recursos e ações e preservam a igualdade funcional. Pequenas mudanças no conteúdo ou na visualização são aceitáveis. |
CR-5 |
FN-U2 |
O aplicativo usa toda a tela em ambas as orientações e não cria uma caixa de texto de acordo com as mudanças de orientação. Pequenas caixas de texto para compensar pequenas variações na geometria da tela são aceitáveis. |
CR-5 | |
FN-U3 |
O aplicativo lida corretamente com transições rápidas entre as orientações da tela sem problemas de renderização. |
CR-5 | |
Estado do usuário/aplicativo | FN-S1 |
O aplicativo não deve deixar nenhum serviço em execução quando estiver em segundo plano, a não ser que esteja relacionado a um recurso principal do aplicativo. Por exemplo, o aplicativo não deve deixar os serviços em execução para manter uma conexão de rede para notificações, para manter uma conexão Bluetooth ou para manter o GPS ativado. |
CR-6 |
FN-S2 |
O aplicativo preserva e restaura corretamente o estado do usuário ou aplicativo. O aplicativo preserva o estado do usuário ou do aplicativo ao sair do primeiro plano e evita perdas acidentais de dados devido à navegação para trás e outras mudanças de estado. Ao voltar para o primeiro plano, o aplicativo deve restaurar o estado preservado e qualquer transação significativa de estado que estava pendente, como mudanças em campos editáveis, andamento de jogos, menus, vídeos e outras seções do aplicativo ou jogo.
|
CR-1, CR-3, CR-5 |
Compatibilidade, desempenho e estabilidade
Estes critérios garantem que os aplicativos forneçam compatibilidade, desempenho, estabilidade e resposta esperados pelo usuário.
Área | ID | Descrição | Testes |
---|---|---|---|
Estabilidade | PS-S1 | O aplicativo não falha, força o fechamento, congela nem funciona de forma anormal em qualquer dispositivo. | CR-all, SD-1, HA-1 |
Desempenho | PS-P1 | O aplicativo carrega rapidamente e mostra feedback na tela para o usuário (um indicador de andamento ou sugestão semelhante) se levar mais de dois segundos para carregar. | CR-all, SD-1 |
PS-P2 | Com o StrictMode habilitado (veja Teste do StrictMode abaixo), nenhuma luz vermelha (avisos de desempenho do StrictMode) estará visível ao se executar o aplicativo, incluindo durante a reprodução de jogos, animações e transições da interface do usuário ou qualquer outra parte do aplicativo. | PM-1 | |
SDK | PS-T1 | O aplicativo é executado na versão pública mais recente da plataforma Android sem falhar nem perder a função principal. | CR-0 |
PS-T2 |
O aplicativo é direcionado ao SDK mais recente definindo o valor targetSdk para minimizar o uso de qualquer fallback de compatibilidade fornecido pela plataforma.
|
SP-1 | |
PS-T3 |
O aplicativo é compilado com o SDK mais recente, definindo o valor compileSdk .
|
SD-1 | |
Bateria | PS-B1 | O aplicativo oferece suporte adequado aos recursos de gerenciamento de energia no Android 6.0+ (Soneca e App em espera). No caso em que a funcionalidade principal é interrompida pelo gerenciamento de energia, somente aplicativos qualificados podem solicitar uma exceção. | BA-1 |
Mídia | PS-M1 | A reprodução de vídeo e música é regular, sem estalos, intermitência ou outros artefatos, durante o carregamento e uso normal do aplicativo. | CR-all, SD-1, HA-1 |
Qualidade visual | PS-V1 |
O aplicativo exibe gráficos, textos, imagens e outros elementos da interface do usuário sem distorção, falta de clareza ou pixelização.
|
CR-all |
PS-V2 |
O aplicativo exibe textos e blocos de texto de forma aceitável.
|
Segurança
Esses critérios garantem que os aplicativos lidem com dados do usuário e informações pessoais com segurança.
Além desta lista de verificação, os aplicativos publicados na Google Play Store também precisam seguir as políticas de dados do usuário para proteger a privacidade dos usuários.
Área | ID | Descrição | Testes |
---|---|---|---|
Dados | SC-D1 | Todos os dados privados são mantidos no armazenamento interno do aplicativo. | SC-1 |
SC-D2 | Todos os dados do armazenamento externo são verificados antes de serem acessados. | SC-2 | |
SC-D3 |
Todos os intents e transmissões seguem as práticas recomendadas de segurança.
|
||
SC-D4 | Nenhum dado pessoal ou confidencial do usuário fica armazenado no registro do sistema ou do aplicativo. | SC-10 | |
Componentes de aplicativo | SC-P1 |
Somente componentes de aplicativo que compartilham dados com outros aplicativos ou que deveriam ser invocados por outros aplicativos são exportados. Isso inclui atividades, serviços, broadcast receivers, e principalmente provedores de conteúdo.
Defina sempre o atributo |
SC-5 |
SC-P2 | Todos os componentes da aplicativo que compartilham conteúdo com outros aplicativos definem (e aplicam) as permissões apropriadas. Isso inclui atividades, serviços, broadcast receivers e principalmente provedores de conteúdo. | SC-4 | |
SC-P3 |
Todos os provedores de conteúdo que compartilham conteúdo entre seus aplicativos usam android:protectionLevel="signature" .
|
SC-3 | |
Rede | SC-N1 | Todo o tráfego de rede é enviado por SSL. | SC-9 |
SC-N2 | O aplicativo declara uma configuração de segurança de rede. | ||
SC-N3 | Se o aplicativo usar os serviços do Google Play, o provedor de segurança será inicializado na inicialização do aplicativo. | ||
Bibliotecas | SC-U1 | Todas as bibliotecas, dependências e SDKs estão atualizados. | |
WebViews | SC-W1 | O JavaScript está desativado em todos os WebViews (a menos que seja necessário). | SC-6 |
SC-W2 | Os WebViews só carregam conteúdo permitido, se possível. | SC-8 | |
SC-W3 |
Os WebViews não usam No Android M e versões posteriores, os canais de mensagens em HTML podem ser usados no lugar desse recurso. |
SC-7 | |
Execução | SC-E1 | O aplicativo não carrega dinamicamente códigos de fora do APK. | |
Criptografia | SC-C1 | O aplicativo usa algoritmos criptográficos fortes fornecidos pela plataforma e não implementa algoritmos personalizados. | |
SC-C2 | O aplicativo usa um gerador de números aleatórios adequadamente seguro, principalmente para inicializar chaves criptográficas. |
Google Play
Esses critérios garantem que seus aplicativos estejam prontos para serem publicados no Google Play.
Área | ID | Descrição | Testes |
---|---|---|---|
Políticas | GP-P1 | O aplicativo atende totalmente aos termos da Política de Conteúdo do Desenvolvedor do Google Play e não oferece conteúdo inadequado, não usa a propriedade intelectual ou a marca de outros e assim por diante. | GP-all |
GP-P2 |
O nível de maturidade do aplicativo está definido corretamente com base nas Diretrizes de Classificação de Conteúdo. |
GP-1 | |
GP-P3 |
O aplicativo oferece suporte adequado aos recursos de gerenciamento de energia no Android 6.0+ (Soneca e App em espera). No caso em que a funcionalidade principal é interrompida pelo gerenciamento de energia, somente aplicativos qualificados podem solicitar uma exceção. Consulte Suporte para outros casos de uso em Soneca e App em espera. |
GP-4 | |
Página de detalhes do aplicativo | GP-D1 |
O gráfico do recurso do aplicativo segue as diretrizes destacadas nesta postagem do blog. Certifique-se de que:
|
GP-1, GP-2 |
GP-D2 | As capturas de tela e vídeos do aplicativo não mostram ou referenciam dispositivos que não sejam Android. | GP-1 | |
GP-D3 | As capturas de tela ou vídeos não representam o conteúdo e experiência do seu aplicativo de forma enganosa. | ||
Suporte do usuário | GP-X1 | Os erros comuns relatados pelo usuário 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 ocorrer um erro em alguns dispositivos apenas, tente resolvê-los se esses dispositivos forem particularmente populares ou novos. | GP-1 |
Definir um ambiente de teste
Para avaliar a qualidade do aplicativo, defina um hardware ou ambiente emulador adequado para teste.
O ambiente de teste ideal deve incluir um pequeno número de dispositivos de hardware reais que representam os principais fatores de forma e as combinações de hardware/software atualmente disponíveis para o consumidor. Não é necessário testar todos os dispositivos disponíveis no mercado — em vez disso, concentre-se em um pequeno número de dispositivos representativos, usando um ou dois modelos por fator de forma.
Se não puder obter dispositivos de hardware reais para testar, defina dispositivos virtuais (AVDs) para representar os fatores de forma mais comuns e combinações de hardware/software.
Para ir além do teste básico, adicione mais dispositivos, mais fatores de forma ou novas combinações de hardware/software em seu ambiente de teste. Pode-se aumentar o número ou a complexidade de testes e os critérios de qualidade.
Procedimentos de teste
Estes procedimentos de testes ajudam a descobrir vários tipos de problemas de qualidade no aplicativo. É possível combinar os testes ou integrar grupos de testes nos seus planos de teste. Veja as seções acima para referências que associam critérios a esses procedimentos de teste.
Tipo | Teste | Descrição |
---|---|---|
Conjunto principal | CR-0 |
Navegue por todas as partes do aplicativo — todas as telas, caixas de diálogo, configurações e fluxos do usuário.
|
CR-1 | Em cada tela do aplicativo, pressione a tecla Início do dispositivo e reinicie o aplicativo da tela Todos os Aplicativos. | |
CR-2 | Em cada tela do aplicativo, alterne para outro aplicativo em execução e volte para o aplicativo em teste usando a opção de troca entre Aplicativos Recentes. | |
CR-3 | Em cada tela do aplicativo (e diálogos), pressione o botão Back. | |
CR-5 | Em cada tela do aplicativo, gire o dispositivo entre a orientação vertical e horizontal pelo menos três vezes. | |
CR-6 | Alterne para outro aplicativo para enviar o aplicativo de teste para o segundo plano. Vá para Settings e verifique se o aplicativo de teste está executando qualquer serviço enquanto está em segundo plano. No Android 4.0 e posterior, acesse a tela Apps e localize o aplicativo na guia "Running”. | |
CR-7 | Pressione o botão liga/desliga para colocar o dispositivo em espera e pressione o botão de energia novamente para ligar a tela. | |
CR-8 | Defina o dispositivo para bloqueado quando o botão liga/desliga for pressionado. Pressione o botão liga/desliga para colocar o dispositivo em espera e pressione-o novamente para ligar a tela e desbloquear o dispositivo. | |
CR-9 | Para dispositivos com teclados virtuais, exiba e oculte o teclado pelo menos uma vez. Para dispositivos com teclados externos, conecte o dispositivo à entrada do teclado. | |
CR-10 | Para dispositivos com uma porta de monitor externa, conecte o monitor externo. | |
CR-11 | Acione e observe na gaveta de notificações todos os tipos de notificações que o aplicativo pode exibir. Expanda as notificações onde aplicável (Android 4.1 e superior) e toque em todas as ações disponíveis. | |
Instalação do cartão SD | SD-1 |
Repita o Conjunto Principal com o aplicativo instalado no cartão SD do dispositivo (se suportado pelo aplicativo). Para mover o aplicativo para o cartão SD, use Settings > App Info > Move to SD Card. |
Aceleração de hardware | HA-1 |
Repita o Conjunto de Aplicações Principal com a aceleração de hardware habilitada.
Para a aceleração de hardware habilitada para forçamento (onde suportado pelo dispositivo), adicione |
Desempenho e estabilidade | SP-1 | Revise o arquivo de manifesto do Android e crie a configuração para garantir que o aplicativo seja compilado de acordo com o SDK mais recente disponível (targetSdk e compileSdk ).
|
Monitoramento de desempenho | PM-1 |
Repita o Conjunto Principal com o perfil StrictMode habilitado conforme descrito abaixo. Preste muita atenção à coleta de lixo e seu impacto na experiência do usuário. |
Bateria | BA-1 |
Repita o Conjunto principal em ciclos de Soneca e App em espera. Preste muita atenção a alarmes, cronômetros, notificações, sincronizações etc. Consulte Testes de Soneca e App em espera para ver os requisitos e as orientações. |
Segurança | SC-1 | Revise todos os dados mantidos no armazenamento externo. |
SC-2 | Analise como os dados carregados a partir do armazenamento externo são gerenciados e processados. | |
SC-3 |
Revise todos os provedores de conteúdo definidos no arquivo de manifesto do Android para obter informações apropriadas protectionLevel .
|
|
SC-4 | Revise todas as permissões exigidas pelo aplicativo para o arquivo de manifesto, o tempo de execução e as configurações do aplicativo (Settings > App Info) no dispositivo. | |
SC-5 | Revise todos os componentes de aplicativo definidos no arquivo de manifesto do Android para o estado de exportação apropriado. A propriedade de exportação precisa ser definida explicitamente para todos os componentes. | |
SC-6 | Revise a Configuração de segurança de rede do aplicativo, garantindo que não haja falhas na verificação de código da configuração. | |
SC-7 | Para cada WebView, navegue até uma página que requer JavaScript. | |
SC-8 | Para cada WebView, tente navegar para sites e conteúdo que estão fora do seu controle. | |
SC-9 | Declare uma configuração de segurança de rede que desative o cancelamento do uso de tráfego de texto e depois execute o aplicativo. | |
SC-10 | Execute o aplicativo e use toda a funcionalidade principal, enquanto observa o registro do dispositivo. Nenhuma informação privada do usuário deve ser registrada. | |
Google Play | GP-1 | Faça login no Google Play Developer Console para analisar seu perfil de desenvolvedor, descrição do aplicativo, capturas de tela, gráfico de recursos, classificação do conteúdo e feedback do usuário. |
GP-2 | Faça o download do gráfico de recursos e capturas de tela e reduza-os para corresponder ao tamanho de tela nos dispositivos e fatores de forma destinados. | |
GP-3 | Analise todos os ativos gráficos, mídia, textos, bibliotecas de código e outro conteúdo no pacote do aplicativo ou de download do arquivo de extensão. | |
GP-4 | Revise Suporte para outros casos de uso em Soneca e App em espera. | |
Pagamentos | GP-4 | Navegue em todas as telas do seu aplicativo e insira todos os fluxos de compra no aplicativo. |
Teste com o StrictMode
Para teste de desempenho, recomendamos habilitar o StrictMode
no aplicativo e usá-lo para verificar operações no thread principal e outros threads que podem afetar o desempenho, os acessos de rede, as leituras/gravações de arquivo e assim por diante.
Você pode definir uma política de monitoramento por thread usando StrictMode.ThreadPolicy.Builder
e ativar todo o monitoramento com suporte no ThreadPolicy
usando detectAll()
.
Não deixe de ativar a notificação visual das violações de política para a ThreadPolicy
usando penaltyFlashScreen()
.