Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • Recenzije
  • Što znači art dalvik srijeda? ART vs Dalvik - u čemu je razlika?

Što znači art dalvik srijeda? ART vs Dalvik - u čemu je razlika?

Prethodno smo pisali da je virtualni stroj Dalvik pojavio se natjecatelj u formi UMJETNOST. Vrijeme je da detaljnije razgovaramo o tome što je to i koje prednosti čekaju Android korisnika uskoro.

UMJETNOST(skraćenica pojma " Android Runtime") je novo runtime aplikacije napisano u C/C++, koje se razlikuje od postojećeg u Android virtualni stroj Dalvikčinjenica da su sve aplikacije u sustavu već kompilirane, što znači da nema potrebe za JIT kompajler nestaje.

Tako, UMJETNOST omogućuje vam pokretanje aplikacija na različitom hardveru (wiz. ARM, x86) bez prethodne prilagodbe od strane programera. Osim toga, potrebno je upola manje vremena za pokretanje aplikacija u novim uvjetima. Postoje i neki nedostaci, od kojih se jedan odnosi na princip rada u uvjetima UMJETNOST. Ovo okruženje dovodi do činjenice da se sve potrebne informacije prevode u strojno orijentirani jezik tijekom instalacije aplikacije ( AOT kompilacija), a to zahtijeva dodatno vrijeme, zbog čega je cijeli proces instalacije jako razvučen, a aplikacije zauzimaju više prostora jer se cijelo vrijeme kompajliraju.

Iako UMJETNOST i prisutan je u Android 4.4 KitKat, ali zadano je i dalje virtualni stroj Dalvik. UMJETNOST Još uvijek je u razvoju, ali svatko već može aktivirati novu tehnologiju:

Postavke -> Developer options -> Select runtime

Ako odlučite testirati novo okruženje, nemojte zaboraviti da prvo pokretanje može trajati do 20 minuta, ili čak i više: sustavu će trebati dosta vremena da se prebaci na nova načela rada. Knjižnica libdvm.so bit će zamijenjen sa libart.tako, a ODEX datoteke u OAT. Potonji se mogu naći.

Imajte na umu da biste trebali prijeći na UMJETNOST u slučaju prilagođeni ROM-ovi’ami se ne preporučuje, jer može postojati problem s nekompatibilnošću s trenutnom verzijom Gapps aplikacije, što će dovesti do pogrešaka, pada sustava i onemogućiti rad na uređaju.

Budući da je u Android 4.4 KitKat Budući da se radi samo o prototipu novog okruženja za izvršavanje aplikacija, prerano je donositi zaključke na temelju trenutnih praktičnih rezultata. UMJETNOST još uvijek nije nimalo optimiziran, ali već sada možemo reći da će u novim uvjetima aplikacije biti brže, animacije glatkije, a odziv na dodir ekrana osjetljiv na dodir bolji. osim UMJETNOST moći će smanjiti opterećenje procesora: većina procesa morat će koristiti samo dio jezgri. To će dovesti do učinkovitijeg korištenja RUKA arhitektura veliko.MALO, što znači potrošnja energije Android uređaji će se smanjiti, a vrijeme rada produljiti.

Zapravo UMJETNOST uključuje dva pozadinska prevoditelja. I prvi i drugi jesu AOT (Ispred vremena) prevoditelje, a jedan od njih služi za prepoznavanje strojnog koda i rad s GCC-om, cl.exe ( LLVM kompajler).

Utjecaj na programere

Čudno, ali prilikom izrade aplikacija prijelaz na UMJETNOST ne treba odražavati. Specifičnost nove sredine je u tome UMJETNOSTčita bajt kod za Dalvik, što znači da nećete morati stjecati nova znanja i vještine. Radovi će se izvoditi istim Java bajt kod. S druge strane, AOT kompilacija ima jedan nedostatak: greške koje se javljaju na različitom hardveru. Zbog toga će programeri morati testirati svoje aplikacije na više Android uređaja. U isto vrijeme, predkompilacija će vam omogućiti da smanjite moguću količinu posla i kreirate aplikacije s UMJETNOST bit će moguće na bilo kojem jeziku s LLVM sučelje. Zasebno je vrijedno spomenuti pristup strojnom kodu: programeri će imati više mogućnosti, ali u slučaju pogreške, gotov proizvod može biti štetan Android uređaj. Posljednja važna točka odnosi se na upotrebu JNI- standardni mehanizam za pokretanje koda pod kontrolom virtualnog stroja Java, koji je povezan s osiguravanjem binarne kompatibilnosti.

