Dalvik
| 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]
Efnisyfirlit |
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]
- Sýndarvélin var minnkuð svo hún tæki minna pláss.
- Fastaknippinu hefur verið breytt þannig að það noti aðeins 32 bita vísa til að einfalda túlkinn.
- Hún notast við sinn eigin bætakóða, ekki Java-bætakóðann.
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 SE né Java 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]
- ↑ Dagbókarfærsla sem tilgreinir tilkomu heitisins
- ↑ „Google Calling: Inside Android, the gPhone SDK“. onlamp.com. Skoðuð 2008-02-05 .
- ↑ Shi, Yunhe (2005-06-11). „Virtual Machine Showdown: Stack Versus Registers“. Skoðuð 2009-12-22 .
- ↑ Bornstein, Dan (2008-05-29). „Presentation of Dalvik VM Internals“ (PDF). Google. Skoðuð 2010-08-16 .
- ↑ „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 .
- ↑ Rose, John (2008-05-31). „with Android and Dalvik at Google I/O“. Skoðuð 2008-06-08 .
- ↑ Google (2009-04-13). „What is Android?“. Skoðuð 2009-04-19 .
- ↑ „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.“
- ↑ „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.“
- ↑ „Package Index“. Open Handset Alliance. Skoðuð 2009-05-31 .
- ↑ 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]
- Groklaw grein um málarekstur Oracle America gegn Google
- Dex-skráasniðið
- Dalvik VM OpCode kóðar
- Dalvik VM Internals - Kynning frá Google I/O 2008 eftir Dan Bornstein
- android-dalvik-vm-on-java er virkt verkefni sem gengur út á að þróa hreina Java-fullbúningu Android Dalvik-sýndarvélarinnar.
- Myndræn skýringarteikning af Android-stýrikerfinu