Atender ao requisito de segmentação de nível de API do Google Play

A partir de 1º agosto de 2018, o Google Play exigirá que os apps novos segmentem ao menos o Android 8.0 (nível 26 da API). A partir de 1º novembro de 2018, as atualizações de apps precisarão segmentar o Android 8.0.

Cada nova versão do Android apresenta alterações que trazem melhorias significativas de segurança e desempenho e aprimoram a experiência do usuário no Android em geral. Algumas dessas alterações se aplicam somente a apps que declaram o suporte explicitamente por meio do atributo de manifesto targetSdkVersion, também conhecido como o nível desejado da API.

Configurar o app para segmentar um nível de API recente garante que os usuários se beneficiem dessas melhorias. Ao mesmo tempo, o app poderá ser executado em versões mais antigas do Android. Segmentar um nível de API recente também permite que o app aproveite os últimos recursos da plataforma para conquistar seus usuários.

Este documento destaca pontos importantes que você precisa saber ao atualizar o nível desejado da API para atender ao requisito do Google Play. Para continuar, clique no nível desejado da API do app:

Observação: se o arquivo do Gradle tiver entradas de manifesto, será possível confirmar ou alterar o valor atual de targetSdkVersion no arquivo Gradle do app, conforme descrito em Configure sua compilação. Como alternativa, é possível usar o atributo android:targetSdkVersion no arquivo de manifesto, conforme descrito na documentação do elemento de manifesto <uses-sdk>.

Anterior ao Android 5.0 (nível 21 da API)

Consulte na página Alterações de comportamento cada uma das seguintes versões, a fim de garantir que o app registrou as alterações apresentadas nelas:

Continue seguindo as instruções na próxima seção.

Anterior ao Android 6.0 (nível 23 da API)

As seguintes considerações se aplicam a apps que segmentam o Android 6.0 e versões superiores da plataforma:

  • Permissões de tempo de execução
    • Permissões perigosas são concedidas somente em tempo de execução. Os fluxos de interface do usuário precisam fornecer recursos para conceder essas permissões.
    • Sempre que possível, o app precisa estar preparado para lidar com a rejeição de solicitações de permissão. Por exemplo, se um usuário recusar uma solicitação para acessar o GPS do dispositivo, o app precisa ter outra maneira de prosseguir.

Para obter uma lista completa das alterações introduzidas no Android 6.0 (nível 23 da API), consulte a página Alterações de comportamento dessa versão da plataforma.

Continue seguindo as instruções na próxima seção.

Anterior ao Android 7.0 (nível 24 da API)

As seguintes considerações se aplicam a apps que segmentam o Android 7.0 e versões superiores da plataforma:

  • Soneca e App em espera

    É necessário projetar os comportamentos descritos em Otimização para Soneca e App em espera, que englobam alterações adicionais introduzidas em várias versões de plataforma.

    Quando um dispositivo está nos modos Soneca e App em espera, o sistema se comporta da seguinte maneira:

    • Restringe o acesso à rede.
    • Adia alarmes, sincronizações e trabalhos.
    • Restringe as verificações de GPS e Wi-Fi.
    • Restringe mensagens do Firebase Cloud Messaging de prioridade normal.
  • Alterações de permissão
    • O sistema restringe o acesso aos diretórios privados do app.
    • A exposição de um URI file:// fora do app aciona uma FileUriExposedException. Os desenvolvedores que precisam compartilhar arquivos fora do app precisam implementar o FileProvider.
  • O sistema proíbe a vinculação a bibliotecas não NDK.

Para obter uma lista completa das alterações introduzidas no Android 7.0 (nível 24 da API), consulte a página Alterações de comportamento dessa versão da plataforma.

Continue seguindo as instruções na próxima seção.

Anterior ao Android 8.0 (nível 26 da API)

As seguintes considerações se aplicam a apps que segmentam o Android 8.0 e versões superiores da plataforma:

Para obter uma lista completa das alterações introduzidas no Android 8.0 (nível 26 da API), consulte a página Alterações de comportamento dessa versão da plataforma.

Continue seguindo as instruções na próxima seção.

Modernizar os aplicativos

Ao atualizar o nível desejado da API para os apps, considere adotar recursos recentes da plataforma para modernizá-los e conquistar os usuários.

Verificar e atualizar SDKs e bibliotecas

Verifique se as dependências de terceiros do SDK oferecem suporte à API 26: alguns provedores de SDK as publicam no manifesto; outros exigirão uma investigação maior. Se você usa um SDK incompatível com a API 26, defina como prioridade o trabalho com o provedor do SDK para resolver o problema.

Além disso, observe que o targetSdkVersion do app ou jogo pode restringir o acesso a bibliotecas particulares da plataforma Android. Consulte Aplicativos NDK vinculados a bibliotecas da plataforma para ver os detalhes.

Também é necessário verificar quaisquer restrições que possam existir na versão da biblioteca de suporte Android que você está usando. Como sempre, é preciso garantir a compatibilidade entre a versão principal da biblioteca de suporte Android e o compileSdkVersion do app.

É recomendável escolher um targetSdkVersion menor ou igual à versão principal da biblioteca de suporte. Sugerimos a atualização para uma biblioteca de suporte compatível mais recente, a fim de aproveitar os recursos de compatibilidade e correções de bugs mais novos.

Testar seu app

Após atualizar o nível e os recursos da API do app, conforme apropriado, teste alguns casos de uso principais. As sugestões a seguir não são completas, mas visam orientar o processo de teste. Sugerimos testar:

  • Se o app compila para a API 26 sem erros nem avisos.
  • Se o app tem uma estratégia para os casos em que o usuário rejeita solicitações de permissão e solicita ao usuário autorizações. Para fazer isso:
    • Vá para a tela Informações do app e desative cada permissão.
    • Abra o app e garanta que não haja falhas.
    • Execute os principais testes de caso de uso e garanta que as permissões necessárias sejam solicitadas novamente.

  • Se lida com a Soneca com os resultados esperados e sem erros.
    • Usando o adb, coloque seu dispositivo de teste em Soneca enquanto o app estiver em execução.
      • Teste todos os casos de uso que acionam mensagens do Firebase Cloud Messaging.
      • Teste todos os casos de uso que usam alarmes ou tarefas.
      • Elimine quaisquer dependências nos serviços de segundo plano.
    • Coloque o app no modo App em espera
      • Teste todos os casos de uso que acionam mensagens do Firebase Cloud Messaging.
      • Teste todos os casos de uso que usam alarmes.

  • Se lida com novas fotos / vídeos sendo feitos.
  • Se lida com o compartilhamento de arquivos com outros apps.
    • Teste qualquer caso de uso que compartilhe dados de arquivos com qualquer outro app (até mesmo outro app do mesmo desenvolvedor).
    • Verifique se o conteúdo é visível no outro app e não aciona falhas.

Mais informações

Ative os e-mails no Google Play Console para que possamos enviar atualizações e comunicados importantes do Android e do Google Play, incluindo nossa newsletter mensal de parceiros.