Come configurare smartphone e PC. Portale informativo
  • casa
  • Notizia
  • Che è meglio Dalvik o Art. Comprendiamo la complessità dei programmi Art e Dalvik

Che è meglio Dalvik o Art. Comprendiamo la complessità dei programmi Art e Dalvik

Con il rilascio di nuove versioni di Android, questo sistema operativo richiedeva sempre più memoria ad accesso casuale (RAM). I primi dispositivi avevano 256 MB di RAM, ma oggi un gigabyte potrebbe non essere più sufficiente. Tuttavia, Google ha intrapreso l'ottimizzazione e ha rilasciato Android 4.4 KitKat. Questa versione del sistema operativo è più veloce, ma richiede meno risorse. Ciò è diventato possibile grazie al passaggio dal sistema Dalvik ad ART. Leggi di seguito di cosa si tratta e perché gli smartphone con Android 4.4 funzioneranno più velocemente su processori deboli.

Uno dei motivi della popolarità del sistema operativo mobile di Google è la relativa facilità di sviluppo di applicazioni per esso. Grazie a ciò, il negozio di software di Google Play si è rapidamente riempito di utilità. Ciò è stato possibile con l'aiuto della macchina virtuale Dalvik, che ha convertito il codice dell'applicazione in qualcosa di comprensibile per il processore di un telefono cellulare o di un tablet. I programmatori scrivono nel modo che preferiscono e non devono preoccuparsi di quale chipset si trova nel gadget dell'utente: di Qualcomm, Intel, Mediatek, nVidia, Samsung o di un altro fornitore.

Dato che il codice dell'applicazione viene trasformato al volo in qualcosa di comprensibile per l'hardware del gadget, è molto conveniente per gli sviluppatori creare i propri programmi. Ma a causa di questo intermediario sotto forma di macchina virtuale Dalvik, il processore del dispositivo deve eseguire molte più azioni: leggere il codice, trasformarlo in qualcosa di comprensibile dall'hardware, eseguirlo e visualizzare il risultato sullo schermo. La conseguenza di questa architettura può essere osservata da quasi tutti i possessori di un dispositivo Android sotto forma di un'interfaccia lenta. Quando lo smartphone non è caricato con giochi e calcoli, la RAM è libera, ma il semplice capovolgimento dello schermo provoca comunque un secondo ritardo.

Google ha iniziato a combattere questo problema molto tempo fa: il primo passo serio è stato Project Butter, annunciato insieme ad Android 4.1 Jelly Bean. Grazie ad esso, il sistema operativo ha iniziato a rispondere un po' più velocemente alle azioni dell'utente, ma nel complesso il problema rimaneva. Pertanto, Google ha creato e sta preparando ART, un sostituto della macchina virtuale Dalvik.

Per quelloÈ necessario Androidvirtualeauto

Qualsiasi programma utilizza molte azioni standard: visualizzazione di un'immagine sullo schermo, scrittura di file in memoria, trasferimento di file tramite Bluetooth o Wi-Fi. Per semplificare la vita ai programmatori, il sistema operativo dispone di funzioni integrate per eseguire queste attività. Lo sviluppatore deve solo indicare nella sua domanda "copia il file XXX sulla scheda di memoria nella cartella UUU". Non importa come è fatto o quante risorse di sistema richiede.

I programmatori spesso scrivono anche programmi "difettosi" che contengono errori nel codice, "perdono" memoria e simili. Una macchina virtuale consente di isolare le utilità tra loro e dal kernel del sistema operativo. Grazie a ciò, i crash dell'applicazione non influiscono sul sistema operativo e sugli altri programmi in esecuzione. Senza questo, un errore nell'utilità provoca il blocco dell'intero sistema. Gli utenti più anziani ricorderanno come i bug nei software applicativi portassero alla "schermata blu della morte" nei sistemi operativi desktop Windows 95 e 98, che non disponevano di meccanismi di virtualizzazione simili.

I file APK che un utente scarica dal Google Play Store o da qualsiasi altro server sono codice non compilato. Nessun computer può farlo perché semplicemente “non capisce”. Se le utilità fossero fornite in una forma già compilata e comprensibile per l'hardware, alcune di esse funzionerebbero, ad esempio, su dispositivi con chipset Snapdragon, ma darebbero un errore se avviate su gadget con chip Tegra.

