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]

Ó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]

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]

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]

  1. Dagbókarfærsla sem tilgreinir tilkomu heitisins
  2. „Google Calling: Inside Android, the gPhone SDK“. onlamp.com. Skoðuð 2008-02-05 .
  3. Shi, Yunhe (2005-06-11). „Virtual Machine Showdown: Stack Versus Registers“. Skoðuð 2009-12-22 .
  4. Bornstein, Dan (2008-05-29). „Presentation of Dalvik VM Internals“ (PDF). Google. Skoðuð 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ðuð 2010-05-21 .
  6. Rose, John (2008-05-31). „with Android and Dalvik at Google I/O“. Skoðuð 2008-06-08 .
  7. Google (2009-04-13). „What is Android?“. Skoðuð 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ðuð 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ðuð 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ðuð 2009-05-31 .
  11. Stefano Mazzocchi (2007-11-12). „Dalvik: how Google routed around Sun’s IP-based licensing restrictions on Java ME“. Skoðuð 2010-08-16 .

Tenglar[breyta]

Snið:Android