2015-11-24 11 views
25

Questa è una funzionalità molto nuova, poiché Android Studio 2.0 è disponibile solo nel canale di rilascio di Canary, tuttavia speravo che qualcuno potesse spiegare ulteriormente come funziona la funzione di esecuzione istantanea.Android Studio 2.0: Perché Instant Run non funziona quando si modificano le risorse del layout xml?

Se modifico il codice all'interno delle classi Java (Attività, Frammenti, ecc.), Instant Run funziona senza intoppi. Mantiene l'istanza dell'applicazione in esecuzione e scambia il codice dietro le quinte, migliorando notevolmente il tempo necessario per il test (che è fantastico, btw).

Tuttavia, se io modifico layout esistenti risorse XML, allora deve ricompilare una build e distribuirlo. Quindi le mie domande sono:

  1. Perché è necessario ricostruire quando si modificano le risorse xml del layout esistenti?
  2. Ci sono piani per il futuro per consentire l'utilizzo di risorse XML hot-swap in modo che non debba essere ricostruito ogni volta che voglio vedere un cambiamento nel layout? (Anche se, so che posso solo visualizzare le modifiche nella vista Progettazione).

La domanda n. 1 è più importante per me al momento, perché mi piacerebbe capire come funziona. Inoltre, congratulazioni al team di Android Studio. L'IDE ha fatto molta strada. I miglioramenti delle prestazioni stanno cambiando la vita.

+2

"Perché è necessario ricostruire quando si modificano le risorse xml del layout esistenti?" - probabilmente cambi di classe 'R'. Dalle loro presentazioni, sembrava che non tutti i cambiamenti avrebbero necessariamente fatto una ricostruzione completa. Il vertice per sviluppatori Android è in corso ora; vorrai guardare i video delle sessioni di oggi non appena saranno disponibili su YouTube, dove viene discusso un numero di questi tipi di dettagli, almeno a un livello limitato. "Ci sono piani" di domande e le "congratulazioni" sono meglio indirizzate a Google; Stack Overflow non è Google. – CommonsWare

+0

Questa è solo una supposizione, ma potrebbe essere necessario fare qualcosa con come funzionano i file delle risorse? Fondamentalmente, il file XML viene tradotto in un file Java in fase di compilazione. Ecco perché la vecchia versione dell'IDE richiedeva l'intero passaggio "pulito" ogni volta che venivano apportate modifiche ai file XML. – ChrisStillwell

+1

Penso che dovremmo aspettare che la versione finale venga rilasciata ... le versioni di anteprima sono sempre piene di bug e non sappiamo se quella sia una di quelle. Inoltre, come dice @CommonsWare, probabilmente 'R' cambia. –

risposta

25

enter image description here

Come sapete tutte le risorse utilizzate nel file XML sono convertiti in campi statici in classe R. Secondo le informazioni ottenute da http://tools.android.com/tech-docs/instant-run, la modifica dei campi statici non è supportata dall'esecuzione immediata.

+1

Almeno per ora ... Aggiunta o rimozione di campi è attualmente una modifica incompatibile che richiede una ricostruzione completa, ma Google sta lavorando per risolverlo . Nel momento in cui 2.0 colpisce i campi di modifica del canale stabile sarà probabilmente anche un hot-swappable. –

2

Aggiornamento:

Google lancia Android Studio 2.0 beta con Swap freddo, miglioramenti applicazione di indicizzazione, e il supporto multi-touch.

5

Solo un piccolo suggerimento. Quando sono passato da Android Studio 1.5 a 2.0 (stabile), la nuova esecuzione istantanea non funzionava con le modifiche al layout. Ho provato Run>Clean and rerun app e ho risolto, dal momento che Instant Run funziona.

+0

Grazie ... in precedenza ho usato per disinstallare e reinstallare – suku

Problemi correlati