Come configurare smartphone e PC. Portale informativo
  • Casa
  • Recensioni
  • Cosa significa art dalvik Wednesday? ART vs Dalvik: qual è la differenza?

Cosa significa art dalvik Wednesday? ART vs Dalvik: qual è la differenza?

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 tutto informazioni necessarie viene tradotto in un linguaggio orientato alla macchina durante l'installazione dell'applicazione ( Compilazione dell'AOT), e ciò richiede tempo aggiuntivo, motivo per cui l'intero processo di installazione è molto lungo e le applicazioni occupano più spazio, poiché vengono compilate continuamente.

Almeno 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 versione attuale Gapp applicazioni, che porteranno a errori, arresti anomali del sistema e renderanno impossibile il lavoro sul dispositivo.

Da quando Android 4.4KitKat Abbiamo a che fare solo con un prototipo di un nuovo ambiente di runtime dell'applicazione, quindi possiamo trarre conclusioni basate su quello attuale risultati pratici, troppo presto. 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à. Oltre a questo ARTE sarà in grado di ridurre il carico sul processore: la maggior parte dei processi dovrà utilizzare solo una parte dei core. Ciò porterà a qualcosa di più utilizzo efficace 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. A questo proposito, gli sviluppatori dovranno testare le proprie applicazioni su un numero maggiore di 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ù possibilità, ma in caso di errore il prodotto finito potrebbe essere dannoso Androide dispositivo. Scorso punto importante associati all'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, dovranno fornire anche gli sviluppatori di varie immagini di ripristino personalizzate nuova opzione, simile a quello che rendeva possibile la pulizia Dalvik cache.

Conclusione

Vai a ARTE si tradurrà in prestazioni Androide i dispositivi aumenteranno e il numero di ritardi diminuirà. Per ora vediamo solo versione di prova nuovo ambiente di 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 codice aggiuntivo, il che significa aggiuntivo mal di testa per alcuni sviluppatori.

Principali svantaggi di ART rispetto a Dalvik

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

IN mondo moderno tecnologie e abbreviazioni, nessuno si sorprende di nuovi nomi e abbreviazioni. Tuttavia c'è un problema: utenti abituali non sempre si rendono conto appieno di ciò che il loro gadget ha imparato dopo l'aggiornamento. Gli sviluppatori raramente ci rendono felici descrizioni dettagliate innovazioni e nuove tecnologie e trovarne alcune spiegazione chiara sul sito ufficiale è estremamente raro - in scenario migliore, l'utente troverà solo 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. Un runtime dell'applicazione è un insieme di istruzioni eseguite per tradurre il codice dell'applicazione in codice comprensibile al 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 macchina virtuale per eseguire file DEX (analoghi a EXE in Windows), che sono contenuti nell'archivio APK di un'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 applicazione di terzi V ambiente isolato. Pertanto, il codice che può danneggiare il kernel del sistema operativo non sarà in grado di interagire direttamente file di sistema, che proteggerà il sistema. Un enorme vantaggio dell'utilizzo di una macchina virtuale è che è più stabile e veloce funzionamento affidabile 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” dalla 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?

Eccoci qui 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.

Da evitare lavoro extra A rilancio programmi, il sistema raccoglie tutte le istruzioni compilate durante l'utilizzo dell'applicazione e le invia alla cache, che viene memorizzata in file system con estensione *.ODEX (Dalvik EXecutable ottimizzato). 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 conduce lavoro esterno(ad esempio, ascoltando musica o aggiornando applicazioni), quindi a causa del sovraccarico del processore e dei sottosistemi di input/output, è possibile osservare sussulti e freni evidenti nella memoria. È 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. Quest'ultimo tempo aumenta, così come la quantità di memoria permanente occupata dal programma, ma la macchina virtuale non compila più applicazione corrente durante la sua esecuzione, aumentando così il comfort durante l'utilizzo attivo del multitasking. Tuttavia è consigliabile averlo Di più RAM, poiché ART vi caricherà anche quelle istruzioni per l'applicazione che potresti non utilizzare mai.

Dalvik vs. ARTE


Confrontiamo brevemente le due macchine virtuali


ART è ancora un esperimento

Naturalmente, dentro al momento ART è solo in fase di test ed è disponibile solo per dispositivi con chipset Android 4.4 e 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 ulteriori aggiornamenti; 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 ciò che verrà 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.

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 sistema operativo funziona più velocemente, 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 questo il negozio Programmi Google Il gioco 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 più volte più azione: 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 Progetto Progetto 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 ne utilizza molti azioni standard: visualizzare l'immagine sullo schermo, scrivere file nella memoria, trasferire 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 altro programmi in esecuzione. Senza questo, un errore nell'utilità provoca il blocco dell'intero sistema. Gli utenti più anziani potrebbero ricordare come i bug nel software applicativo portassero a " schermata blu death" nei desktop Windows 95 e 98, che non disponevano di meccanismi di virtualizzazione simili.

File dentro Formato APK, che l'utente scarica da Google Gioca al Negozio o qualsiasi altro server è 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 suo processore e hardware. Grazie a ciò, lo stesso programma può funzionare su gadget di quasi tutti i produttori senza modificarlo codice sorgente. Ed è per questo motivo che non puoi semplicemente prenderlo e installarlo nuova versione Android nel dispositivo, simile alla reinstallazione di 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 dispositivo mobile. Nuovo approccio ha reso più semplice l'avvio delle utilità e il loro lavoro, ma ciò ha influito sul requisito delle risorse hardware. E oggi anche un gigabyte di RAM potrebbe non bastare lavoro veloce telefono cellulare

Che cosacomeARTE eComeLeiaiuteràAndroide

Macchina virtuale ART (sta per Android RunTime - ambiente runtime Programmi Android) è ancora in fase sperimentale, ma puoi già provarlo 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 questi macchine virtualiè un 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, di secondo Google, potrà lavorare 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, macchina codice del programma 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 (del 10-20%), poiché in aggiunta 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 proprietari di dispositivi in Controllo Android 4.4 KitKat e basato 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%.

Per far apparire "Strumenti per sviluppatori" nelle impostazioni:


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

  2. Sulla voce "Numero build", fai clic 7 volte di seguito (dopo diversi clic, sullo schermo viene visualizzato un messaggio su quante altre volte è necessario fare clic affinché la voce "Strumenti per sviluppatori" venga visualizzata nel menu.

Come scegliere un ambiente esecuzione dell'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, associato non solo all'ART, ma anche all'eliminazione del firmware Applicazioni Android, aggiunto da Samsung e AT&T. Comunque non ho mai usato queste app, ma rimuovile da firmware nativo con l'aiuto rimozione normale i programmi erano impossibili.

È 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 di provare questa innovazione utenti esperti, da quando l'interfaccia ha iniziato a funzionare senza problemi come in iOS.

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

Aggiornamento (25 giugno 2014)
ART ha continuato i test sui telefoni Google Nesso S e Galaxy s3 (AT&T i747) su Android 4.4 - 4.4.2. Allo stesso tempo, su Galaxy S III usato Firmware CyanogenMod 11 (Quantum 3.5) e su Google Nexus S - 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