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

O APK enviado por upload precisa atender aos requisitos de nível de API do Google Play. Os novos apps precisam segmentar o Android 10 (nível 29 da API) ou versões posteriores, e as atualizações de apps precisam segmentar o Android 9 (nível 28 da API) ou posterior.

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. Além disso, a partir do Android 10 (nível 29 da API), os usuários verão um aviso ao iniciarem um app pela primeira vez se o app segmentar o Android 5.1 (nível 22 da API) ou versões anteriores.

Este documento destaca pontos importantes que você precisa saber ao atualizar o nível desejado da API para atender ao requisito do Google Play.

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

Migrar do Android 9 (nível 28 da API) para o Android 10 (nível 29 da API)

Para ver uma lista completa das mudanças introduzidas no Android 10 (nível 29 da API), consulte a página Mudanças de comportamento dessa versão da plataforma.

Migrar de versões anteriores ao Android 9 (nível 28 da API)

Selecione a versão do Android que será migrada:

Migrar para o Android 5 (nível 21 da API)

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

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

Migrar para o Android 6 (nível 23 da API)

As seguintes considerações se aplicam a apps que segmentam o Android 6.0 e versões mais recentes 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 ver 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.

Migrar para o Android 7 (nível 24 da API)

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

  • "Soneca" e "App em espera"

    Projete os comportamentos descritos no artigo sobre como otimizar para o "Soneca" e "App em espera", que engloba outras alterações 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. Caso você precise compartilhar arquivos fora do app, implemente o FileProvider
  • O sistema proíbe a vinculação a bibliotecas não NDK.

Para ver 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.

Migrar para o Android 8 (nível 26 da API)

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

  • Canais de notificação
  • Privacidade
    • O ANDROID_ID é delimitado por chave de assinatura do app.
  • Para ver 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.

    Migrar do Android 8 (nível 26 da API) para o Android 10 (nível 28 da API)

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

    Atualize para o nível 29 da API seguindo as instruções da seção anterior.

    Modernizar os apps

    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.

    • Use o CameraX, que está em Beta, para aproveitar ao máximo o uso da câmera.
    • Use os componentes do Jetpack para seguir as práticas recomendadas, eliminar a escrita de código de texto clichê e simplificar tarefas complexas para que você possa se concentrar no código de seu interesse.
    • Use o Kotlin para escrever apps melhores, mais rapidamente e com menos código.
    • Verifique se você está seguindo os requisitos e as práticas recomendadas de privacidade.
    • Adicione compatibilidade com tema escuro aos seus apps.
    • Adicione compatibilidade com a navegação por gestos aos seus apps.
    • Migre o app do Google Cloud Messaging (GCM) para a versão mais recente do Firebase Cloud Messaging.
    • Aproveite o gerenciamento avançado de janelas.

    Verificar e atualizar SDKs e bibliotecas

    Verifique se as dependências de terceiros do SDK oferecem suporte à API 29: 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 29, 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 do Android que você está usando. Como sempre, é preciso garantir a compatibilidade entre a versão principal da Biblioteca de Suporte do 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 nos seguintes casos:

    • Se o app compila para a API 29 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 todas as 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é 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.