Migrar apps para o Android 11

A cada versão do Android, introduzimos novos recursos e mudanças de comportamento com o objetivo de tornar o Android mais útil, mais seguro e melhorar o desempenho. Em muitos casos, seu app vai funcionar exatamente conforme o esperado, mas em outros casos pode ser preciso fazer modificações no app para adaptá-lo às mudanças na plataforma.

Como os usuários poderão começar a receber a nova plataforma assim que o código-fonte for lançado para o AOSP (Android Open Source Project), é importante que os apps estejam prontos, funcionando como esperado pelos usuários e usando os novos recursos e APIs para aproveitar a nova plataforma ao máximo.

Este documento apresenta uma visão geral das fases de desenvolvimento e teste que ajudam você a acompanhar o cronograma de lançamento da plataforma e garantir uma boa experiência para seus usuários no Android 11.

Uma migração típica tem duas fases, que podem ser simultâneas:

  • Garantir a compatibilidade com o app (até a versão final do Android 11)
  • Adaptar o app aos novos recursos e APIs da plataforma (assim que possível após a versão final)

Esta página descreve as etapas gerais para cada uma dessas fases. Assim que puder começar, leia Instalar o Android 11.

Garantir a compatibilidade com o Android 11

É importante testar a funcionalidade do seu app com o Android 11 para garantir uma boa experiência aos usuários que atualizarem para a versão mais recente do Android. Algumas mudanças na plataforma podem afetar o comportamento do app. Por isso, é importante fazer testes preliminares e detalhados e fazer as modificações necessárias no app.

Normalmente, é possível modificar o app e publicar uma atualização sem precisar mudar o targetSdkVersion. Da mesma forma, não é necessário usar novas APIs ou mudar o compileSdkVersion, embora isso possa depender da forma como seu app foi criado e da funcionalidade da plataforma que ele está usando. As seções a seguir descrevem as etapas.

Antes de começar, familiarize-se com as mudanças de comportamento que podem afetar seu app, mesmo se você não modificar o targetSdkVersion.

Realizar testes de compatibilidade

Na maioria dos casos, testar a compatibilidade com o Android 11 é como testar a preparação para o lançamento do app. Esse é um bom momento para analisar as principais diretrizes de qualidade do app e as práticas recomendadas para testes.

Basta instalar o app publicado em um dispositivo com o Android 11 e trabalhar com todos os fluxos e funcionalidades buscando encontrar problemas. Para ajudar você a concentrar seus testes, analise as mudanças de comportamento introduzidas no Android 11 que possam afetar a função do seu app ou causar uma falha nele. Não deixe também de revisar as principais mudanças de privacidade e testar as correções que você implementar para acomodá-las.

Além disso, revise e teste os usos de interfaces restritas não SDK e mude para os equivalentes públicos do SDK ou do NDK. Fique de olho nos avisos do Logcat que destacam esses acessos e usam o método StrictMode detectNonSdkApiUsage() para capturá-los de maneira programática.

Por fim, teste as bibliotecas e os SDKs no app para garantir que eles funcionem conforme o esperado no Android 11 e siga as práticas recomendadas de privacidade, desempenho, UX, tratamento de dados e permissões. Se você encontrar um problema, tente atualizar para a versão mais recente do SDK ou entre em contato com o desenvolvedor do SDK para receber ajuda.

Quando terminar o teste e fizer as atualizações, recomendamos publicar o app compatível imediatamente. Assim, os usuários poderão testar o app antecipadamente e terão uma transição tranquila ao fazer a atualização para o Android 11.

Atualizar versão de destino do app e criar com novas APIs

Depois de publicar a versão compatível do app, conforme descrito anteriormente, a próxima etapa é adicionar total compatibilidade com o Android 11 atualizando o targetSdkVersion e aproveitando as novas APIs e recursos do Android 11. Você pode fazer isso assim que estiver tudo pronto, lembrando-se do requisito do Google Play para adaptar o app à nova plataforma.

Ao começar a trabalhar na compatibilidade total com o Android 11, considere analisar as mudanças de comportamento que se aplicam a apps destinados ao Android 11. Essas mudanças de comportamento podem causar problemas funcionais que talvez você precise resolver. Algumas delas podem exigir bastante trabalho de desenvolvimento, então é melhor se informar com antecedência. Para avaliar o impacto, você também pode usar os controles de compatibilidade para testar seu app com as mudanças selecionadas ativadas.

Confira abaixo as etapas para oferecer compatibilidade total com o Android 11.

Obter o SDK, alterar a versão de destino, criar com novas APIs

Para começar a trabalhar na compatibilidade total com o Android 11, faça o download do SDK do Android 11 (e de outras ferramentas necessárias) no Android Studio. Em seguida, altere targetSdkVersion e compileSdkVersion para "30" e recompile o app. Consulte o guia de configuração para detalhes.

Testar o app para Android 11

Depois de compilar o app e instalá-lo em um dispositivo com Android 11, faça testes para conferir se ele funciona corretamente depois da adaptação ao Android 11. Algumas mudanças de comportamento se aplicam somente quando o app é criado para a nova plataforma. Portanto, convém revisar essas mudanças antes de começar.

Assim como nos testes básicos de compatibilidade, trabalhe em todos os fluxos e funcionalidades para verificar se há problemas. Concentre seus testes nas mudanças de comportamento para apps destinados ao Android 11. Não deixe de analisar as mudanças de privacidade e teste as correções que você implementar após essas mudanças. Também é um bom momento para verificar se o app segue as principais diretrizes de qualidade de apps e as práticas recomendadas para testes.

Revise e teste a eficiência das interfaces restritas não SDK pertinentes. Preste atenção nos avisos do Logcat que destacam esses acessos e use o método StrictMode detectNonSdkApiUsage() para capturá-los de maneira programática.

Por fim, teste as bibliotecas e os SDKs no app para garantir que eles funcionem conforme o esperado no Android 11 e siga as práticas recomendadas de privacidade, desempenho, UX, tratamento de dados e permissões. Se você encontrar um problema, tente atualizar para a versão mais recente do SDK ou entre em contato com o desenvolvedor do SDK para receber ajuda.

Testar usando botões de compatibilidade de app

O Android 11 introduz um novo recurso para desenvolvedores que facilita o teste do app com mudanças de comportamento. Com os botões, você pode fazer o seguinte em um app depurável:

  • Testar as mudanças sem realmente mudar o targetSdkVersion do app. Você pode usar as alternâncias para forçar a ativação de mudanças específicas de comportamento esperado e avaliar o impacto no app existente.
  • Concentre seus testes somente em mudanças específicas. Em vez de ter que resolver todas as mudanças esperadas de uma só vez, as alternâncias permitem as desativar, exceto as que você quer testar.
  • Gerenciar os botões usando o adb. Você pode usar comandos adb para ativar e desativar as mudanças alternáveis no seu ambiente de teste automatizado.
  • Fazer depurações usando IDs de mudança padrão. Cada uma das mudanças alternáveis tem um ID e um nome exclusivo que podem ser usados para depurar rapidamente a causa raiz na saída do registro.

Os botões ajudam você durante as mudanças na versão de destino do app ou no desenvolvimento da compatibilidade com o Android 11. Consulte a documentação correspondente para mais detalhes.