středa 14. listopadu 2007

Google Phone Android obsahuje Google Javu: Dalvik

Poté, co Google ohlásil, že platforma pro mobilní telefony s názvem Android bude obsahovat Javu, pookřálo srdéčko všech Java programátorů a vyplázlo jazyk na Apple, jehož iPhone Javu nepodporuje. Předčasně.
Java v Androidu nazvaná Dalvik totiž neodpovídá ani standardu Java ME (Mobile Edition) určené do mobilních zařízení ani standardu Java SE (Standard Edition) určené pro počítače, ale obsahuje část balíků z Java SE packages (konkrétně z implementace Apache Harmony), balíky Apache Commons, HTTPclient, jUnit a vlastní balíky pro vykreslování uživatelského rozhranní, pro telefonování, posílání SMS a power management (v balících android.*), viz seznam balíků.
A co víc, Dalvik nepoužívá standardní formát souborů Javy (.class), ale má svůj optimalizovaný formát .dex, do kterého je potřeba .class soubory přeložit (případně použít plugin do Eclipse, který umí .dex soubory vyrobit rovnou).
Pro uživatele i vývojáře to znamená, že na Androidu nepoběží ani aplikace pro mobily ani pro stolní počítače, ale že bude aplikace pro Android nutné upravit. Už dnes je potřeba pro jednotlivé mobily aplikace upravovat a Dalvik situaci rozhodně neulehčí. Toho si je asi Google vědom a zřejmě i proto vypisuje soutěž o 10 milionů dolarů pro vývojáře aplikací pro Android.
V tomto kontextu nelze nevzpomenout Microsoft a jeho pokus vytvořit vlastní nekompatibilní verzi Javy (J++/J#), který skončil u dlouho se táhnoucího soudu, který nakonec skončil vítězstvím pro Sun a Microsoft se poté snah na poli Javy úplně vzdal.
Nicméně v tomto případě to nebude až tak jednoduché, protože Google jen vzal knihovny z projektu Harmony a dalších, použil stejný formát souboru se zdrojovým kódem, ale pokud Dalvik nebude označovat za Javu, je možné, že z právního hlediska bude vše v pořádku.
Nutno ale dodat, že za vzniklou situaci si do jisté míry může Sun sám svým přístupem a přílišnou konzervativitou v oblasti zavádění a přijímání standardů. Když od stolu vymyslí něco sám, tak je to učiněná katastrofa (EJB 2.0) nebo je technologickým leaderem někdo jiný a Sun pak se standardizováním nestíhá držet krok (Hibernate, Spring) a nebo v nejhorším případě standardní řešení mají nedostatky, které si jednotliví výrobci odstraňují po svém (Java ME) nebo poskytnou náhradu (SWT za Swing).
Z tohoto pohledu je pak Davlik jen bolestným logickým vyústěním.
Via: OnJava

4 komentáře:

  1. No ono to s tou upravou nebude tak zhave. Co jsem cetl, pujde jenom o elementarni preklad bytekodu, coz by si na svem PC zvladnul udelat kazdy (Googli utilitka je uz tusim taky venku).

    OdpovědětVymazat
  2. O překládání .class do .dex píšu v článku.
    Co se týká žhavosti: mě teda žhaví do běla, že si Google vyrobí vlastní verzi Javy, která není kompatibilní s ničím, jen sama se sebou...

    OdpovědětVymazat
  3. Ahoj Martinere :) mam dotaz. Bylo by mozne cast tveho textu o Dalviku pouzit pro http://wiki.androidforum.cz ? diky za info :) (staci mi napsat treba komentar sem..budu to tu sledovat : )

    OdpovědětVymazat
  4. Ano, text je možné použít s uvedením zdroje a odkazu.

    OdpovědětVymazat