Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Savjet
  • Dalvik runtime ili umjetnost. Koji su mogući problemi s kompatibilnošću pri prelasku sa dalvik runtimea na umjetnost

Dalvik runtime ili umjetnost. Koji su mogući problemi s kompatibilnošću pri prelasku sa dalvik runtimea na umjetnost

Nova verzija Androida ima jednu važnu, iako ne baš uočljivu, na prvi pogled inovaciju - novu virtuelnu mašinu ART. Šta je ART, virtuelna mašina i zašto je nova, opisano je u blogu Aatifa Kana na engleskom jeziku, unosu sa kojeg smo odlučili da vam prevedemo. Izražavamo posebnu zahvalnost na pomoći Angela Bozhinova.

U savremenom svijetu tehnologija i skraćenica niko nije iznenađen novim nazivima i skraćenicama. Međutim, postoji problem: obični korisnici ne razumiju uvijek u potpunosti šta je njihov gadget naučio nakon ažuriranja. Programeri nas rijetko oduševljavaju detaljnim opisima inovacija i novih tehnologija, a izuzetno je rijetko naći neko razumljivo objašnjenje na službenoj web stranici - u najboljem slučaju, korisnik će pronaći samo kratak opis s još nerazumljivijim izrazima.

Uvijek se trudimo pomoći korisnicima da razumiju nove uređaje i tehnologije, pa je odlučeno da vam, našim čitateljima, detaljnije ispričamo o ART tehnologiji, ali i da napravimo malu usporedbu sa poznatom Dalvik virtualnom mašinom.

Šta je vrijeme izvođenja aplikacije (virtuelna mašina)?

