Dalvik

Úr Wikipediu, frjálsa alfræðiritinu
Stökkva á: flakk, leita
Dalvik
Hönnuður Dan Bornstein
Stýrikerfi Linux
Verkvangur Android
Notkun Sýndarvél
Leyfi Apache License 2.0
Vefsíða

Dalvik er heiti sýndarvélar Android-stýrikerfisins frá Google. Dalvik er innbyggður hluti Android, sem er aðallega notað í meðbærum tækjum svo sem farsímum, töflutölvum og netfartölvum. Áður en Android-forrit eru keyrð, er þeim breytt yfir á hið samþjappaða Dalvik Executable (.dex)-snið, sem er hannað fyrir kerfi með takmarkað vinnsluminni og örgjörvahraða.

Dalvik-sýndarvélin er, eins og Android að öðru leyti, opinn hugbúnaður. Upprunalegur höfundur hennar er Dan Bornstein, sem nefndi hana eftir bænum Dalvík þaðan sem hann er ættaður að langfeðgatali.[1][2]

Bygging[breyta | breyta frumkóða]

Ólíkt flestum sýndarvélum og sönnum Java-sýndarvélum sem eru staflavélar, er Dalvik-sýndarvélin gistursvél.

Skiptar skoðanir eru um hvor gerðin, staflavélar eða gistursvélar, hefur fleiri kosti[3] Almennt talað þurfa vélar af staflagerð að nota skipanir til að hlaða gögnum á staflann og meðhöndla þau, og þurfa því fleiri skipanir en gistursvélar til að inna sama hástigsmálið, en skipanirnar í gistursvél verða að kóða uppruna- og áfangastaðarskrárnar og eru því yfirleitt stærri. Þessi mismunur skiptir mestu máli fyrir sýndarvélartúlka en hjá þeim er oppkóða-tímaveiting yfirleitt dýr sem og aðrir þættir er varða tímanlega þýðingu.

Tól er nefnist dx er notað til að breyta sumum (en ekki öllum) Java-klasa-skrám yfir á .dex-sniðið. Margir klasar rúmast í einni .dex-skrá. Strengir og aðrir fastar sem notaðir eru í marg-klasa-skrám koma aðeins fyrir einu sinni í .dex-frálagi til að spara pláss. Java-bætakóða er einnig breytt yfir í annarskonar skipanamengi sem Dalvik-sýndarvélin notar. Óþjöppuð .dex-skrá er venjulega nokkrum prósentum minni en þjappað Java-gagnasafn sem leitt er út frá sömu .class-skrám.[4]

Dalvik-keyrsluskrám kann að vera breytt aftur þegar þær eru settar upp á meðbæru tæki. Í skyni frekari beztunar kann bætaröð að vera skipt út í vissum gögnum, einfaldir gagnastrúkturar og falla-söfn kunna að vera innlínu-tengd og tómum klasahlutum kann að vera skammhleypt, til dæmis.

Frá og með Android 2.2 hefur Dalvik tímanlegan þýðanda[5].

Þar eð Dalvik er beztuð fyrir litlar minniskröfur, hefur hún viss séreinkenni sem greina hana frá öðrum stöðluðum sýndarvélum:[6]

Ennfremur hefur Dalvik verið hönnuð þannig að tæki geti keyrt fleiri en eitt tilvik sýndarvélarinnar á skilvirkan hátt.[7]

Klasasafn[breyta | breyta frumkóða]

Dalvik lagar sig hvorki að Java SEJava ME klasasafna-prófílum [8][9] (þ.e. Java ME-klasar, AWT og Swing eru ekki studd). Hún notar sitt eigið safn í staðinn[10] á grundvelli hlutmengis Apache Harmony-Java-fullbúningarinnar.

Leyfismál[breyta | breyta frumkóða]

Dalvik er sögð vera fullbúning af gerð hreins-herbergis-hönnunar en ekki þróun ofan á staðlaða Java-keyrsluskrá, sem þýðir að hún erfir höfundarréttartengdar leyfistakmarkanir hvorki frá staðal- né opins-uppruna-útgáfum Java-keyrsluskráa.[11]

Dalvik er gefin út undir Apache 2-leyfinu.

Tilvísanir[breyta | breyta frumkóða]

  1. Dagbókarfærsla sem tilgreinir tilkomu heitisins
  2. „Google Calling: Inside Android, the gPhone SDK". onlamp.com. Skoðað 2008-02-05.
  3. Shi, Yunhe; Gregg, David; Beatty, Andrew og Ertl, M. Anton 2005-06-11, „Virtual Machine Showdown: Stack Versus Registers". . Skoðað 2009-12-22.
  4. Bornstein, Dan 2008-05-29, „Presentation of Dalvik VM Internals". (PDF) . (Google).: 22. Skoðað 2010-08-16.
  5. „Nexus One Is Running Android 2.2 Froyo. How Fast Is It Compared To 2.1? Oh, Only About 450% Faster". . 2010-05-13. Skoðað 2010-05-21.
  6. Rose, John 2008-05-31, „with Android and Dalvik at Google I/O". . Skoðað 2008-06-08.
  7. Google 2009-04-13, „What is Android?". . Skoðað 2009-04-19.
  8. „Google's Android SDK Bypasses Java ME in Favor of Java Lite and Apache Harmony". . (infoq.com). 2007-11-12. Skoðað 2009-05-31. „Í stað þess að legga til fulla útgáfu Java SE eða Java ME hefur Google farið aðra leið í tvennum skilningi. Í fyrsta lagi er takmarkað hlutmengi kjarnapakka Java lagt til. (...) Þar með dregur Android dám af öðru Google-verkefni, GWT, sem er þróað í Java en styður ekki allan JDK."
  9. „Alternative to Point2D". . (Droid Tutorials). 2010-02-12. Skoðað 2010-02-17. „Given that AWT is not supported in Android API, the Point2D class, which is useful for writing 2D graphics, is missing either."
  10. „Package Index". . (Open Handset Alliance). Skoðað 2009-05-31.
  11. Stefano Mazzocchi 2007-11-12, „Dalvik: how Google routed around Sun’s IP-based licensing restrictions on Java ME". . Skoðað 2010-08-16.

Tenglar[breyta | breyta frumkóða]

Snið:Android