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 funcionará exatamente como o esperado, mas em outros casos pode ser necessário fazer modificações no app para se adaptar às mudanças de 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 Platform), é importante que os apps estejam prontos, funcionando como esperado pelos usuários e usufruindo dos novos recursos e APIs para aproveitar ao máximo a nova plataforma.

Este artigo traz uma visão geral das fases típicas de desenvolvimento e teste que podem ajudar você a se preparar para acompanhar o cronograma de lançamento da plataforma e garantir uma ótima 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)
  • Segmentar os 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. Quando estiver pronto para começar, leia Instalar o Android 11.

Garantir a compatibilidade com o Android 11

É importante testar a funcionalidade do seu app já existente com o Android 11 para garantir uma ótima experiência para os usuários que atualizarem para a versão mais recente do Android. Algumas mudanças na plataforma podem afetar a forma como seu app se comporta. 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. Veja abaixo 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 é semelhante ao tipo de teste que você realizaria ao se preparar para lançar o 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. Em particular, revise as principais mudanças de privacidade e teste 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 totalmente 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, manipulação de dados e permissões. Se 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. Isso permite que os usuários testem o app antecipadamente e ajudem você a oferecer uma transição tranquila para os usuários 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 acima, 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 pronto, lembrando-se do requisito do Google Play para definir a nova plataforma como destino.

À medida que você planejar seu trabalho para oferecer compatibilidade total com o Android 11, um bom ponto de partida é analisar as mudanças de comportamento que se aplicam a apps destinados ao Android 11. Essas mudanças esperadas de comportamento podem causar problemas funcionais que talvez você precise resolver. Em alguns casos, elas podem exigir um desenvolvimento significativo, por isso é melhor tomar conhecimento delas com antecedência. Para ajudar a avaliar os impactos, você também pode usar os controles de compatibilidade para testar seu app atual com as mudanças selecionadas ativadas.

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

Acessar o SDK, alterar o destino, criar com novas APIs

Para começar a usar a compatibilidade total com o Android 11, primeiro 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 faça a recompilação do 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, comece a testar para garantir que ele funcione corretamente quando destinado 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. Em particular, revise as mudanças de privacidade e teste as correções que você implementar para acomodar as mudanças. Também é um bom momento para verificar seu app de acordo com as principais diretrizes de qualidade de apps e as práticas recomendadas para testes.

Revise e teste os usos de interfaces restritas não SDK que possam ser aplicadas. Atenção aos avisos do Logcat que destacam esses acessos e usam o método StrictMode detectNonSdkApiUsage() para capturá-los de maneira programática.

Por fim, teste totalmente 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, manipulação 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 alternâncias de compatibilidade de apps

O Android 11 introduz um novo recurso para desenvolvedores que facilita o teste do app com mudanças esperadas de comportamento. Para um app depurável, as alternâncias permitem que você:

  • Teste as mudanças esperadas 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 desativá-las, exceto as que você quer testar.
  • Gerencie alternâncias por meio do adb. Você pode usar comandos adb para ativar e desativar as mudanças alternáveis no seu ambiente de teste automatizado.
  • Depure mais rapidamente usando códigos de mudança padrão. Cada uma delas tem um código e um nome exclusivos que podem ser usados para depurar rapidamente a causa raiz na saída do registro.

À medida que você se prepara para mudar a versão de destino do seu app ou enquanto está em desenvolvimento para a compatibilidade com o Android 11, as alternâncias podem ajudar. Preencha os detalhes neste link.