O Android Studio 3.5 Canary adiciona "Aplicar alterações", uma substituição da Execução instantânea

O Android Studio 3.5 (atualmente nos canais Canary e Dev) agora apresenta uma nova maneira de enviar alterações de código ao seu aplicativo e ver seus efeitos em tempo real sem precisar reiniciar o aplicativo. Apelidado simplesmente de "Aplicar alterações", é o sucessor do recurso "Instant Run" nas versões anteriores do Android Studio.

O Blog para desenvolvedores Android do Google diz o seguinte sobre Aplicar alterações:

Aplicar alterações permite enviar alterações de código e recursos ao seu aplicativo em execução sem reiniciar o aplicativo - e, em alguns casos, sem reiniciar a atividade atual. Aplicar alterações substitui a execução instantânea por uma abordagem completamente nova para otimização de compilação. Em vez de reescrever o código de código do APK durante o tempo de compilação, o Apply Changes redefine as classes em tempo real, aproveitando a instrumentação de tempo de execução suportada no Android 8.0 (API nível 26) ou superior.

Além disso, o Android Studio agora solicita que você decida se deseja reiniciar seu aplicativo ou atividade quando detectar que as alterações não são compatíveis com Aplicar alterações. Esse controle extra deve fornecer uma experiência mais consistente e previsível em comparação com o comportamento do Instant Run.

A postagem do blog continua listando algumas limitações para a nova funcionalidade. Por exemplo, o dispositivo em que você está testando seu aplicativo deve estar executando o Android 8.0 Oreo (API Nível 26) e há certas alterações no código que ainda exigirão a reinicialização do aplicativo. Assim como em "Execução instantânea", "Aplicar alterações" forçará o aplicativo a reiniciar se você:

  • Adicionando ou excluindo uma classe, método ou campo
  • Alterando o manifesto
  • Alterando assinaturas de método
  • Alterando modificadores de métodos ou classes
  • Renomeando classes
  • Alterando a herança de classe
  • Adicionando ou removendo um recurso

Em "Problemas conhecidos", a postagem do blog afirma que, como o Google priorizou inicialmente a estabilidade sobre o desempenho neste novo recurso, "Aplicar alterações" às vezes é executado mais lentamente do que o recurso anterior "Instant Run". Além disso, as imagens do emulador x86_x64 não são suportadas, e para fins de depuração, apenas o Android Pie (API Nível 28) é suportado. Você pode ver a lista completa de limitações e problemas conhecidos no link de origem abaixo.

Para uma descrição mais detalhada da diferença entre "Aplicar alterações" e "Execução instantânea", um funcionário do Google na equipe do Android Studio tinha a dizer no Reddit:

Faz algo muito, muito diferente. O Instant Run teve um impacto muito específico na construção, instrumentando cada uma de suas classes no momento da compilação para prepará-las para serem substituídas durante o tempo de execução por uma nova versão da classe. Ele também dividiu seu APK em vários APKs para reenviar seu aplicativo de forma mais incremental.

Aplicar alterações não é nada parecido. Seu APK é praticamente o mesmo, se você usa Aplicar alterações ou não. Em vez disso, conta com novos recursos de instrumentação de tempo de execução da ART VM para recarregar dinamicamente classes e substituí-las enquanto o aplicativo está em execução. É por isso que requer versões muito mais recentes do Android.

Espera-se que a opção "Aplicar alterações" substitua a "Execução instantânea" nos canais beta e estável, à medida que o Google aprimora seu desempenho e estabilidade.


Fonte: Blog dos desenvolvedores do Android