Rasprava o Dalviku i ART-u je nemoguća bez razumijevanja osnova, pa prvo hajde da pričamo o virtuelnoj mašini kao takvoj. Vrijeme izvođenja aplikacije je skup instrukcija koje se izvršavaju za prevođenje koda aplikacije u kod koji računalo može razumjeti. Virtuelna mašina se aktivira čak i bez da je deo glavnog programa. Općenito, svi "upravljani" kompjuterski jezici (Java u Androidu, C # u Windows Phone-u, ECMAScript u pretraživačima) zahtijevaju takvo okruženje da bi razumjeli jezik na kojem je aplikacija napisana.

Android koristi virtuelnu mašinu za izvršavanje DEX datoteka (analogno EXE u Windows-u), koje se nalaze u APK arhivi Android aplikacije. Dvije su prednosti ovog rješenja odjednom. Prvo, svaka aplikacija radi na sistemu koji je izolovan od jezgra OS-a, tako da se potonji osjeća manje-više sigurno. Drugo, upotreba virtuelne mašine otvara put za cross-platform aplikacije, odnosno aplikacija može da radi na ARM pametnom telefonu, MIPS tabletu ili x86 računaru.

Kao što znate, sve ovo vrijeme u Androidu se koristila virtualna mašina Dalvik, s kojom su se vjerovatno susreli svi koji su se barem malo udubili u karakteristike OS-a.

Zašto uopće koristiti vrijeme izvođenja aplikacije?

Već smo odgovorili na ovo pitanje iznad. Bez sumnje, upotreba virtuelne mašine usporava izvršavanje aplikacija, ali ima nekoliko prednosti koje naginju izbor u njenu korist.

  • Virtuelna mašina pokreće kod aplikacije treće strane u izolovanom okruženju. Stoga, kod koji može naštetiti jezgru OS-a neće moći direktno stupiti u interakciju sa sistemskim datotekama, što će zaštititi sistem. Ogroman plus korištenja virtuelne mašine je stabilniji i pouzdaniji rad glavnog sistema.
  • Preko Google Play Store-a i drugih izvora, programer distribuira APK fajl svog programa, koji sadrži neprevedena uputstva koja će virtuelna mašina „sagraditi” pre nego što se izvrši. Ovo rješenje pruža veću kompatibilnost; u suprotnom, kod kompajliran za Snapdragon uređaje neće raditi na Atom uređajima. Dakle, virtuelna mašina rešava problem cilja kompilacije.

Šta je Dalvik i koji je njegov problem?

Ovo je glavno pitanje. Dalvik se u Androidu koristi od prve verzije OS-a, od 2007. godine, a za sve ovo vrijeme dogodila se skoro jedna velika promjena - pojava u Froyou "kompilacije u pokretu", poznatijeg kao JIT. Njegova glavna karakteristika je da se aplikacija u potpunosti kompajlira kada korisnik otvori ili pokrene odgovarajuća uputstva. Ovo je vrlo korisna popravka, jer su prije 2.2 sve aplikacije kompajlirane korak po korak, što je usporilo performanse; jedina mana takvog rješenja je što se na početku programa ozbiljno opterećuje procesor.

Kako bi se izbjegao dodatni rad prilikom ponovnog pokretanja programa, sistem prikuplja sve instrukcije sastavljene tokom korištenja aplikacije i šalje ih u keš memoriju koja se pohranjuje u sistem datoteka sa ekstenzijom * .ODEX (Optimized Dalvik EXecutable). Čim ponovo pokrenete aplikaciju, Dalvik više neće kompajlirati, već će podatke koji su već optimizirani za vaš uređaj učitati u memoriju. Međutim, pozivanje funkcije aplikacije koja prethodno nije korištena dovest će do ponovnog prevođenja instrukcija. Ako u ovom trenutku sistem obavlja poslove treće strane (na primjer, sluša muziku ili ažurira aplikacije), tada zbog preopterećenja procesora i I/O podsistema memorija može biti primjetna trzaja i kočnice. Tu na scenu stupa ART.

Šta je ART i kako će spasiti svijet?

ART, ili Android RunTime (prilično krivo ime) je nova virtuelna mašina koju je Google predstavio u Androidu 4.4 kao jedan od programskih alata (Dalvik se koristi po defaultu). Glavna razlika novog vremena izvršavanja aplikacije je upotreba tehnologije Ahead-Of-Time (AOT). ART kompajlira sva uputstva za aplikaciju čak i pre pokretanja, tokom procesa instalacije. Vrijeme potonjeg se povećava, kao i količina trajne memorije koju zauzima program, međutim, virtuelna mašina više ne kompajlira trenutnu aplikaciju tokom njenog izvršavanja, čime se povećava udobnost kada se aktivno koristi multitasking. Međutim, preporučljivo je imati više RAM-a, jer će ART u njega učitati čak i ona uputstva za aplikaciju koje možda nikada nećete koristiti.

Dalvik vs. ART

Hajde da ukratko uporedimo dve virtuelne mašine

ART tokom eksperimenta

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

Google je sada učinio ART dostupnim programerima, postavljajući teren za potpunu migraciju na ovu virtuelnu mašinu u budućnosti. To ne znači da je ART već stabilan. Ovo je eksperiment i nova virtuelna mašina možda neće biti spremna za svakodnevnu upotrebu.

Bilo je prostora za mnoge promjene i poboljšanja. Većina njih odmah upadne u oči čak i običnom korisniku ovog sistema. Ovo je, naravno, instalacija aplikacije Hangouts kao standardnog messengera, redizajniranog menija za biranje i dodavanja Emoji tastature. Iskusni Android entuzijasti će sigurno iskusiti poboljšanje performansi u odnosu na starija Android izdanja. Međutim, ne bez skrivenih strana, koje bi, po logici, trebale biti interesantne samo programerima. Međutim, značaj jedne od ovih inovacija je posebno velik. Osim toga, uskoro će se odraziti na svakoga od nas, pa bi jednostavno bio zločin prešutjeti njegove detalje.

Vjerovatno su mnogi od vas čuli barem van uha da se u Android KitKat pojavio poseban mod. Njegova suština leži u bržem pokretanju aplikacije i stabilnijem i glatkom izvršavanju. Možda pokušaji da sami razumiju ovo pitanje nisu bili okrunjeni uspjehom. To nije iznenađujuće: riječi "virtuelna mašina" i "kompilacija" mogu svakoga uplašiti, posebno ako su informacije dobijene iz izvora na engleskom jeziku. Kako bismo riješili ovaj problem, odlučili smo da sami shvatimo suštinu problema, izlažući ga u najpristupačnijem obliku.

Neki osnovni koncepti

Prije nego što upoznate suštinu inovacije, morate dobiti ideju o nekim detaljima. Prvi je vrijeme izvođenja aplikacije. Jednostavno rečeno, ozloglašeni koncept je zbirka instrukcija koje se izvršavaju tokom rada aplikacije. Instrukcije, zauzvrat, prevode programski kod u kod koji sistem može pokrenuti. Shodno tome, apsolutno svim kompjuterskim jezicima je potrebno specifično okruženje za izvršavanje kako bi se pokrenule aplikacije napisane na njima.

Naš omiljeni Android operativni sistem koristi virtuelne mašine kao runtime okruženje, od kojih je prvi, Dalvik, lansiran još 2007. godine. Njoj dugujemo periodična zamrzavanja interfejsa i ponekad spora pokretanja aplikacija. Međutim, ovaj problem bi uskoro mogao postati dio historije.

Zašto virtuelne mašine?

Ova vrsta runtimea ima dvije bezuvjetne prednosti koje olakšavaju život ne samo programerima, već i nama korisnicima. Prva prednost je zaštita sistema. Nije slučajno što se virtuelna mašina zove virtuelna: njen rad je potpuno izolovan od operativnog sistema. Shodno tome, greška ili banalno zamrzavanje ni na koji način neće utjecati na performanse vašeg uređaja.

Drugi plus je unakrsna platforma. Virtuelna mašina će moći da pokrene aplikaciju čak i ako je kreirana na računaru.

Dalvik prednosti i mane

Dalvik je, kao i sve na ovom svijetu, nesavršen. Razlog povremenog trzanja sučelja je vrsta konverzije koda aplikacije u hardver. Ova mašina radi uživo, a ova vrsta kompilacije se zove Just-In-Time. Shodno tome, gotovo je nemoguće predvidjeti pojavu grešaka, jer se to može dogoditi u bilo kojem trenutku. Ovo je posebno vjerovatno prilikom prvog pokretanja, kada dio konvertovanog koda nije čak ni spremljen u keš memoriju.

Problem sporosti prvog lansiranja, inače, nije nimalo slučajan. To je zbog činjenice da sistem treba da sastavi sve datoteke potrebne za pokretanje aplikacije i učita RAM memoriju njima. U ovom konkretnom slučaju najviše pate uređaji s malom količinom RAM-a, za koje je proces učitavanja prepun, ako ne padom aplikacije, onda barem primjetnim kašnjenjima u njenom izvršavanju.

Kompilacija "u hodu" značajno opterećuje procesor, ali u isto vrijeme omogućava programerima da ne optimiziraju kod za svaki pojedinačni procesor i druge komponente uređaja.

Da bi se popravilo gore navedeno, poziva se nova virtuelna mašina, koja je uspjela da se zabilježi daleko od najzamršenijeg imena - Android Runtime. Ili u skraćenom obliku - ART.

Prednosti i nedostaci ART-a

Nova virtuelna mašina zaživela je sa Androidom 4.4 KitKat, ali joj na prezentaciji nije poklonjena dužna pažnja. Razlog za to je što je ART još uvijek u eksperimentalnoj fazi. Međutim, iako se Dalvik koristi kao zadana mašina, sada se možete prebaciti na Android Runtime.
Međutim, nemojte žuriti da to učinite. Prvo se morate upoznati sa karakteristikama nove verzije.

Najznačajnija prednost ART-a je nova vrsta kompilacije koja se zove Ahead-Of-Time. Čitaoci koji znaju engleski će vjerovatno odmah pogoditi o čemu se radi. A činjenica je da se proces pretvaranja koda u novu verziju provodi prije pokretanja aplikacije - čak i tokom instalacije. Shodno tome, odmah se pojavljuje nekoliko nedostataka, koji su, pošteno rečeno, vrijedni spomena. Ovo je, prvo, duži proces instalacije, a drugo, veći volumen konačne veličine aplikacije. Još jedan nedostatak je posljedica nezrelosti ART-a: virtuelna mašina trenutno ne radi sa svim aplikacijama.

Međutim, spisak zasluga je mnogo značajniji. To su, na primjer, glatkiji rad interfejsa i brže učitavanje aplikacija. Osim toga, budući da se proces kompilacije izvodi samo jednom, neće dodatno opteretiti procesor, što će dovesti do poboljšane autonomije uređaja.

Vlasnici uređaja koji koriste Android 4.4 sa Snapdragon procesorom mogu se prebaciti na ART virtuelnu mašinu u meniju programera.

Ishod

Razvoj ove tehnologije ima ogroman potencijal. Na mapi je razotkrivanje mita o sporosti i nestabilnosti Androida, koji ne samo da će oduševiti vlasnike uređaja pod njegovom kontrolom, već će i eliminisati najozbiljniji argument u debati od strane pristalica iOS-a.

U ovom trenutku, predstavnici Google-a nisu objavili vrijeme konačne implementacije i zamjene Dalvika sa ART-om. Voleo bih da verujem da će se to desiti vrlo brzo.

Ranije smo već pisali da virtuelna mašina ima Dalvik u formi se pojavio takmičar ART... Vrijeme je da popričamo detaljnije o tome šta je to i koje prednosti čekaju Android korisnika uskoro.

ART(skraćenica od termina " Android Runtime") je novo vrijeme izvođenja aplikacije napisano u C / C ++ koje se razlikuje od postojećeg u Android virtuelna mašina Dalvikčinjenica da su sve aplikacije u sistemu već kompajlirane, što znači da postoji potreba za JIT kompajler nestaje.

Na ovaj način, ART omogućava vam pokretanje aplikacija na različitom hardveru (wiz. ARM, x86) bez prethodne adaptacije od strane programera. Osim toga, potrebno je pola vremena za pokretanje aplikacija pod novim uvjetima. Ne bez nedostataka, od kojih je jedan povezan sa principom rada u uslovima ART... Ovo okruženje dovodi do činjenice da se sve potrebne informacije prevode u mašinski orijentisan jezik čak i tokom instalacije aplikacija ( AOT kompilacija), a to iziskuje dodatno vrijeme, zbog čega je cijeli proces instalacije jako rastegnut, a aplikacije zauzimaju više prostora, jer se kompajliraju cijelo vrijeme.

Mada ART i prisutan je u Android 4.4 KitKat ali zadana vrijednost je i dalje virtuelna mašina Dalvik. ART još uvijek je u razvoju, ali svi već mogu aktivirati novu tehnologiju:

Postavke -> Opcije programera -> Odaberite vrijeme izvođenja

Ako ste tako odlučili da testirate novo okruženje, onda ne zaboravite da prvo preuzimanje može potrajati i do 20 minuta, pa čak i više: sistemu će trebati dosta vremena da pređe na nove principe rada. Biblioteka libdvm.soće biti zamijenjen sa libart.so i ODEX datoteke u OAT. Ovo poslednje se može naći.

Recite sebi na šta da se prebacite ART u slučaju da prilagođeni ROM-ovi'S se ne preporučuju, jer može postojati problem nedosljednosti sa trenutnom verzijom Gapps aplikacija, što će dovesti do grešaka, pada sistema i onemogućiti rad na uređaju.

Od u Android 4.4 KitKat Budući da se radi samo o prototipu novog vremena rada aplikacije, prerano je donositi zaključke na osnovu trenutnih praktičnih rezultata. ART još nije uopšte optimizovan, ali već sada možemo reći da će u novim uslovima aplikacije biti brže, animacija će postati glatkija, a odziv na dodir ekrana osetljivog na dodir će se poboljšati. Osim toga ART moći će smanjiti opterećenje procesora: za rad većine procesa bit će potrebno koristiti samo dio jezgri. To će dovesti do efikasnije upotrebe ARM arhitektura big.LITTLE, što znači potrošnju energije Android uređaji se mogu smanjiti, a vrijeme rada može povećati.

Zapravo ART uključuje dva pozadinska kompajlera. I prvi i drugi jesu AOT (Ispred vremena) kompajleri, od kojih se jedan koristi za prepoznavanje mašinskog koda i rad sa GCC-om, cl.exe ( LLVM kompajler).

Utjecaj na programere

Čudno, ali za stvaranje aplikacija, prijelaz na ART ne bi trebalo da se odražava. Specifičnost novog okruženja je takva da ARTčita bajt kod za Dalvik, što znači da nećete morati stjecati nova znanja i vještine. Radovi će se izvoditi sa istim Java bytecode. S druge strane, AOT kompilacija ima jedan nedostatak: greške koje se javljaju na različitom hardveru. U tom smislu, programeri će morati testirati svoje aplikacije na više Android uređaja. U isto vrijeme, pretkompilacija će smanjiti moguću količinu posla i kreirati aplikacije sa ART to će biti moguće na bilo kom jeziku sa LLVM frontend... Odvojeno, vrijedi napomenuti pristup mašinskom kodu: programeri će imati više mogućnosti, ali u slučaju greške, gotov proizvod može biti štetan. Android uređaj. Posljednja važna tačka je vezana za upotrebu JNI- standardni mehanizam za pokretanje koda pod kontrolom virtuelne mašine Java, što je povezano sa osiguravanjem binarne kompatibilnosti.

Najvjerovatnije će programeri različitih prilagođenih slika za oporavak također morati pružiti novu opciju, sličnu onoj koja je omogućila čišćenje Dalvik skladiste.

Zaključak

Idi ARTće rezultirati performansama Android uređaja će se povećati, a broj kašnjenja će se smanjiti. Za sada vidimo samo probnu verziju novog runtimea aplikacije, ali ovo je već vrlo ozbiljan korak ka novim promjenama. Koliko brzo će tranzicija biti završena, još nije poznato.

Glavni nedostaci Dalvika u odnosu na ART

  • Dalvik sporije kao i druge virtuelne mašine.
  • JIT kompajler- ovo je dodatni kod, što za neke programere znači dodatnu glavobolju.

Glavni nedostaci ART-a u odnosu na Dalvik

  • Povećanje obima aplikacija.
  • Povećano vrijeme instalacije

Zdravo! Ako ne razumijete što će se promijeniti za korisnika kada promijenite vrijeme izvođenja iz Dalvik u ART, onda će vas ovaj post zanimati. Prije nego što govorimo o novom okruženju, hajde da pričamo o dobro poznatom Dalvik okruženju Definicija Dalvik Virtual Machine je virtualna mašina bazirana na registrima koju je razvio Dan Bornstein kao dio Android mobilne platforme. Čemu služi Dalvik virtuelna mašina? Dalvik ...

Zdravo!
Ako ne razumijete što će se promijeniti za korisnika kada promijenite vrijeme izvođenja iz Dalvik u ART, onda će vas ovaj post zanimati.
Prije nego što pričamo o novom okruženju, hajde da pričamo o dobro poznatom okruženju Dalvik.

Definicija

Dalvik Virtual Machine je virtuelna mašina zasnovana na registru koju je razvio Dan Bornstein kao dio Android mobilne platforme.

Čemu služi Dalvik virtuelna mašina?

Dalvik pokreće aplikacije i Java kod. Standardni Java kompajler konvertuje kod aplikacije, u početku u bajt kod, a zatim u fajlove sa ekstenzijom ".dex". Ove datoteke, zauzvrat, koristi Dalvik virtuelna mašina.

Zašto Google mijenja vrijeme izvođenja?

Glavni faktor za Google je brzina interfejsa. Svi znaju da je "korporacija" dobra već napravila jedan veliki korak u tom pravcu izdavanjem Androida 4.1 Jelly Bean. Kao što se sjećate, u ovoj verziji je najavljen Project Butter, koji je zaista poboljšao brzinu interfejsa (animacije). Ali Google se tu nije zaustavio i odlučio je promijeniti vrijeme rada aplikacije, oprostiti se od DalvikVM-a i početi raditi u ART okruženju.

Kako Dalvik funkcionira i kako će ART funkcionirati?

DalvikVM radi u realnom vremenu, odnosno pretvara kod u hardver "u hodu" (Just-In-Time). Dakle, veoma opterećuje procesor.
Ali ART pretkompajler će transformisati kod odmah nakon instalacije aplikacije.

prospretkompajler ART:
+ Povećajte brzinu obavljanja "teških" zadataka.
+ Omogućava vam da češće deaktivirate nekorištena jezgra procesora. Ovo može produžiti vijek trajanja baterije uređaja.

Naravno, postoje i nedostaci. Jedan, po mom mišljenju, glavni je povećanje veličine instaliranog programa. Naravno, vlasnici uređaja sa 32 GB memorije to ne osjećaju. Ali postoje i uređaji čak i sa 8 GB na ploči...

Zaključak

Vlasnici uređaja iz Nexus linije sa novom verzijom Android 4.4 KitKat OS-a već sada mogu vidjeti koje prednosti ima nova runtime aplikacija (ART). Možete se prebaciti s Dalvika na ART u postavkama za programere.
Ali trenutno se još ne zna kada će ART u potpunosti zamijeniti Dalvik.

Da se "Alati za programere" pojavi u postavkama:


  1. Idite na "Postavke" -> "O telefonu"

  2. Na stavku "Broj izrade" pritisnite 7 puta zaredom (nakon nekoliko klikova na ekranu se pojavljuje poruka koliko puta trebate pritisnuti da bi se stavka "Alati za programere" pojavila u meniju.

Kako odabrati ART (ili Dalvik) vrijeme izvođenja

  1. Idite na Postavke -> Opcije programera -> Odaberite vrijeme izvođenja.

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

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

Nakon promjene vremena rada na ART, telefon će se ponovo pokrenuti. U ovom slučaju, prvo preuzimanje će trajati duže, jer će Android aplikacije biti ponovo kompajlirane u mašinske kodove. Ovo omogućava aplikacijama da se brže otvaraju i izvršavaju, jer, za razliku od Dalvika, kompilacija u realnom vremenu više nije potrebna. ART također ima neke nedostatke. Aplikacije će zauzimati više prostora (što i nije toliko važno), instalirati će se malo duže 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 je značajno povećanje brzine rada. Povećanje performansi povezano je, naravno, ne samo sa ART-om, već i sa odlaganjem firmvera iz Android aplikacija koje su dodali Samsung i AT&T. Još uvijek nikada nisam koristio ove aplikacije, ali ih je bilo nemoguće ukloniti iz matičnog firmvera koristeći uobičajenu deinstalaciju programa.

Još je rano govoriti o stabilnosti, ali tokom dva dana korišćenja telefona nisu pronađeni značajni problemi. Osim toga, lako se vratiti na korištenje Dalvika. Stoga preporučujem isprobavanje inovacije za iskusne korisnike, budući da je interfejs počeo da radi glatko kao u iOS-u.

Jeste li probali ART? Osjećate povećanje brzine u odnosu na Dalvik?

Ažuriranje (25. jun 2014.)
ART je nastavio testiranje na Google Nexus S i Galaxy s3 (AT&T i747) telefonima koji koriste Android 4.4 - 4.4.2. Istovremeno, na Galaxy SIII je korišćen firmver CyanogenMod 11 (Quantum 3.5), a na Google Nexus S - AOSP KitKat 4.4.2 Mod za Nexus S. Nisu primećeni problemi prilikom korišćenja ART-a. I to unatoč činjenici da je firmver Quantum Kernel za Galaxy s3 optimiziran za Dalvik, štoviše, njegov programer ne preporučuje korištenje ART-a. Povećanje performansi na Galaxy s3 se ne osjeća kada se koriste svakodnevni zadaci (iako bi pametni telefon trebao raditi brže zbog nedostatka kompilacije u realnom vremenu). Isto tako, na starom Google Nexusu S povećanje brzine nije vidljivo oku.

Top srodni članci