Najvjerojatnije će programeri različitih prilagođenih slika za oporavak također morati osigurati novu opciju, sličnu onoj koja je omogućila čišćenje Dalvik predmemorija.

Zaključak

Ići UMJETNOST rezultirat će učinkom Android uređaja će se povećati, a broj kašnjenja će se smanjiti. Za sada vidimo samo probnu verziju novog runtime okruženja aplikacija, ali ovo je već vrlo ozbiljan korak prema novim promjenama. Koliko će brzo prijelaz biti gotov, još nije poznato.

Glavni nedostaci Dalvika u usporedbi s ART-om

  • Dalvik sporiji, poput drugih virtualnih strojeva.
  • JIT kompajler- ovo je dodatni kod, što za neke programere predstavlja dodatnu glavobolju.

Glavni nedostaci ART-a u usporedbi s Dalvikom

  • Povećanje količine aplikacija.
  • Povećano vrijeme instalacije

U suvremenom svijetu tehnologije i kratica nitko nije iznenađen novim nazivima i kraticama. Međutim, postoji problem: obični korisnici nisu uvijek u potpunosti svjesni što je njihov gadget naučio nakon ažuriranja. Programeri nas rijetko oduševljavaju detaljnim opisima inovacija i novih tehnologija, a iznimno je rijetko pronaći neko jasno objašnjenje na službenim stranicama - u najboljem slučaju, korisnik će pronaći samo kratak opis s još nerazumljivijim izrazima.

Uvijek pokušavamo pomoći korisnicima da razumiju nove uređaje i tehnologije, pa smo odlučili vama, našim čitateljima, detaljnije reći o ART tehnologiji, a također napraviti malu usporedbu s poznatim virtualnim strojem Dalvik.

Što je runtime aplikacije (virtualni stroj)?