Ogni produttore adatta Dalvik al proprio processore e hardware. Grazie a ciò, lo stesso programma può essere eseguito su gadget di quasi tutti i produttori senza modificarne il codice sorgente. Ed è per questo motivo che non puoi semplicemente installare una nuova versione di Android sul tuo dispositivo, come reinstallare Windows.

Che è successoDalvik e perché richiede la sostituzione

La macchina virtuale Dalvik (dal nome del porto peschereccio islandese di Dalvik) è presente in Android sin dal lancio di questo sistema operativo nel 2007. Da allora ha subito un solo grande cambiamento: in Android 2.2 Froyo, il codice dell'APK veniva trasformato al volo in codice macchina subito dopo l'avvio dell'utilità da parte dell'utente. In precedenza veniva elaborato riga per riga durante l'esecuzione del programma su un dispositivo mobile. Il nuovo approccio ha semplificato l'avvio delle utilità e il loro funzionamento, ma ciò ha influito sui requisiti delle risorse hardware. E oggi, solo un gigabyte di RAM potrebbe non essere sufficiente per far funzionare velocemente un telefono cellulare.

Che cosacomeARTE eComeLeiaiuteràAndroide

La macchina virtuale ART (acronimo di Android RunTime - ambiente runtime Android) è ancora in fase sperimentale, ma è già possibile provarla in Android 4.4 KitKat. Gli utenti di dispositivi che eseguono questa versione del sistema operativo possono passare dal Dalvik predefinito ad ART.

La differenza principale tra queste macchine virtuali è l'approccio di compilazione. Se Dalvik converte il codice in tempo reale immediatamente dopo aver avviato le utilità, ART lo fa in anticipo durante l'installazione. Ciò significa un aumento del tempo di installazione delle utilità e un ingombro maggiore nella memoria flash del dispositivo. Ma questo significa anche un avvio più veloce e un ridotto fabbisogno di risorse hardware, in particolare la quantità di RAM. Ecco perché Android 4.4 KitKat, secondo Google, potrà funzionare in modo rapido e stabile su gadget con 512 MB di RAM. Il nuovo approccio alla conversione del codice ridurrà anche il consumo della batteria.


Confronta il volume degli stessi programmi utilizzando Dalvik (a sinistra) e ART (a destra)

Dalvik vs.ARTE - confronto

Nel complesso, la macchina virtuale ART promette molti miglioramenti rispetto alla Dalvik esistente. I vantaggi e gli svantaggi di ciascuno possono essere visualizzati nella tabella seguente:

Converte al volo i file APK in codice leggibile dalla CPU, il che richiede meno spazio di archiviazione flash ma richiede più tempo per l'avvio delle app

Converte i file APK in codice leggibile dalla CPU prima che vengano installati. Ciò richiede meno risorse della CPU all'avvio e riduce il tempo di avvio del programma

Nel tempo, il codice macchina viene memorizzato nella cache, il che porta a un caricamento più rapido del telefono cellulare

La cache del codice macchina viene creata al primo avvio del telefono cellulare, motivo per cui l'accensione richiede molto più tempo

Più adatto per dispositivi con memoria flash a bassa capacità poiché la cache del codice macchina occupa meno spazio

Consuma molta più memoria flash (10-20%), poiché oltre ai file APK memorizza il codice macchina compilato di ciascun programma

Stabile e testato nel tempo

Potrebbero apparire errori e carenze nuovi e sperimentali, inaspettati

Prova sperimentaleARTE

Il nuovo compilatore è in fase di sviluppo e ricerca, ma gli utenti possono già provarlo. È disponibile per i possessori di dispositivi con Android 4.4 KitKat e basati sul chipset Snapdragon. Chi decide di provare il nuovo prodotto tenga presente che la nuova macchina virtuale potrebbe rendere inutilizzabili alcune utilità. Inoltre, dopo il riavvio, l'avvio dello smartphone potrebbe richiedere fino a mezz'ora: questo è il tempo necessario ad ART per creare la cache dell'applicazione.

Per abilitare ART invece di Dalvik, devi accedere al menu sviluppatore. Per attivare quest'ultimo è necessario aprire le impostazioni dello smartphone e recarsi nella sezione “Informazioni sul telefono”. Lì è necessario fare clic più volte sul pulsante "Numero versione" finché il sistema operativo non segnala la disponibilità del nuovo menu. Successivamente è necessario selezionare la macchina virtuale da utilizzare e riavviare il dispositivo.

Nel complesso, i test degli utenti che sono passati ad ART mostrano un aumento complessivo della velocità di circa il 50% e un aumento della durata della batteria fino al 30%.

Finora siamo riusciti a trovare tali informazioni sul sito Youhtc.ru
"
Negli ultimi anni, una parte importante del lavoro dei creatori di Android è stata la lotta contro la principale "malattia" congenita del sistema: i ritardi nell'animazione dell'interfaccia. Il primo passo serio in questa direzione è stato Project Butter, annunciato insieme ad Android 4.1 Jelly Bean e che ha davvero "accelerato" il sistema, ma non ha risolto completamente il problema. Google se ne rende conto e sta preparando ART, un sostituto della macchina virtuale Dalvik.

Anche adesso, nell'era dei potenti processori multi-core, in determinate circostanze puoi notare che l'animazione in Android non viene disegnata perfettamente e ci sono ritardi visibili tra alcune azioni. Il problema è complesso, quindi sono stati necessari molti passaggi per risolverlo, uno di questi è stato sostituire Dalvik con il precompilatore ART.

Ora il codice Android viene eseguito in un motore Java creato da Google appositamente per i dispositivi mobili e viene convertito “al volo” in codice hardware (Just-In-Time Compilation). Questo meccanismo consente allo sviluppatore dell'applicazione di essere praticamente slegato da una specifica architettura o hardware, ma provoca gravi danni alle prestazioni caricando il processore durante la compilazione. Naturalmente, dopo il primo avvio molto lento del programma, parte del codice “nativo” risultante viene memorizzato nella cache, ma ciò non risolve completamente il problema dei ritardi.

ART è un compilatore AOT (Ahead-Of-Time) che converte il codice Java in codice “nativo” durante il processo di installazione dell'applicazione. Cioè, l'utente esegue il programma già compilato, il che ne accelera notevolmente l'apertura e l'esecuzione. È doppiamente interessante che ART sia già integrato in Android 4.4 KitKat e possa essere attivato nel menu sviluppatore. Dopo essere passati a libart.so (libreria del compilatore), il dispositivo si riavvia e compila tutte le applicazioni già installate. I ragazzi di Android Police, che hanno studiato attentamente ART, affermano che ciò non dovrebbe ancora essere fatto sul firmware personalizzato di AOSP: potrebbero sorgere problemi con il pacchetto software di Google.

Anche tenendo conto dello stato incompleto di ART, il passaggio ad esso influisce in modo significativo sulla velocità di esecuzione di attività ad alta intensità di risorse e sulla fluidità dell'interfaccia, e consente inoltre ai processori multi-core di disattivare più spesso i core inutilizzati, il che offre un guadagno nella durata della batteria del dispositivo. Il nuovo sistema di compilazione presenta degli svantaggi, anche se difficilmente possono essere definiti significativi: tempi di installazione più lunghi e un aumento della dimensione finale del programma del 10-20%. È vero, solo la parte del codice aumenta di dimensioni, il che spesso occupa meno della metà dell'applicazione: i contenuti multimediali (immagini, audio, video) e altri dati non cambiano di dimensioni.

Si scopre che Google lavora su ART ormai da diversi anni e la sua inclusione in KitKat è una decisione assolutamente deliberata, che consente ai creatori del sistema di condurre test seri e agli sviluppatori di applicazioni di prepararsi per l'imminente "partenza" di Dalvik. Non è ancora chiaro quanto il nuovo compilatore sia stato influenzato dagli sviluppatori di FlexyCore, che Google ha acquistato nell'ottobre di quest'anno, ma il progetto è iniziato all'interno dello stesso colosso della ricerca.

Google non ha ancora detto quanto presto ART sostituirà Dalvik, ma nulla impedisce all'azienda di farlo nella prossima versione del sistema. È interessante notare che, come Project Butter, il compilatore non richiede sforzi da parte degli sviluppatori di applicazioni: scriveranno comunque il codice in un linguaggio noto, utilizzando pratiche comprovate.
"

Non ho un dispositivo con Android 4.4 per provare personalmente la nuova tecnologia, ma è già disponibile un'immagine di sistema di Google, che puoi "toccare" nell'emulatore.

Ho ancora domande sulla disponibilità di questa funzionalità su altri dispositivi Android 4.4 non Google: Samsung, HTC, ecc. Tutte le funzioni dell'applicazione funzioneranno correttamente dopo il trasferimento sulla nuova piattaforma?

Ci sono pochissime informazioni, scrivi nei commenti dove può essere trovato in una dimensione più grande.

Finora siamo riusciti a trovare tali informazioni sul sito Youhtc.ru
"
Negli ultimi anni, una parte importante del lavoro dei creatori di Android è stata la lotta contro la principale "malattia" congenita del sistema: i ritardi nell'animazione dell'interfaccia. Il primo passo serio in questa direzione è stato Project Butter, annunciato insieme ad Android 4.1 Jelly Bean e che ha davvero "accelerato" il sistema, ma non ha risolto completamente il problema. Google se ne rende conto e sta preparando ART, un sostituto della macchina virtuale Dalvik.

Anche adesso, nell'era dei potenti processori multi-core, in determinate circostanze puoi notare che l'animazione in Android non viene disegnata perfettamente e ci sono ritardi visibili tra alcune azioni. Il problema è complesso, quindi sono stati necessari molti passaggi per risolverlo, uno di questi è stato sostituire Dalvik con il precompilatore ART.

Ora il codice Android viene eseguito in un motore Java creato da Google appositamente per i dispositivi mobili e viene convertito “al volo” in codice hardware (Just-In-Time Compilation). Questo meccanismo consente allo sviluppatore dell'applicazione di essere praticamente slegato da una specifica architettura o hardware, ma provoca gravi danni alle prestazioni caricando il processore durante la compilazione. Naturalmente, dopo il primo avvio molto lento del programma, parte del codice “nativo” risultante viene memorizzato nella cache, ma ciò non risolve completamente il problema dei ritardi.

ART è un compilatore AOT (Ahead-Of-Time) che converte il codice Java in codice “nativo” durante il processo di installazione dell'applicazione. Cioè, l'utente esegue il programma già compilato, il che ne accelera notevolmente l'apertura e l'esecuzione. È doppiamente interessante che ART sia già integrato in Android 4.4 KitKat e possa essere attivato nel menu sviluppatore. Dopo essere passati a libart.so (libreria del compilatore), il dispositivo si riavvia e compila tutte le applicazioni già installate. I ragazzi di Android Police, che hanno studiato attentamente ART, affermano che ciò non dovrebbe ancora essere fatto sul firmware personalizzato di AOSP: potrebbero sorgere problemi con il pacchetto software di Google.

Anche tenendo conto dello stato incompleto di ART, il passaggio ad esso influisce in modo significativo sulla velocità di esecuzione di attività ad alta intensità di risorse e sulla fluidità dell'interfaccia, e consente inoltre ai processori multi-core di disattivare più spesso i core inutilizzati, il che offre un guadagno nella durata della batteria del dispositivo. Il nuovo sistema di compilazione presenta degli svantaggi, anche se difficilmente possono essere definiti significativi: tempi di installazione più lunghi e un aumento della dimensione finale del programma del 10-20%. È vero, solo la parte del codice aumenta di dimensioni, il che spesso occupa meno della metà dell'applicazione: i contenuti multimediali (immagini, audio, video) e altri dati non cambiano di dimensioni.

Si scopre che Google lavora su ART ormai da diversi anni e la sua inclusione in KitKat è una decisione assolutamente deliberata, che consente ai creatori del sistema di condurre test seri e agli sviluppatori di applicazioni di prepararsi per l'imminente "partenza" di Dalvik. Non è ancora chiaro quanto il nuovo compilatore sia stato influenzato dagli sviluppatori di FlexyCore, che Google ha acquistato nell'ottobre di quest'anno, ma il progetto è iniziato all'interno dello stesso colosso della ricerca.

Google non ha ancora detto quanto presto ART sostituirà Dalvik, ma nulla impedisce all'azienda di farlo nella prossima versione del sistema. È interessante notare che, come Project Butter, il compilatore non richiede sforzi da parte degli sviluppatori di applicazioni: scriveranno comunque il codice in un linguaggio noto, utilizzando pratiche comprovate.
"

Non ho un dispositivo con Android 4.4 per provare personalmente la nuova tecnologia, ma è già disponibile un'immagine di sistema di Google, che puoi "toccare" nell'emulatore.

Ho ancora domande sulla disponibilità di questa funzionalità su altri dispositivi Android 4.4 non Google: Samsung, HTC, ecc. Tutte le funzioni dell'applicazione funzioneranno correttamente dopo il trasferimento sulla nuova piattaforma?

Ci sono pochissime informazioni, scrivi nei commenti dove può essere trovato in una dimensione più grande.

Dalvik ha un concorrente in KitKat sotto forma di ART. Allora, di cosa si tratta e quali vantaggi si aspetteranno gli utenti Android nel prossimo futuro?

ART (abbreviazione di Android Runtime) è un nuovo runtime di applicazione scritto in C/C++, che differisce dalla macchina virtuale Dalvik esistente di Android in quanto tutte le applicazioni sul sistema sono già compilate, il che significa che non è necessario un compilatore JIT. Pertanto, ART consente di eseguire applicazioni su hardware diverso (wiz. ARM, x86) senza adattamenti preliminari da parte degli sviluppatori. Inoltre, il lancio delle applicazioni in nuove condizioni richiede la metà del tempo. Esistono alcuni inconvenienti, uno dei quali è legato al principio di funzionamento in condizioni ART. Questo ambiente porta al fatto che tutte le informazioni necessarie vengono tradotte in un linguaggio orientato alla macchina durante l'installazione delle applicazioni (compilazione AOT), e ciò richiede tempo aggiuntivo, motivo per cui l'intero processo di installazione è molto lungo e le applicazioni richiedono più spazio, quindi come vengono compilati continuamente. Sebbene ART sia presente in Android 4.4 KitKat, utilizza comunque la macchina virtuale Dalvik per impostazione predefinita. ART è ancora in fase di sviluppo, ma chiunque può già attivare la nuova tecnologia: Impostazioni -> Opzioni sviluppatore -> Seleziona runtime.

Se decidi di testare un nuovo ambiente, non dimenticare che il primo avvio può durare fino a 20 minuti, o anche di più: il sistema impiegherà molto tempo per passare ai nuovi principi di funzionamento. La libreria libdvm.so verrà sostituita con libart.so e i file ODEX con OAT. Tieni presente che il passaggio ad ART nel caso di ROM personalizzate non è consigliabile, poiché potrebbe verificarsi un problema di incompatibilità con la versione attuale delle applicazioni Gapps, che causerà errori, arresti anomali del sistema e renderà impossibile lavorare sul dispositivo. Poiché con Android 4.4 KitKat abbiamo a che fare solo con un prototipo di una nuova runtime dell'applicazione, è troppo presto per trarre conclusioni basate sugli attuali risultati pratici. ART non è stato ancora ottimizzato affatto, ma possiamo già dire che nelle nuove condizioni le applicazioni saranno più veloci, le animazioni saranno più fluide e la risposta al tocco del touchscreen migliorerà. Inoltre, ART sarà in grado di ridurre il carico sul processore: la maggior parte dei processi dovrà utilizzare solo una parte dei core. Ciò porterà a un utilizzo più efficiente dell'architettura big.LITTLE ARM, il che significa che il consumo energetico dei dispositivi Android sarà ridotto e il tempo di funzionamento aumenterà. In effetti, ART include due compilatori backend. Sia il primo che il secondo sono compilatori AOT (Ahead-of-Time) e uno di questi viene utilizzato per riconoscere il codice macchina e lavorare con GCC, cl.exe (compilatore LLVM).

Stranamente, il passaggio all'ART non dovrebbe influenzare la creazione di applicazioni. La specificità del nuovo ambiente è tale che ART legge il bytecode per Dalvik, il che significa che non è necessario acquisire nuove conoscenze e competenze. Il lavoro verrà svolto utilizzando lo stesso bytecode Java. D'altra parte, la compilazione AOT presenta uno svantaggio: errori che si verificano su hardware diverso. Per questo motivo, gli sviluppatori dovranno testare le loro applicazioni su più dispositivi Android. Allo stesso tempo, la precompilazione ridurrà la possibile quantità di lavoro e sarà possibile creare applicazioni con ART in qualsiasi lingua con un frontend LLVM. Separatamente, vale la pena notare l'accesso al codice macchina: gli sviluppatori avranno più opportunità, ma in caso di errore il prodotto finito potrebbe danneggiare il dispositivo Android. L'ultimo punto importante riguarda l'uso di JNI, un meccanismo standard per l'esecuzione del codice sotto il controllo della macchina virtuale Java, che è associato alla garanzia della compatibilità binaria.

Conclusione Il passaggio ad ART porterà ad un aumento delle prestazioni dei dispositivi Android e ad una diminuzione del numero di ritardi I principali svantaggi di Dalvik rispetto ad ART Dalvik è più lento, come altre macchine virtuali. Il compilatore JIT è un codice aggiuntivo, il che significa un ulteriore grattacapo per alcuni sviluppatori. Principali svantaggi di ART rispetto a Dalvik Aumento del volume delle applicazioni. Tempo di installazione aumentato

Nel mondo moderno della tecnologia e delle abbreviazioni, nessuno è sorpreso dai nuovi nomi e abbreviazioni. C'è però un problema: gli utenti comuni non sono sempre pienamente consapevoli di ciò che il loro gadget ha imparato dopo l'aggiornamento. Gli sviluppatori raramente ci deliziano con descrizioni dettagliate di innovazioni e nuove tecnologie, ed è estremamente raro trovare una spiegazione chiara sul sito ufficiale: nella migliore delle ipotesi, l'utente troverà solo una breve descrizione con espressioni ancora più incomprensibili.

Cerchiamo sempre di aiutare gli utenti a comprendere nuovi dispositivi e tecnologie, quindi abbiamo deciso di parlare a voi, nostri lettori, della tecnologia ART in modo più dettagliato e anche di fare un piccolo confronto con la familiare macchina virtuale Dalvik.

Che cos'è il runtime dell'applicazione (macchina virtuale)?

La discussione su Dalvik e ART è impossibile senza comprenderne le basi, quindi parliamo prima della macchina virtuale in quanto tale. Il runtime di un'applicazione è un insieme di istruzioni eseguite per tradurre il codice dell'applicazione in codice comprensibile da un computer. La macchina virtuale viene utilizzata senza nemmeno far parte del programma principale. In generale, tutti i linguaggi informatici "gestiti" (Java in Android, C# in Windows Phone, ECMAScript nei browser) richiedono un tale ambiente per comprendere la lingua in cui è scritta l'applicazione.

Android utilizza una macchina virtuale per eseguire i file DEX (simili a EXE in Windows), che sono contenuti nell'archivio APK dell'applicazione Android. I vantaggi di una tale soluzione sono due. Innanzitutto, ogni applicazione viene eseguita su un sistema isolato dal kernel del sistema operativo, quindi quest'ultimo sembra più o meno sicuro. In secondo luogo, l'utilizzo di una macchina virtuale apre la strada alle applicazioni multipiattaforma, ovvero l'applicazione può essere eseguita su uno smartphone ARM, un tablet MIPS o un computer x86.

"Come sapete, per tutto questo tempo Android ha utilizzato la macchina virtuale Dalvik, che probabilmente ha incontrato chiunque abbia approfondito anche un po' le funzionalità del sistema operativo."


Perché utilizzare il runtime di un'applicazione?

Abbiamo già risposto a questa domanda sopra. Non c'è dubbio che l'utilizzo di una macchina virtuale rallenti l'esecuzione delle applicazioni, ma presenta diversi vantaggi che influenzano la scelta a suo favore.

  • La macchina virtuale esegue il codice dell'applicazione di terze parti in un ambiente isolato. Di conseguenza, il codice che può danneggiare il kernel del sistema operativo non sarà in grado di interagire direttamente con i file di sistema, che proteggeranno il sistema. Un enorme vantaggio dell'utilizzo di una macchina virtuale è il funzionamento più stabile e affidabile del sistema principale.
  • Attraverso Google Play Store e altre fonti, lo sviluppatore distribuisce un file APK del suo programma, che contiene istruzioni non compilate che verranno “assemblate” da una macchina virtuale prima dell'esecuzione. Questa soluzione garantisce una maggiore compatibilità; in caso contrario, il codice compilato per i dispositivi basati su Snapdragon non potrà essere eseguito sui dispositivi Atom. Pertanto la macchina virtuale risolve il problema con la destinazione della compilazione.

Cos'è Dalvik e qual è il suo problema?

Questa è la domanda principale. Dalvik è stato utilizzato in Android sin dalla prima versione del sistema operativo, dal 2007, e durante tutto questo tempo c'è stato praticamente un cambiamento importante: l'apparizione della "compilazione al volo" in Froyo, meglio conosciuta come JIT. La sua caratteristica principale è che l'applicazione è completamente compilata quando l'utente apre o esegue le istruzioni corrispondenti. Questa è una soluzione molto utile, poiché prima della versione 2.2 tutte le applicazioni venivano compilate passo dopo passo, il che riduceva la velocità; L'unico svantaggio di questa soluzione è che all'avvio del programma il processore viene caricato seriamente.

Per evitare lavoro aggiuntivo quando si esegue nuovamente il programma, il sistema raccoglie tutte le istruzioni compilate durante l'utilizzo dell'applicazione e le invia ad una cache, che viene memorizzata nel file system con l'estensione *.ODEX (Optimized Dalvik EXecutable). Non appena avvierai l'applicazione per la seconda volta, Dalvik non compilerà più, ma caricherà in memoria i dati già ottimizzati per il tuo dispositivo. Tuttavia, richiamare una funzione dell'applicazione che non è stata utilizzata in precedenza causerà la nuova compilazione delle istruzioni. Se in questo momento il sistema sta eseguendo lavori di terzi (ad esempio, ascoltando musica o aggiornando applicazioni), a causa del sovraccarico del processore e dei sottosistemi di input/output, nella memoria si possono osservare sussulti e freni evidenti. È qui che entra in gioco l'ARTE.

Cos’è l’ARTE e come salverà il mondo?

ART, o Android RunTime (un nome molto storto) è una nuova macchina virtuale che Google ha introdotto in Android 4.4 come uno degli strumenti di sviluppo (Dalvik è utilizzato per impostazione predefinita). La differenza principale tra il nuovo ambiente di esecuzione delle applicazioni è l'uso della tecnologia Ahead-Of-Time (AOT, “in anticipo”). ART compila tutte le istruzioni dell'applicazione prima dell'avvio, durante il processo di installazione. Il tempo di quest'ultimo aumenta, così come la quantità di memoria permanente occupata dal programma, ma la macchina virtuale non compila più l'applicazione corrente durante la sua esecuzione, il che migliora il comfort durante l'utilizzo attivo del multitasking. Tuttavia, è consigliabile avere più RAM, poiché ART vi caricherà anche le istruzioni dell'applicazione che forse non utilizzerete mai.

Dalvik vs. ARTE


Confrontiamo brevemente le due macchine virtuali


ART è ancora un esperimento

Naturalmente al momento ART è solo in fase di test ed è disponibile solo per dispositivi con Android 4.4 e chipset Qualcomm. Tuttavia, ora puoi passare da Dalvik ad ART tramite strumenti di sviluppo nascosti (il menu si apre dopo alcuni tocchi sul numero di build nelle informazioni del dispositivo). Tieni presente che non tutte le applicazioni potranno funzionare in ART senza aggiornamenti aggiuntivi; A proposito, il primo avvio in modalità ART può richiedere fino a 30 minuti.

Google ha reso ART disponibile ora per gli sviluppatori, ponendo le basi per una transizione completa a questa macchina virtuale in futuro. Ciò non significa che ART sia stabile ora. Questo è un esperimento e la nuova macchina virtuale potrebbe non essere pronta per l'uso quotidiano.

I migliori articoli sull'argomento