Android Studio 3.5 Canary aggiunge "Applica modifiche", una sostituzione di Instant Run

Android Studio 3.5 introduce Applica modifiche, il successore della funzionalità Instant Run del popolare strumento di sviluppo di app.

Android Studio 3.5 (attualmente nei canali Canary e Dev) offre ora un nuovo modo per inviare modifiche al codice alla tua app e visualizzarne gli effetti al volo senza dover riavviare l'app. Soprannominato semplicemente "Applica modifiche", è il successore della funzione "Esecuzione istantanea" nelle versioni precedenti di Studio Android.

Quello di Google Blog degli sviluppatori Android dice quanto segue su Applica modifiche:

Applica modifiche ti consente di inviare modifiche al codice e alle risorse all'app in esecuzione senza riavviare l'app e, in alcuni casi, senza riavviare l'attività corrente. Applica modifiche sostituisce Instant Run con un approccio completamente nuovo per l'ottimizzazione della build. Invece di riscrivere il codice byte dell'APK durante la fase di compilazione, Applica modifiche ridefinisce le classi al volo sfruttando la strumentazione di runtime supportata in Android 8.0 (livello API 26) o versioni successive.

Inoltre, Android Studio ora ti chiede di decidere se riavviare l'app o l'attività quando rileva che le modifiche non sono compatibili con Applica modifiche. Questo controllo aggiuntivo dovrebbe offrirti un'esperienza più coerente e prevedibile rispetto al comportamento di Instant Run.

Il post sul blog prosegue elencando alcune limitazioni alla nuova funzionalità. Ad esempio, il dispositivo su cui stai testando la tua app deve essere almeno in esecuzione Android 8.0 Oreo (livello API 26) e ci sono alcune modifiche al codice che richiederanno comunque il riavvio dell'app. Come con "Esecuzione istantanea", "Applica modifiche" forzerà il riavvio dell'app se:

  • Aggiunta o eliminazione di una classe, metodo o campo
  • Modifica del manifesto
  • Modifica delle firme del metodo
  • Modifica dei modificatori di metodi o classi
  • Rinominare le classi
  • Modifica dell'ereditarietà della classe
  • Aggiunta o rimozione di una risorsa

Nella sezione "Problemi noti", il post del blog afferma che, poiché Google inizialmente ha dato priorità alla stabilità rispetto alle prestazioni in questa nuova funzionalità, a volte verrà eseguito "Applica modifiche" più lentamente della sua funzione antenata "Instant Run". Inoltre, le immagini dell'emulatore x86_x64 non sono supportate e, a fini di debug, è disponibile solo Android Pie (API livello 28). supportato. È possibile visualizzare l'elenco completo delle limitazioni e dei problemi noti nel collegamento alla fonte riportato di seguito.

Per una descrizione più dettagliata della differenza tra "Applica modifiche" ed "Esecuzione istantanea", un dipendente Google del team di Android Studio ha detto questo su Reddit:

Fa qualcosa di molto, molto diverso. Instant Run ha avuto un impatto molto specifico sulla compilazione, dotando ciascuna delle tue classi in fase di compilazione per prepararle alla sostituzione durante il runtime con una nuova versione della classe. Inoltre divide il tuo APK in più APK per ricaricare la tua app in modo più incrementale.

Applica modifiche non fa nulla di simile. Il tuo APK è praticamente lo stesso indipendentemente dal fatto che utilizzi Applica modifiche o meno. Si basa invece sulle nuove funzionalità di strumentazione runtime della VM ART per ricaricare dinamicamente le classi e sostituirle mentre l'app è in esecuzione. Questo è il motivo per cui richiede versioni molto più recenti di Android.

Si prevede che "Applica modifiche" sostituirà eventualmente "Esecuzione istantanea" nei canali Beta e Stabile man mano che Google apporta miglioramenti alle sue prestazioni e stabilità.


Fonte: blog degli sviluppatori Android