Guia de testes do Android 6.0

O Android 6.0 oferece uma oportunidade de garantir que seus apps funcionem com a próxima versão da plataforma. Essa versão inclui várias APIs e mudanças de comportamento que podem afetar seu app, conforme descrito em Visão geral da API e em Mudanças de comportamento. Ao testar o app com esta versão, há algumas mudanças específicas do sistema em que você precisa se concentrar para garantir que os usuários tenham uma boa experiência.

Este guia descreve quais recursos do Android 6.0 e como testar com seu app. Priorize o teste desses recursos específicos, devido ao grande impacto potencial no comportamento do app:

Teste de permissões

O novo modelo de Permissões muda a maneira como as permissões são alocadas ao seu app pelo usuário. Em vez de conceder todas as permissões durante o procedimento de instalação, o app precisa pedir ao usuário permissões individuais no momento da execução. Para os usuários, esse comportamento oferece um controle mais granular sobre as atividades de cada app, além de um melhor contexto para entender por que o app está solicitando uma permissão específica. Os usuários podem conceder ou revogar as permissões concedidas a um app individualmente a qualquer momento. É provável que o recurso da versão tenha um impacto no comportamento do app e possa impedir que alguns dos recursos do app funcionem ou podem funcionar em um estado degradado.

Essa mudança afeta todos os apps em execução na nova plataforma, mesmo aqueles que não são destinados à nova versão da plataforma. A plataforma oferece um comportamento de compatibilidade limitado para apps legados, mas você precisa começar a planejar a migração do app para o novo modelo de permissões agora, com o objetivo de publicar uma versão atualizada do app no lançamento oficial da plataforma.

Dicas de teste

Use as dicas de teste a seguir para planejar e executar testes do app com o novo comportamento de permissões.

  • Identifique as permissões atuais do aplicativo e os caminhos de código relacionados.
  • Teste o fluxo de usuários entre serviços e dados protegidos por permissão.
  • Teste várias combinações de permissões negadas/concedidas.
  • Use a ferramenta adb para gerenciar permissões na linha de comando:
    • Listar permissões e status por grupo:
      adb shell pm list permissions -d -g
    • Conceda ou revogue uma ou mais permissões usando a seguinte sintaxe:
      adb shell pm [grant|revoke] <permission.name> ...
  • Analise o aplicativo para descobrir os serviços que usam permissões.

Estratégia de teste

A mudança de permissões afeta a estrutura e o design do app, bem como a experiência do usuário e os fluxos fornecidos a eles. Avalie o uso atual das permissões do app e comece a planejar os novos fluxos que você quer oferecer. O lançamento oficial da plataforma oferece comportamento de compatibilidade, mas você precisa se planejar para atualizar seu app e não confiar nesses comportamentos.

Identifique as permissões que o app realmente precisa e usa e, em seguida, encontre os vários caminhos de código que usam os serviços protegidos por permissões. É possível fazer isso combinando testes na nova plataforma e análise de código. Nos testes, você precisa se concentrar em ativar as permissões de execução mudando a targetSdkVersion do app para o nível 23 da API.

Teste com várias combinações de permissões revogadas e adicionadas para destacar os fluxos de usuários que dependem de permissões. Quando uma dependência não for óbvia ou lógica, considere refatorar ou compartimentar esse fluxo para eliminar a dependência ou deixar claro por que a permissão é necessária.

Para saber mais sobre o comportamento das permissões de execução, testes e práticas recomendadas, consulte o desenvolvedor Trabalhar com permissões do sistema.

Teste de soneca e App em espera

Os recursos de economia de energia dos recursos Soneca e App em espera limitam a quantidade de processamento em segundo plano que o app pode executar quando um dispositivo está no estado ocioso ou enquanto não está em foco. As restrições que o sistema pode impor aos apps incluem acesso limitado ou negado à rede, tarefas em segundo plano suspensas, notificações suspensas, solicitações de ativação ignoradas e alarmes. Para garantir que seu app se comporte corretamente com essas otimizações de economia de energia, teste-o simulando esses estados de baixa energia.

Testar o app com o Soneca

Para testar a Soneca com o aplicativo:

  1. Configure um dispositivo de hardware ou dispositivo virtual com uma imagem do sistema Android 7.0 (API de nível 24).
  2. Conecte o dispositivo à máquina de desenvolvimento e instale o aplicativo.
  3. Execute o aplicativo e deixe-o ativo.
  4. Simule o dispositivo no modo Soneca executando os seguintes comandos:
    $ adb shell dumpsys battery unplug
    $ adb shell dumpsys deviceidle step
    $ adb shell dumpsys deviceidle -h
    
  5. Observe o comportamento do aplicativo quando o dispositivo for reativado. Certifique-se de que ele se recupera normalmente quando o dispositivo sai do modo Soneca.

Testar aplicativos com App em espera

Para testar o modo App em espera:

  1. Configure um dispositivo de hardware ou dispositivo virtual com uma imagem do sistema Android 7.0 (API de nível 24).
  2. Conecte o dispositivo à máquina de desenvolvimento e instale o aplicativo.
  3. Execute o aplicativo e deixe-o ativo.
  4. Simule o app entrando no modo de espera executando os seguintes comandos:
    $ adb shell am broadcast -a android.os.action.DISCHARGING
    $ adb shell am set-idle <packageName> true
    
  5. Simule o despertar do app usando o seguinte comando:
    $ adb shell am set-idle <packageName> false
  6. Observe o comportamento do aplicativo quando ele for despertado. Certifique-se de que ele se recupera normalmente do modo de espera. É importante verificar se as notificações e os jobs em segundo plano do app continuam funcionando conforme o esperado.

Backup automático para aplicativos e identificadores específicos do dispositivo

Se o app estiver mantendo algum identificador específico do dispositivo, como o ID de registro do Google Cloud Messaging, no armazenamento interno, siga as práticas recomendadas para excluir o local de armazenamento do backup automático, conforme descrito em Fazer backup dos dados do usuário com o Backup automático.