Rasprava o Dalviku i ART-u je nemoguća bez razumijevanja osnova, pa prvo razgovarajmo o virtualnom stroju kao takvom. Vrijeme izvođenja aplikacije je skup instrukcija koje se izvršavaju za prevođenje koda aplikacije u kod koji računalo može razumjeti. Virtualni stroj se koristi čak i bez da je dio glavnog programa. Općenito, svi "upravljani" računalni jezici (Java u Androidu, C# u Windows Phoneu, ECMAScript u preglednicima) zahtijevaju takvo okruženje za razumijevanje jezika na kojem je aplikacija napisana.

Android koristi virtualni stroj za izvršavanje DEX datoteka (slično EXE u Windowsima), koje se nalaze u APK arhivi Android aplikacije. Dvije su prednosti ovakvog rješenja. Prvo, svaka aplikacija radi na sustavu izoliranom od jezgre OS-a, tako da se potonji čini više ili manje sigurnim. Drugo, korištenje virtualnog stroja otvara put za višeplatformske aplikacije, odnosno aplikacija se može pokrenuti na ARM pametnom telefonu, MIPS tabletu ili x86 računalu.

“Kao što znate, sve ovo vrijeme Android je koristio Dalvik virtualni stroj, s kojim su se vjerojatno susreli svi koji su se i malo udubili u značajke OS-a.”


Zašto uopće koristiti runtime aplikacije?

Već smo gore odgovorili na ovo pitanje. Nema sumnje da korištenje virtualnog stroja usporava izvršavanje aplikacija, ali ima nekoliko prednosti koje preokreću izbor u njegovu korist.

  • Virtualni stroj pokreće kod aplikacije treće strane u izoliranom okruženju. Posljedično, kod koji može oštetiti jezgru OS-a neće moći izravno komunicirati sa sistemskim datotekama, što će zaštititi sustav. Velika prednost korištenja virtualnog stroja je stabilniji i pouzdaniji rad glavnog sustava.
  • Kroz Google Play Store i druge izvore, programer distribuira APK datoteku svog programa, koja sadrži neprevedene upute koje će virtualno računalo “sastaviti” prije izvršenja. Ovo rješenje pruža veću kompatibilnost; u suprotnom, kod kompiliran za Snapdragon uređaje neće se moći izvoditi na Atom uređajima. Stoga virtualni stroj rješava problem s odredištem kompilacije.

Što je Dalvik i koji je njegov problem?

To je glavno pitanje. Dalvik se u Androidu koristi od prve verzije OS-a, od 2007. godine, a za sve to vrijeme dogodila se praktički jedna velika promjena - pojava “on-the-fly kompilacije” u Froyou, poznatijem kao JIT. Njegova glavna značajka je da je aplikacija potpuno kompajlirana kada korisnik otvori ili pokrene odgovarajuće upute. Ovo je vrlo koristan popravak, budući da su prije 2.2 sve aplikacije kompajlirane korak po korak, što je smanjilo brzinu; Jedini nedostatak ovog rješenja je da kada se program pokrene, dolazi do ozbiljnog opterećenja procesora.

Kako bi se izbjegao dodatni rad prilikom ponovnog pokretanja programa, sustav skuplja sve upute sastavljene tijekom korištenja aplikacije i šalje ih u predmemoriju koja je pohranjena u datotečnom sustavu s ekstenzijom *.ODEX (Optimized Dalvik EXecutable). Čim po drugi put pokrenete aplikaciju, Dalvik više neće kompilirati, već će u memoriju učitati podatke koji su već optimizirani za vaš uređaj. Međutim, pozivanje aplikacijske funkcije koja prije nije korištena uzrokovat će ponovno kompajliranje uputa. Ako u ovom trenutku sustav obavlja rad treće strane (na primjer, sluša glazbu ili ažurira aplikacije), tada se zbog preopterećenja procesora i ulazno/izlaznih podsustava mogu primijetiti primjetni trzaji i kočnice u memoriji. Tu na scenu stupa UMJETNOST.

Što je UMJETNOST i kako će spasiti svijet?

ART, ili Android RunTime (vrlo uvrnuto ime) novi je virtualni stroj koji je Google predstavio u Androidu 4.4 kao jedan od razvojnih alata (Dalvik se koristi standardno). Glavna razlika između novog okruženja za izvršavanje aplikacija je korištenje tehnologije unaprijed (AOT, "ispred vremena"). ART sastavlja sve upute za aplikaciju prije njenog pokretanja, tijekom procesa instalacije. Vrijeme potonjeg se povećava, kao i količina stalne memorije koju zauzima program, ali virtualni stroj više ne kompajlira trenutnu aplikaciju tijekom njenog izvođenja, što poboljšava udobnost pri aktivnom korištenju multitaskinga. Ipak, preporučljivo je imati više RAM-a, jer će ART u njega učitati i one upute za aplikacije koje možda nikada nećete koristiti.

Dalvik vs. UMJETNOST


Usporedimo ukratko dva virtualna računala


UMJETNOST je još uvijek eksperiment

Naravno, trenutno se ART samo testira i dostupan je samo za uređaje koji pokreću Android 4.4 i čipsete tvrtke Qualcomm. Međutim, sada se možete prebaciti s Dalvika na ART putem skrivenih razvojnih alata (izbornik se otvara nakon nekoliko dodira broja izrade u informacijama o uređaju). Imajte na umu da neće sve aplikacije moći raditi u ART-u bez dodatnih ažuriranja; Usput, prvo pokretanje u ART modu može trajati do 30 minuta.

Google je ART sada učinio dostupnim programerima, postavljajući pozornicu za potpuni prijelaz na ovaj virtualni stroj u budućnosti. To ne znači da je ART sada stabilan. Ovo je eksperiment i novi virtualni stroj možda nije spreman za svakodnevnu upotrebu.

S izdavanjem novih verzija Androida, ovaj OS je zahtijevao sve više memorije s izravnim pristupom (RAM). Prvi uređaji s njim imali su 256 MB RAM-a, no danas jedan gigabajt možda više nije dovoljan. Međutim, Google se posvetio optimizaciji i izdao Android 4.4 KitKat. Ova verzija operativnog sustava je brža, ali zahtijeva manje resursa. To je postalo moguće zahvaljujući prijelazu s Dalvik sustava na ART. U nastavku pročitajte o čemu se radi i zašto će pametni telefoni s Androidom 4.4 raditi brže na slabim procesorima.

Jedan od razloga popularnosti Googleovog mobilnog OS-a je relativna lakoća razvoja aplikacija za njega. Zahvaljujući tome, trgovina softverom Google Play brzo se napunila uslužnim programima. To je postalo moguće uz pomoć virtualnog stroja Dalvik koji je kod aplikacije pretvorio u nešto razumljivo procesoru mobilnog telefona ili tableta. Programeri pišu na način koji njima odgovara i ne moraju brinuti o tome koji je čipset u korisnikovom gadgetu: od Qualcomma, Intela, Mediateka, nVidije, Samsunga ili nekog drugog proizvođača.

Zbog činjenice da se kod aplikacije u hodu pretvara u nešto razumljivo za hardver gadgeta, programerima je vrlo zgodno kreirati vlastite programe. Ali zbog tog posrednika u obliku virtualnog stroja Dalvik, procesor uređaja mora obaviti nekoliko puta više radnji: pročitati kod, transformirati ga u nešto što je hardveru razumljivo, izvršiti ga i prikazati rezultat na ekranu. Posljedicu ovakve arhitekture mogao je primijetiti gotovo svaki vlasnik Android uređaja u vidu tromog sučelja. Kada pametni telefon nije napunjen igrama i izračunima, RAM je slobodan, ali jednostavno okretanje zaslona još uvijek uzrokuje sekundu odgode.

Google se s ovim problemom počeo boriti davno: prvi ozbiljniji korak bio je Project Butter, najavljen uz Android 4.1 Jelly Bean. Zahvaljujući njemu, operativni sustav je počeo nešto brže reagirati na radnje korisnika, ali općenito problem je ostao. Stoga je Google napravio i priprema ART - zamjenu za Dalvik virtualni stroj.

Za štoPotreban Androidvirtualanautomobil

Svaki program koristi mnogo standardnih radnji: prikazivanje slike na zaslonu, pisanje datoteka u memoriju, prijenos datoteka putem Bluetootha ili Wi-Fi veze. Kako bi programerima olakšao život, operativni sustav ima ugrađene funkcije za obavljanje ovih zadataka. Programer samo treba naznačiti u svojoj aplikaciji "kopirajte XXX datoteku na memorijsku karticu u UUU mapu." Nije ga briga kako se to radi ili koliko resursa sustava zahtijeva.

Programeri također često pišu "neispravne" programe koji imaju greške u kodu, "gube" memoriju i slično. Virtualni stroj vam omogućuje da izolirate pomoćne programe jedne od drugih i od jezgre operativnog sustava. Zahvaljujući tome, rušenje aplikacije ne utječe na OS i druge pokrenute programe. Bez toga, pogreška u uslužnom programu uzrokuje zamrzavanje cijelog sustava. Stariji korisnici možda se sjećaju kako su greške u aplikacijskom softveru dovele do "plavog ekrana smrti" u Windows 95 i 98 desktop operacijskim sustavima, koji nisu imali slične mehanizme virtualizacije.

APK datoteke koje korisnik preuzme iz trgovine Google Play ili bilo kojeg drugog poslužitelja su nekompilirani kod. Nijedno računalo to ne može jer jednostavno "ne razumije". Ako su uslužni programi isporučeni u obliku koji je već kompiliran i razumljiv hardveru, tada bi neki od njih radili, na primjer, na uređajima sa Snapdragon čipsetom, ali bi davali pogrešku kada bi se pokrenuli na gadgetima s Tegra čipovima.

Svaki proizvođač prilagođava Dalvik svom procesoru i hardveru. Zahvaljujući tome, isti program može raditi na gadgetima gotovo svih proizvođača bez uređivanja izvornog koda. Upravo iz tog razloga ne možete jednostavno instalirati novu verziju Androida na svoj uređaj, poput ponovne instalacije Windowsa.

Što se dogodiloDalvik i zašto zahtijeva zamjenu

Dalvik virtualni stroj (nazvan po islandskoj ribarskoj luci Dalvik) prisutan je u Androidu od lansiranja ovog operativnog sustava 2007. godine. Od tada je doživio samo jednu veliku promjenu: u Androidu 2.2 Froyo, kod iz APK-a transformiran je u strojni kod u hodu odmah nakon što je korisnik pokrenuo uslužni program. Prethodno se obrađivao redak po redak tijekom izvođenja programa na mobilnom uređaju. Novi pristup olakšao je pokretanje pomoćnih programa i njihov rad, ali je to utjecalo na zahtjeve za hardverskim resursima. A danas samo jedan gigabajt RAM-a možda nije dovoljan za brzi rad mobilnog telefona.

ŠtotakavUMJETNOST iKakoonaće pomoćiAndroid

ART virtualni stroj (skraćenica za Android RunTime - Android runtime environment) je još uvijek u eksperimentalnoj fazi, ali već ga možete isprobati u Androidu 4.4 KitKat. Korisnici uređaja s ovom verzijom OS-a mogu se prebaciti sa zadanog Dalvika na ART.

Glavna razlika između ovih virtualnih strojeva je pristup kompilacije. Ako Dalvik pretvara kod u stvarnom vremenu odmah nakon pokretanja uslužnih programa, tada ART to radi unaprijed tijekom instalacije. To znači produljenje vremena instalacije za pomoćne programe i veći otisak u flash memoriji uređaja. Ali to također znači brže pokretanje i smanjene zahtjeve za hardverskim resursima, posebice količinom RAM-a. Zato će Android 4.4 KitKat, prema Googleu, moći brzo i stabilno raditi na gadgetima s 512 MB RAM-a. Novi pristup pretvorbi koda također će smanjiti potrošnju baterije.


Usporedite glasnoću istih programa koristeći Dalvik (lijevo) i ART (desno)

Dalvik vs.UMJETNOST – usporedba

Sve u svemu, ART virtualni stroj obećava mnoga poboljšanja u odnosu na postojeći Dalvik. Prednosti i nedostaci svakog od njih mogu se vidjeti u tablici u nastavku:

Pretvara APK datoteke u CPU čitljiv kod u hodu, što zahtijeva manje flash memorije, ali aplikacijama treba više vremena za pokretanje

Pretvara APK datoteke u CPU čitljiv kod prije instaliranja. Ovo zahtijeva manje CPU resursa pri pokretanju i smanjuje vrijeme pokretanja programa

S vremenom se strojni kod sprema u predmemoriju, što dovodi do bržeg učitavanja mobilnog telefona

Predmemorija strojnog koda stvara se prilikom prvog pokretanja mobilnog telefona, zbog čega je potrebno puno više vremena da se uključi

Bolje odgovara uređajima s flash pohranom niskog kapaciteta jer predmemorija strojnog koda zauzima manje prostora

Troši značajno više flash memorije (10-20%), budući da osim APK datoteka pohranjuje kompajlirani strojni kod svakog programa

Stabilan i vremenski testiran

Mogu se pojaviti nove i eksperimentalne, neočekivane pogreške i nedostaci

Pokušajte eksperimentalnoUMJETNOST

Novi kompajler je u fazi razvoja i istraživanja, ali korisnici ga već mogu isprobati. Dostupan je vlasnicima uređaja koji koriste Android 4.4 KitKat i temelje se na Snapdragon čipsetu. Oni koji odluče isprobati novi proizvod trebali bi imati na umu da novi virtualni stroj može onesposobiti neke uslužne programe. Osim toga, nakon ponovnog pokretanja, pametnom telefonu može trebati i do pola sata da se pokrene - ovo je vrijeme koje će ART trebati za stvaranje predmemorije aplikacije.

Da biste omogućili ART umjesto Dalvika, morate ući u izbornik za programere. Da biste aktivirali potonje, morate otvoriti postavke pametnog telefona i otići na odjeljak "O telefonu". Tamo morate više puta kliknuti gumb "Broj verzije" dok OS ne prijavi dostupnost novog izbornika. Nakon toga trebate odabrati virtualni stroj koji ćete koristiti i ponovno pokrenuti uređaj.

Sve u svemu, testovi korisnika koji su se prebacili na ART pokazuju ukupno ubrzanje od približno 50% i produljenje trajanja baterije do 30%.

Da bi se "Alati za razvojne programere" pojavili u postavkama:


  1. Idite na “Postavke” -> “O telefonu”

  2. Na stavku “Build number” kliknite 7 puta zaredom (nakon nekoliko klikova na ekranu se pojavljuje poruka koliko puta još trebate kliknuti da bi se stavka “Developer Tools” pojavila u izborniku).

Kako odabrati ART (ili Dalvik) runtime

  1. Idite na Postavke -> Developer options -> Select runtime.

  2. Odaberite "Use ART" (ili "Use Dalvik")

Za sada ART runtime nije namijenjen široj javnosti, već onima koji žele eksperimentirati.

Nakon promjene vremena izvođenja na ART, telefon će se ponovno pokrenuti. Međutim, prvo će preuzimanje trajati dulje jer će Android aplikacije biti ponovno kompajlirane u strojne kodove. To omogućuje brže otvaranje i pokretanje aplikacija jer, za razliku od Dalvika, više ne zahtijevaju kompilaciju u stvarnom vremenu. UMJETNOST ima i nedostataka. Aplikacije će zauzimati više prostora (što i nije toliko značajno), malo duže se instalirati i zauzimati 10-20% više RAM-a. Osim toga, može doći do problema s radom nekih funkcija.

A uključivanje ART-a omogućilo nam je značajno povećanje brzine rada. Povećanje performansi povezano je, naravno, ne samo s ART-om, već i s uklanjanjem Android aplikacija iz firmvera koji su dodali Samsung i AT&T. Ionako nikada nisam koristio te aplikacije, ali bilo ih je nemoguće ukloniti iz izvornog firmvera pomoću redovnog uklanjanja programa.

Prerano je govoriti o stabilnosti, ali nakon dva dana korištenja telefona nisu pronađeni značajniji problemi. Osim toga, povratak na korištenje Dalvika jednako je jednostavan. Stoga preporučujem da iskusni korisnici isprobaju ovu inovaciju, jer sučelje sada radi glatko kao u iOS-u.

Jeste li probali ART? Jeste li osjetili povećanje brzine u usporedbi s Dalvikom?

Ažuriranje (25. lipnja 2014.)
ART testiranje nastavljeno je na telefonima Google Nexus S i Galaxy s3 (AT&T i747) na Androidu 4.4 - 4.4.2. Pritom je Galaxy SIII koristio firmware CyanogenMod 11 (Quantum 3.5), a Google Nexus S AOSP KitKat 4.4.2 Mod za Nexus S. Kod korištenja ART-a nisu uočeni problemi. I to unatoč činjenici da je firmware Quantum Kernel za Galaxy s3 optimiziran za Dalvik, a njegov programer ne preporučuje korištenje ART-a. Nema primjetnog povećanja performansi na Galaxy s3 pri korištenju svakodnevnih zadataka (iako bi pametni telefon trebao raditi brže zbog nedostatka kompilacije u stvarnom vremenu). Slično tome, na starom Google Nexusu S povećanje brzine nije vidljivo oku.

Najbolji članci na temu