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 |
[breyta] Bygging
Ó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]
[breyta] Klasasafn
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.
[breyta] Leyfismál
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.
[breyta] Tilvísanir
- ↑ Dagbókarfærsla sem tilgreinir tilkomu heitisins
- ↑ Google Calling: Inside Android, the gPhone SDK. onlamp.com. Skoðað 2008-02-05.
- ↑ Shi, Yunhe (2005-06-11). Virtual Machine Showdown: Stack Versus Registers. Skoðað 2009-12-22.
- ↑ Bornstein, Dan (2008-05-29). Presentation of Dalvik VM Internals (PDF). Google. Skoðað 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ðað 2010-05-21.
- ↑ Rose, John (2008-05-31). with Android and Dalvik at Google I/O. Skoðað 2008-06-08.
- ↑ Google (2009-04-13). What is Android?. Skoðað 2009-04-19.
- ↑ 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.”
- ↑ 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.”
- ↑ Package Index. Open Handset Alliance. Skoðað 2009-05-31.
- ↑ Stefano Mazzocchi (2007-11-12). Dalvik: how Google routed around Sun’s IP-based licensing restrictions on Java ME. Skoðað 2010-08-16.
[breyta] Tenglar
- 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