Kiihdytä Android kehitystäsi!

Jep, puuhaillessani Android III kurssin kanssa törmäsin hyvään artikkeliin. Uusimmissa Android kehitysympäristöissä on nimittäin pari lisäpiirrettä joilla saa emulaattoriin vauhtia, tietyissä olosuhteissa.

Android emulaattorihan on julmetun hidas. Se emuloi dalvik bytecode virtuaalikonetta linuxin päällä joka pyörii emuloidun arm prosessorin päällä. Tukkoista on. Intel on kuitenkin toimittanut virtuaalikoneen myös, jossa päästään lähemmäs rautaa jos ollaan Windows tai Mac alustoilla. Tähän saa erityisesti buustia kun asentaa ja kytkee HAXM managerin päälle, ja kytkee myös rautakiihdytetyn GPU emulaation päälle.  Jos koneessa ei ole tehoja tai hyvää kiihdytettyä grafiikkakorttia näistä ei juuri ole apua. Mutta jos näitä löytyy, saat kaiken irti.

Prosessi on helppo ja testattu: Avaa Android SDK asennustyökalu ja asenna sieltä Intel Atom virtuaalikone sekä HAXM (Intel Hardware Accelerated Execution Manager). Huom! Image on saatavana vain parille API versiolle, tällä hetkellä API 15 eli Android 4.03 ja API 10 eli Android 2.3.3 – mutta niillä pääsee jo pitkälle!

HAXM ei asennu automaattisesti, vaan asennusohjelma latautuu android sdk kansioon extras/intel alle. Asenna se. Jos asennus epäonnistuu, rauta ei ole yhteensopivaa.

 

Homma hoidossa? Hienoa, nyt voit palata Eclipseen tai muuten vain AVD manageriin ja luoda uuden virtuaalikoneen. Valitse siihen API Level 15 tai 10, Intel prossu, ja GPU kiihdytys päälle. Ei ole huono idea myöskään pajauttaa gigaa paria muistia jos sitä piisaa, tähän tapaan:

 

Homma hoidossa? GPU emulaatio päällä snapshotit eivät pelaa – mutta en käytä itse niitä muutenkaan epävakauden vuoksi ja nyt pitäisi käynnistymisen olla nopeampaa.

Ja perään se perinteinen ’lääkintöhallituksen varoitus’ – jos tapat koneesi asennellessasi näitä en kanna yhtikäs mitään vastuuta. Ja android softan testauksessa emulaattori on vain yksi väline, pitäisi aina testata aidolla raudalla. Mutta onhan tuo penteleen mukavaa että ensikierroksen testaus on nopeutunut silmin nähtävästi! Ensikäynnistys vei hetkisen edelleen, mutta toistuvat käynnistykset.. Omalla koneellani puhutaan n. 10 sekunnin ajasta. Ehkä 20 sekuntia että kaikki on käynnissä. Ja käyttö on yhtä nopeaa ja miellyttävää kuin Galaxy III:lla 😉 Tämä on hyvä vinkki myös jos puuhailet paljon mobiili web-sivustojen testausta ja puljaat virtuaalikoneiden kanssa. Puhutaan noin 2-3 kertaisesta nopeutuksesta vähintään jo ennestään nopeutuneeseen myllyyn.

 

Jep, ja loppuun lähdelinkki alkuperäiseen artikkeliin:

http://www.developer.com/ws/android/development-tools/haxm-speeds-up-the-android-emulator.html

Ja Android 3 kurssi on valmis ja kimaltelee jo kurssitarjonnassa sisältäen kaikkea hauskaa kuten NFC ja Face Detection 😉

http://www.tieturi.fi/kurssit/kurssi.html?course=85000210&category=Mobiiliteknologiat

 

Mainokset

Uusi parempi Android emulaattori – turbo konepellin alla ;)

Wohoo! Yksi Android kehityksen tuskapaikoista on ollut hidas emulaattori. Emulaattori on kyllä muuten hyvä ja kattava mutta sen ARM emulaatio Intel tai AMD prosessorin päällä on kuin sitkeässä kaurapuurossa olisi uimassa.

Nyt on julkaistu uusi versio emulaattorista:

http://android-developers.blogspot.ca/2012/04/faster-emulator-with-better-hardware.html

Parannuksiin kuuluu mm. parempi tuki natiivi GPU:lle, eli kiihdytettyä grafiikkaa. Parempi tuki rautatason antureille ja aidon Android raudan käyttämiselle anturi-syötteen antamiseen emulaattorin läpi, tulossa myös Bluetooth ja NFC herkkuja. Paras uusi jippo on kuitenkin CPU emulaation parannus liukulukuaritmetiikassa, jossa lupaillaan monenkertaisia parannuksia vanhaan verrattuna. GPU kiihdytys + CPU kiihdytys = sulavampi emulaattori. Tuon antamani linkin takaa löytyy aika vakuuttavaa videota siitä mitä nämä merkitsevät.

Aikalailla näitä onkin jo odotettu. Miten niihin pääsee käsiksi? Päivittämällä Android SDK:nsa mukana tulevalla update työkalulla uusimpaan versioon. Oikea versio on Android 4.0.3.r2 (Sorry, vanhemmat simulaattorit eivät saa kiihdytyshyötyjä, ensitestaus täytyy tehdä uusimmalla).

Ennen päivitystä:

Jälkeen päivityksen:

Nopea käyttökokemus uudesta emulaattorista: On se silminnähtävästi nopeampi. Ei se edelleenkään ole mikään raketti. Mutta siedettävämpi, vähemmän tuskallinen, ja tekee etenkin raskaat asiat paremmin kuin edellinen. Heitän karkean arvion että noin tuplanopea aiempaan nähden, ja raskaat operaatiot nopeutuneet enemmän. Aito rauta on yhä vielä tuplaten nopeampaa. Mutta suunta on oikea, ja vanhalla emullakin kun on tultu toimeen, niin tämä on suorastaan luksusta arjen keskellä 😉

Jep, ja tottakai aidolla raudalla testaaminen edelleen välttämätöntä – mahdollisimman monessa. Pentele miten monimuotoisia ovatkaan Android laitteet kun on Galaxy Notea ja Asus Transformeria, Motorolan Xoomia ja Samsungin Nexusta ja saati sitten vanhoja vempaimia.. Versioista 1.0:sta 4.0:seen liikenteessä 😉 Mitäs, noin 800 000 sovellusta tarjolla alustalle. About saman verran uusia laite-aktivointeja per kuukausi. About 4 miljoonaa Honeycomb tai Ice Cream Sandwich tablettia liikenteessä. About 200 miljoonaa Android puhelinta. Siinä sitä on kenttää sovelluksille, asiakkaille ja näkyvyydelle. Ja haastetta kehittäjälle testauksen kannalta.

Puffataan nyt vielä tulevaa Android Programming II koulutusta, sinne nimittäin mahtuisi vielä osallistujia mukaan. http://www.tieturi.fi/kurssit/kurssi.html?course=83903932&category=Mobiiliteknologiat&city=Helsinki&training=14.05.2012 – tässä koulutuksessahan erityisyytenä saa Android käyttöliittymäsuunnittelua koskevan kirjan mukaansa normalin kurssimateriaalin lisäksi. Varasin itsellenikin yhden, ja Amazonin posti niitä juuri tiputti nipun meille.

P.S. Nostalgiasyistä piti ladata ja asentaa C64 emulaattori viikonloppuna Xoom tablettiini, ja hienostihan se pelitti! Melkein herahti tippa silmään naputellessa C64 basic käskyjä ja ohjelmapätkiä ja muistutellessa mieleen poke ja peek komentoja 😉