Migrar apps para o Android 12

Este documento oferece 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 os usuários no Android 12.

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 atualizações no app para adaptá-lo às mudanças da plataforma.

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

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

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

Garantir a compatibilidade com o Android 12

É importante testar a funcionalidade do app existente no Android 12 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 o app se comporta. Por isso, é importante fazer testes preliminares e detalhados e fazer as mudanças necessárias no app.

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

Antes de iniciar os testes, familiarize-se com as mudanças de comportamento para todos os apps. Essas mudanças podem afetar seu app, mesmo que você não mude a targetSdkVersion.

Instalar o Android 12

Atualize uma imagem do sistema Android 12 no dispositivo ou faça o download de uma imagem de sistema no Android Emulator.

Analisar as mudanças

Analise as mudanças de comportamento do sistema para identificar as áreas em que o app poderá ser afetado.

Teste

Instale o app no dispositivo ou emulador e faça testes. Fique atento às mudanças de comportamento do sistema e trabalhe em todos os fluxos do app.

Atualizar

Faça somente as mudanças de código necessárias para adaptar o app às mudanças de comportamento ou resolver problemas. Recompile com o mesmo nível de API a que o app é originalmente destinado, sem precisar direcionar para o Android 12.

Publicar

Assine, faça upload e publique seu Android App Bundle ou APK atualizado.

Realizar testes de compatibilidade

Na maioria dos casos, os testes de compatibilidade com o Android 12 são semelhantes aos testes comuns de apps. Esse é um bom momento para analisar as principais diretrizes de qualidade de apps e as práticas recomendadas para testes.

Para testar, instale o app publicado em um dispositivo com o Android 12 e trabalhe em todos os fluxos e funcionalidades, verificando se há problemas. Para ajudar você a concentrar seus testes, analise as mudanças de comportamento para todos os apps introduzidas no Android 12 que podem afetar o funcionamento do app ou causar falhas.

Além disso, analise e teste o uso de interfaces não SDK restritas. É necessário substituir qualquer interface restrita usada pelo app por um SDK público ou equivalente do NDK. Fique atento aos avisos do Logcat que destacam esses acessos e use 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 da forma esperada no Android 12 e sigam as práticas recomendadas de privacidade, desempenho, UX, processamento 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. Isso permite que os usuários testem o app com antecedência e ajuda a garantir uma transição tranquila para os usuários à medida que eles fazem a atualização para o Android 12.

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

Depois de publicar uma versão compatível do app, a próxima etapa é adicionar suporte total ao Android 12 atualizando a targetSdkVersion e aproveitando as novas APIs e recursos do Android 12. Você pode fazer essas atualizações assim que estiver tudo pronto. Não se esqueça dos requisitos do Google Play para definir a nova plataforma como a versão de destino.

À medida que você planeja seu trabalho para oferecer compatibilidade total com o Android 12, analise as mudanças de comportamento que afetam os apps destinados ao Android 12. Essas mudanças esperadas de comportamento podem causar problemas funcionais que você precisa resolver. Em alguns casos, essas mudanças exigem um desenvolvimento significativo. Por isso, é recomendado tomar conhecimento sobre elas e resolver os problemas o mais cedo possível. Para ajudar a identificar as mudanças de comportamento específicas que afetam seu app, use as alternâncias de compatibilidade para testar o app com as mudanças selecionadas ativadas.

As etapas a seguir descrevem como oferecer suporte total ao Android 12.

Instalar o SDK do Android 12

Instale a versão mais recente de visualização do Android Studio para criar com o Android 12. Use um dispositivo ou emulador com o Android 12.
Atualize a targetSdkVersion e outras configurações do build.

Analisar as mudanças de comportamento

Analisar as mudanças de comportamento que se aplicam a apps destinados ao Android 12. Identifique as áreas em que o app pode ser afetado e planeje formas de oferecer compatibilidade.

Verificar novas mudanças de privacidade

Faça as mudanças no código e na arquitetura necessárias para oferecer compatibilidade com as mudanças de privacidade do usuário do Android 12.

Adotar recursos do Android 12

Aproveite as APIs do Android 12 para oferecer novos recursos e funcionalidades no app. Recompile para o Android 12.

Teste

Faça testes em um dispositivo ou emulador Android 12. Concentre-se nas áreas em que as mudanças de comportamento podem afetar o app. Teste funcionalidades que usam as novas APIs. Envie feedback sobre a plataforma e a API. Relate problemas na plataforma, API ou SDK de terceiros.

Atualização final

Quando as APIs do Android 12 forem concluídas, atualize a targetSdkVersion e outras configurações do build novamente, faça outras atualizações e teste o app.

Publicar

Assine, faça upload e publique seu Android App Bundle ou APK atualizado.

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

Para iniciar o teste de compatibilidade total com o Android 12, use a versão de pré-lançamento mais recente do Android Studio para fazer o download do SDK do Android 12 e de outras ferramentas necessárias. Em seguida, atualize a targetSdkVersion e a compileSdkVersion do app e recompile o app. Consulte o guia de configuração do SDK para mais detalhes.

Testar o app para Android 12

Depois de compilar o app e instalá-lo em um dispositivo com o Android 12, comece a testar para garantir que ele funcione corretamente quando destinado ao Android 12. 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 12. Também é um bom momento para verificar se o app está de acordo com as principais diretrizes de qualidade de apps e as práticas recomendadas para testes.

Revise e teste os usos de interfaces não SDK restritas que possam ser aplicadas. 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 da forma esperada no Android 12 e sigam as práticas recomendadas de privacidade, desempenho, UX, processamento 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 12 inclui alternâncias de compatibilidade que facilitam o teste do app com mudanças de comportamento esperadas. Para um app depurável, as alternâncias permitem que você:

  • Teste as mudanças esperadas sem realmente mudar a 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.
  • 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 ID 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 ativo para a compatibilidade com o Android 11, as alternâncias podem ajudar. Para ver mais informações, consulte Mudanças no framework de compatibilidade (Android 12).