13.11.2007

Androidin lupaava alku

Olen alkanut tutustua Googlen Android -alustaan. Katselin YouTubesta löytyvät, Androidia esittelevät videot. Android vaikuttaa erittäin lupaavalta. Androidissa on pohjalla Linux-ydin. Ytimen päällä on natiivit kirjastot, kuten WebKit, OpenGL|ES ja SGL. Natiivikirjastojen päällä on Javalla toteutettu sovelluskehys, jota ohjelmat käyttävät. Ohjelmat kehitetään siis Java-kielellä ja niitä ajetaan Dalvik-virtuaalikoneessa.

Vaikka ohjelmointi tehdään Java-kielellä, Androd ei pohjaudu standardiin Java-alustaan. Androidin ohjelmointirajapintaan on otettu vain osa Java API:sta. Tarpeettomat paketit on jätetty pois ja huonosti soveltuvien tilalle on kehitetty uusia. Esimerkiksi grafiikkarajapinnat on jätetty pois ja korvattu uusilla. Mielestäni ihan järkiratkaisu. Java API on kuitenkin historian saatossa paisunut aika massiiviseksi, kun intressit on eri aikoina ollut vähän eri suuntaan. Mielestäni mikään kännykköille tarkoitettu Javan versiokaan ei olisi ihan suoraan sopinut, koska niitäkään ei varsinaisesti ole tarkoitettu korvaamaan natiivia ohjelmistokehitystä.

Ohjelmia ajava Dalvik virtuaalikone ei ole ihan oikea Java VM. Dalvikissa on uutta ainakin ohjelmien tiedostoformaatti nimeltään Dalvik executable (.dex), jonka pitäisi olla muistinkulutuksen suhteen optimoitu.

Imuroin Android SDK:n työkoneelle. SDK on saatavilla Linuxille, Macille ja Windowsille. Harvinasta ja mukavaa on että, kerrankin Maccikin on tuettu.

Emulaattorin komentoriviparametreista päätellen se tukeutuu QEMU-emulaattoriin. QEMU:n käyttö mahdollistaa sen, että emulaattori voi ajaa aidosti samaa ohjelmistoa kuin laitteetkin. Eli mikäli olen oikeassa, se tarkoittaisi sitä, että vaikka koodaisi natiiviohjelmistoa niin emulaattorille ei tarvitse tehdä erillistä käännöstä vaan sama binääri toimisi niin emulaattorissa kuin itse laitteessakin. Tämä olisi esimerkiksi Symbianiin verrattuna selvä parannus.

Leikin vähän aikaan SDK:n mukana tulleella emulaattorilla. Androidin käyttöliittymä ja mukana tulleet sovellukset vaikuttivat hyvin toimivilta. Emun käyttöliittymä oli mukavan nopea. Saapa nähdä ovatko oikeiden laitteiden käyttöliittymät yhtä nopeita. Moni C-koodari ei tietenkään usko, että Javalla voi tehdä mitään nopeasti. Olen tästä erimieltä.

Ohjelmistoalustan arkkitehtuuri näyttää silmääni kaikin puolin järkevältä. On hyvä ajatus, että ohjelmistokehitys nojaa puhtaasti moderniin korkean tason kieleen. Java on luonnollinen valinta kieleksi. Java on pääasiassa helppoutensa ja siitä johtuvan paremman tuottavuuden ansiosta korvannut C:n ja ennenkaikkea C++:n lähes kaikkialla missä suorituskyky ei ole absoluuttisen kriittistä.

Ei kommentteja: