Come configurare smartphone e PC. Portale informativo
  • casa
  • Consiglio
  • Runtime dalvik o art. Quali sono i possibili problemi di compatibilità durante la migrazione dal runtime dalvik ad art?

Runtime dalvik o art. Quali sono i possibili problemi di compatibilità durante la migrazione dal runtime dalvik ad art?

La nuova versione di Android ha un'innovazione importante, anche se a prima vista non molto evidente: è apparsa una nuova macchina virtuale ART. Cos'è ART, una macchina virtuale, e perché è nuova è descritto nel blog in lingua inglese di Atif Khan, un articolo dal quale abbiamo deciso di tradurre per voi. Esprimiamo una gratitudine speciale per il vostro aiuto Angela Bozhinova.

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 runtime dell'applicazione è 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.

C'era spazio per molti cambiamenti e miglioramenti. La maggior parte di essi attira immediatamente l'attenzione anche dell'utente medio di questo sistema. Si tratta ovviamente dell'installazione dell'applicazione Hangouts come messenger standard, di un menu di composizione ridisegnato e dell'aggiunta di una tastiera Emoji. I fan più esperti di Android sentiranno sicuramente un aumento delle prestazioni rispetto alle versioni precedenti. Tuttavia, ci sono anche lati nascosti che, secondo la logica, dovrebbero interessare solo agli sviluppatori. Tuttavia, il significato di una di queste innovazioni è particolarmente grande. Inoltre, presto influenzerà ognuno di noi, e quindi sarebbe semplicemente un crimine tacere sui suoi dettagli.

Probabilmente molti di voi hanno almeno sentito dire che in Android KitKat è apparsa una modalità speciale. La sua essenza risiede nell'avvio più rapido delle applicazioni e nella loro esecuzione più stabile e fluida. Forse i tentativi di risolvere questo problema da soli non sono stati coronati da successo. Ciò non sorprende: le parole “macchina virtuale” e “compilation” possono spaventare chiunque, soprattutto se le informazioni provengono da una fonte in lingua inglese. Per risolvere questo problema, abbiamo deciso di comprendere noi stessi l'essenza del problema, presentandolo nella forma più accessibile.

Alcuni concetti base

Prima di conoscere l'essenza dell'innovazione, è necessario farsi un'idea di alcuni dettagli. Il primo di questi è l'ambiente runtime dell'applicazione. In termini semplici, il famigerato concetto è una raccolta di istruzioni eseguite durante l'esecuzione di una particolare applicazione. Le istruzioni, a loro volta, traducono il codice del programma in codice che il sistema può eseguire. Di conseguenza, assolutamente tutti i linguaggi informatici richiedono un ambiente di esecuzione specifico per eseguire le applicazioni scritte in essi.

Il nostro sistema operativo Android preferito utilizza macchine virtuali come ambiente runtime, la prima delle quali, Dalvik, ha iniziato a funzionare nel 2007. È a lei che dobbiamo i periodici blocchi dell'interfaccia e talvolta il rallentamento dell'avvio delle applicazioni. Tuttavia, questo problema potrebbe presto diventare parte della storia.

Perché le macchine virtuali?

Questo tipo di ambiente runtime presenta due vantaggi incondizionati che semplificano la vita non solo agli sviluppatori, ma anche a noi utenti. Il primo vantaggio è la protezione del sistema. Non è un caso che una macchina virtuale si chiami virtuale: il suo funzionamento è completamente isolato dal sistema operativo. Di conseguenza, un errore o un blocco banale non influiranno in alcun modo sulle prestazioni del tuo dispositivo.

Il secondo vantaggio è multipiattaforma. La macchina virtuale sarà in grado di eseguire l'applicazione, anche se è stata creata su un PC.

Vantaggi e svantaggi di Dalvik

Dalvik, come ogni cosa in questo mondo, è imperfetto. Il motivo delle contrazioni periodiche dell'interfaccia è il tipo di conversione del codice dell'applicazione in hardware. Questa macchina lo fa dal vivo e questo tipo di compilazione si chiama Just-In-Time. Di conseguenza, è quasi impossibile prevedere la comparsa dei bug, poiché ciò può accadere in qualsiasi momento. La probabilità che ciò accada è particolarmente elevata al primo avvio, quando parte del codice convertito non è nemmeno memorizzato nella cache.

Il problema della lentezza del primo lancio, tra l'altro, non è affatto casuale. Ciò accade perché il sistema deve mettere insieme tutti i file necessari per eseguire l'applicazione e caricare con essi la RAM. In questo caso particolare, i dispositivi con una piccola quantità di RAM sono i più colpiti, per i quali il processo di caricamento è irto, se non di crash dell'applicazione, almeno di notevoli ritardi nella sua esecuzione.

La compilazione al volo carica notevolmente il processore, ma allo stesso tempo consente agli sviluppatori di non dover ottimizzare il codice per ogni singolo processore e altri componenti del dispositivo.

Per correggere quanto sopra, è stata progettata una nuova macchina virtuale, che è riuscita a farsi notare dal nome di gran lunga più intricato: Android Runtime. Oppure abbreviato in ART.

Vantaggi e svantaggi dell'ART

La nuova macchina virtuale ha preso vita con Android 4.4 KitKat, ma alla presentazione non ha ricevuto la dovuta attenzione. Il motivo è che ART è ancora in fase sperimentale. Tuttavia, sebbene Dalvik sia utilizzato come macchina predefinita, ora puoi passare ad Android Runtime.
Tuttavia, non affrettarti a farlo. Per prima cosa devi familiarizzare con le funzionalità della nuova versione.

Il vantaggio più notevole di ART è un nuovo tipo di compilazione chiamata Ahead-Of-Time. I lettori che conoscono l'inglese probabilmente hanno immediatamente intuito cosa stava succedendo. Ma il fatto è che il processo di conversione del codice nella nuova versione viene eseguito prima dell'avvio dell'applicazione, anche durante l'installazione. Di conseguenza, emergono immediatamente diversi svantaggi che, in tutta onestà, vale la pena menzionare. Si tratta, in primo luogo, di un processo di installazione più lungo e, in secondo luogo, di dimensioni dell'applicazione finale maggiori. Un altro inconveniente è una conseguenza dell'immaturità di ART: la macchina virtuale attualmente non funziona con tutte le applicazioni.

Tuttavia, l’elenco dei meriti è molto più significativo. Si tratta, ad esempio, di un'interfaccia più fluida e di un caricamento più rapido delle applicazioni. Inoltre, poiché il processo di compilazione viene eseguito una sola volta, non caricherà ulteriormente il processore, il che si tradurrà in una migliore autonomia del dispositivo.

I proprietari di dispositivi con Android 4.4 con processore Snapdragon possono passare alla macchina virtuale ART nel menu sviluppatore.

Linea di fondo

Lo sviluppo di questa tecnologia ha un potenziale enorme. L'obiettivo è sfatare il mito della lentezza e dell'instabilità di Android, cosa che non solo farà piacere ai possessori di dispositivi che lo eseguono, ma eliminerà anche l'argomento più serio nel dibattito da parte dei sostenitori di iOS.

Al momento i rappresentanti di Google non riferiscono i tempi dell'implementazione definitiva e della sostituzione di Dalvik con ART. Mi piacerebbe credere che questo accadrà molto presto.

In precedenza abbiamo scritto che una macchina virtuale Dalvik nel modulo è apparso un concorrente ARTE. È tempo di parlare più in dettaglio di cosa si tratta e quali vantaggi attendono Androide presto gli utenti.

ARTE(un'abbreviazione del termine " Tempo di esecuzione Android") è un nuovo runtime dell'applicazione scritto in C/C++, che differisce da quello esistente in Androide macchina virtuale Dalvik il fatto che tutte le applicazioni nel sistema sono già compilate, il che significa che non ce n'è bisogno Compilatore JIT scompare.

Così, ARTE 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. Ci sono anche alcune carenze, una delle quali è legata al principio di funzionamento in condizioni ARTE. Questo ambiente porta al fatto che tutte le informazioni necessarie vengono tradotte in un linguaggio orientato alla macchina durante l'installazione dell'applicazione ( Compilazione dell'AOT), e questo richiede tempo aggiuntivo, motivo per cui l'intero processo di installazione è molto lungo e le applicazioni occupano più spazio, poiché vengono compilate continuamente.

Anche se ARTE ed è presente in Android 4.4KitKat, ma l'impostazione predefinita è ancora la macchina virtuale Dalvik. ARTEÈ 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. Biblioteca libdvm.so sarà sostituito da libart.so e file ODEX in OAT. Quest'ultimo può essere trovato.

Nota a te stesso che dovresti passare a ARTE in caso di ROM personalizzate’ami non è consigliato, poiché potrebbe esserci un problema di incompatibilità con la versione attuale Gapp applicazioni, che porteranno a errori, arresti anomali del sistema e renderanno impossibile il lavoro sul dispositivo.

Da quando Android 4.4KitKat Poiché si tratta solo di un prototipo di un nuovo ambiente runtime applicativo, è troppo presto per trarre conclusioni basate sui risultati pratici attuali. ARTE non è stato ancora ottimizzato del tutto, ma possiamo già dire che nelle nuove condizioni le applicazioni saranno più veloci, le animazioni diventeranno più fluide e la risposta al tocco del touchscreen migliorerà. Oltretutto ARTE sarà in grado di ridurre il carico sul processore: la maggior parte dei processi dovrà utilizzare solo una parte dei core. Ciò porterà ad un utilizzo più efficiente BRACCIO architettura grande piccolo, il che significa consumo di energia Androide i dispositivi verranno ridotti e il tempo di funzionamento aumenterà.

In realtà ARTE include due compilatori backend. Lo sono sia il primo che il secondo AOT (In anticipo) compilatori e uno di questi viene utilizzato per riconoscere il codice macchina e lavorare con GCC, cl.exe ( Compilatore LLVM).

Impatto sugli sviluppatori

Stranamente, ma durante la creazione di applicazioni, il passaggio a ARTE non dovrebbe riflettersi. La specificità del nuovo ambiente è questa ARTE legge il bytecode per Dalvik, il che significa che non dovrai acquisire nuove conoscenze e competenze. I lavori verranno eseguiti con gli stessi Giava codice byte. D'altra parte, AOT la compilazione ha 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 ti consentirà di ridurre la possibile quantità di lavoro e di creare applicazioni con ARTE sarà possibile in qualsiasi lingua con Front-end LLVM. Separatamente, vale la pena notare l'accesso al codice macchina: gli sviluppatori avranno più opportunità, ma in caso di errore il prodotto finito può essere dannoso Androide dispositivo. L'ultimo punto importante riguarda l'uso JNI- un meccanismo standard per l'esecuzione del codice sotto il controllo di una macchina virtuale Giava, che è associato a garantire la compatibilità binaria.

Molto probabilmente, gli sviluppatori di varie immagini di ripristino personalizzate dovranno fornire anche una nuova opzione, simile a quella che consentiva la cancellazione Dalvik cache.

Conclusione

Vai a ARTE si tradurrà in prestazioni Androide i dispositivi aumenteranno e il numero di ritardi diminuirà. Finora vediamo solo una versione di prova del nuovo ambiente runtime dell'applicazione, ma questo è già un passo molto serio verso nuovi cambiamenti. Non è ancora noto quanto presto verrà completata la transizione.

Principali svantaggi di Dalvik rispetto ad ART

  • Dalvik più lento, come le altre macchine virtuali.
  • Compilatore JIT- questo è un codice aggiuntivo, il che significa un ulteriore grattacapo per alcuni sviluppatori.

Principali svantaggi di ART rispetto a Dalvik

  • Aumento del volume delle domande.
  • Tempo di installazione aumentato

Ciao! Se sei confuso su cosa cambierà per l'utente quando si cambia il runtime da Dalvik ad ART, allora questo post ti interesserà. Prima di parlare del nuovo ambiente, parliamo del noto ambiente Dalvik Definizione Dalvik Virtual Machine è una macchina virtuale basata su registri sviluppata da Dan Bornstein come parte della piattaforma mobile Android. A cosa serve la macchina virtuale Dalvik? Dalvik…

Ciao!
Se sei confuso su cosa cambierà per l'utente quando si cambia il runtime da Dalvik ad ART, allora questo post ti interesserà.
Prima di parlare del nuovo ambiente, parliamo del noto ambiente Dalvik

Definizione

Dalvik Virtual Machine è una macchina virtuale basata su registri sviluppata da Dan Bornstein come parte della piattaforma mobile Android.

A cosa serve la macchina virtuale Dalvik?

Dalvik esegue applicazioni e codice scritti in Java. Un compilatore Java standard converte il codice dell'applicazione, inizialmente in bytecode e poi in file con estensione “.dex”. Questi file, a loro volta, vengono utilizzati dalla macchina virtuale Dalvik.

Perché Google sta modificando il runtime?

Il fattore principale per Google è velocizzare l'interfaccia. Tutti sanno che la buona azienda ha già fatto un grande passo in questa direzione con il rilascio di Android 4.1 Jelly Bean. Come ricorderete, in questa versione è stato annunciato Project Butter, che ha notevolmente migliorato la velocità dell'interfaccia (animazione). Ma Google non si è fermata qui e ha deciso di cambiare l’ambiente di esecuzione delle applicazioni, dire addio a DalvikVM e iniziare a lavorare in ambiente ART.

Come funziona Dalvik e come funzionerà ART?

DalvikVM funziona in tempo reale, ovvero converte il codice in hardware “on the go” (Just-In-Time). Sottoponendo così molto stress al processore.
Ma il precompilatore ART convertirà il codice immediatamente durante l'installazione dell'applicazione.

professionistiPrecompilatore ART:
+ Maggiore velocità nel completare compiti “pesanti”.
+ Rende possibile disabilitare più spesso i core del processore non utilizzati. In questo modo la durata della batteria del dispositivo può aumentare.

Naturalmente ci sono anche degli svantaggi. Uno, secondo me, il principale è aumentare le dimensioni del programma installato. Naturalmente, i possessori di dispositivi con 32 GB di memoria a bordo non se ne accorgeranno. Ma ci sono anche dispositivi con a bordo anche 8 GB...

Conclusione

I possessori dei dispositivi della linea Nexus, con la nuova versione del sistema operativo Android 4.4 KitKat, possono già vedere quali vantaggi presenta il nuovo ambiente runtime dell'applicazione (ART). Puoi passare da Dalvik ad ART nelle impostazioni dello sviluppatore.
Ma al momento non è ancora noto quando ART sostituirà completamente Dalvik.

Per far apparire "Strumenti per sviluppatori" nelle impostazioni:


  1. Vai su “Impostazioni” -> “Informazioni sul telefono”

  2. Sulla voce “Numero build”, clicca 7 volte di seguito (dopo diversi clic, sullo schermo appare un messaggio che ti dice quante altre volte devi cliccare affinché la voce “Strumenti per sviluppatori” appaia nel menu.

Come scegliere il runtime ART (o Dalvik).

  1. Vai su Impostazioni -> Opzioni sviluppatore -> Seleziona runtime.

  2. Seleziona "Usa ART" (o "Usa Dalvik")

Per ora il runtime ART non è destinato al grande pubblico, ma a chi vuole sperimentare.

Dopo aver modificato il runtime in ART, il telefono si riavvierà. Tuttavia, il primo download richiederà più tempo perché le applicazioni Android verranno ricompilate in codici macchina. Ciò consente alle applicazioni di aprirsi ed essere eseguite più velocemente perché, a differenza di Dalvik, non richiedono più la compilazione in tempo reale. ART presenta anche degli svantaggi. Le applicazioni occuperanno più spazio (il che non è così significativo), impiegheranno un po' più tempo per l'installazione e occuperanno il 10-20% di RAM in più. Inoltre, potrebbero verificarsi problemi con il funzionamento di alcune funzioni.

E l'attivazione di ART ci ha permesso di aumentare significativamente la velocità di lavoro. L'aumento delle prestazioni è ovviamente legato non solo all'ART, ma anche alla rimozione delle applicazioni Android dal firmware aggiunto da Samsung e AT&T. In ogni caso non ho mai utilizzato queste applicazioni, ma era impossibile rimuoverle dal firmware nativo utilizzando la normale rimozione del programma.

È troppo presto per parlare di stabilità, ma dopo due giorni di utilizzo del telefono non sono stati riscontrati problemi significativi. Inoltre, tornare a utilizzare Dalvik è altrettanto semplice. Pertanto consiglio agli utenti esperti di provare questa innovazione, poiché ora l'interfaccia funziona perfettamente come su iOS.

Hai provato l'ARTE? Hai sentito l'aumento di velocità rispetto a Dalvik?

Aggiornamento (25 giugno 2014)
Sono proseguiti i test ART sui telefoni Google Nexus S e Galaxy s3 (AT&T i747) su Android 4.4 - 4.4.2. Allo stesso tempo, il Galaxy SIII utilizzava il firmware CyanogenMod 11 (Quantum 3.5) e il Google Nexus S utilizzava AOSP KitKat 4.4.2 Mod per Nexus S. Non sono stati notati problemi durante l'utilizzo di ART. E questo nonostante il firmware Quantum Kernel per il Galaxy s3 sia ottimizzato per Dalvik e il suo sviluppatore non consigli l'uso di ART. Non c'è un notevole miglioramento delle prestazioni sul Galaxy s3 durante l'utilizzo delle attività quotidiane (anche se lo smartphone dovrebbe funzionare più velocemente a causa della mancanza di compilazione in tempo reale). Allo stesso modo, sul vecchio Google Nexus S l'aumento di velocità non è visibile ad occhio.

I migliori articoli sull'argomento