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

O APK enviado por você precisa atender aos requisitos de nível de API do Google Play. A partir de agosto de 2019, o Google Play exigirá que os novos apps segmentem ao menos o Android 9.0 (nível 28 da API). A partir de 1º novembro de 2019, as atualizações de apps precisarão segmentar o Android 9.0. Até essas datas, os novos apps e as atualizações de apps precisarão segmentar ao menos o Android 8.0 (nível 26 da API).

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 gradle contiver entradas de manifesto, será possível confirmar ou alterar o valor atual de targetSdkVersion no arquivo gradle do app, conforme descrito em Configurar a versã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 precisará ter outra maneira de prosseguir.

Para ter 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 ter 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 ter 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 9.0 (nível 28 da API)

Para ter uma lista completa de alterações introduzidas no Android 9.0 (nível 28 da API), consulte as mudanças de comportamento.

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 privadas da plataforma Android. Consulte Vinculação de apps NDK às bibliotecas de plataforma para saber mais.

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.
    • Realize 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 funcionamento.
      • 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 de parceiros.