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

JavaOne 2011 San Francisco – 1/4

Ensimmäinen aamu JavaOnessa käynnistyi hassun Code Hard/Java Life musiikkivideon jälkeen Keynotella jossa puhui Intelin ja Oraclen edustajia, aiheena olivat tekniset asiat.

Intel osuus oli hieman pitkäveteinen tunti, mutta se on perinteisesti ollut aina mukana. Twitter kanavilla kyseltiin paljonko Intel maksoi tästä tunnin mainospuheestaan. Olihan siinä kuitenkin jotain kiintoisaakin, mm. suorituskyvyn kasvua virtuaalikoneiden ja Intelin raudan yhteistoiminnan suhteen. Doug Fisher Inteliltä lohkaisi myös mehukkaasti: Hardware without software is just heat. 😉

Vaivihkainen stealth julkistus koski Oraclen uutta NoSQL tietokantatuotetta. Tarkempia tietoja varmaan luvassa jatkossa..

Sitten alkoi mehukas osuus. Mark Reinhold puhui Java 7 piirteistä uusina joka ihmeellistä kyllä herätti kovat wow efektit yleisöstä. Ovathan ne koodaajan elämää helpottavia pieniä muutoksia mutta niitä on tullut itse jo käytettyä ja koulutettua reipas puoli vuotta, itseasiassa enemmänkin, joten osio lähinnä pitkästytti koska mitään uutta näkökulmaa ei tullut.  Yksi ahaa elämys syntyi: Jo kovin tutuksi tullut fork&join framework sopinee parhaiten eräajojen käsittelyyn, joita suomessakin jokunen firma vielä tekee reippaissa määrin. Kaikesta huolimatta version 7 uudistukset herättivät mielenkiintoista kyllä salissa ooh ja aah efektejä, ilmeisesti ne monelle eivät olleet vielä tuttuja. Kuulemma jossain ajetaan vielä softaa Java versiolla 1.0 😉

Heräsin vasta kun alettiin käsittelemään Java versiota 8 – ja 9.

Edit: Versio 8 tulossa siis vuonna 2013, kesäaikaan. Pieni viive jätetty julkaisuun jotta versioon 7 ehditään sertifioitua ja hyödyntää ennen seuraava. Ja Java 8 ainoat kaksi pääpiirrettä ovat mullistavia. Mitä enemmän kuulen niistä sitä enemmän pidän Lambda Expressioista ja Project Jigsawsta. Metka juttu oli myös sneak päivitys jotta Lambda Expressions on ylipäätään mahdollinen: rajapinnoissa voi nyt määritellä metodeita joille on oletustoteutus referoituna. Näin voidaan jatkossa lisätä rajapintoihin metodeita rikkomatta yhteensopivuutta aikaisemman koodin kanssa. Kun Java versiot 6 ja 7 ovat olleet evoluutiota, versio 8 on taas revolution, vallankumous, se tulee muuttamaan tapaa koodata ja tehdä ohjelmistoja reippaasti – positiiviseen scala ja mavenmäiseen suuntaan.

Pieni vilaus tuli myös Java 9 tuleviin piirteisiin. Java 9 todennäköisesti julkaistaneen vuoden 2014 tiimoilla, ja sen sisältöön tulee…

  • – Self-tuning JVM (virtuaalikone optimoi itsensä, tähän suuntaanhan on muutenkin menty)
  • – Improved Native Integration (JNIEnv on jo nähty, eteenpäin! 😉
  • – Big Data (Parempi tuki massiivisille muistimäärille kerrallaan)
  • – Reification (tyyppijärjestelmän ravistelua)
  • – Tail Calls/Continuations
  • – Meta-Object protocol
  • – Multi-Tenancy
  • – Resource Management
  • – Heterogenous Computer Models

Java EE 7 suunnitelmat ovat kunnianhimoisia: Speksi ulos ensi vuonna, Glassfish 4.0 referenssitoteutuksena. Java EE 7 sisältöhän voidaan tiivistää sanaan: pilvi. Mutta mukana myös mm. välimuistiratkaisujen standardointia. Pääteemana on kuitenkin PaaS – Platform as a Service. Muita tulossa olevia muutoksia on yhdenmukaistaminen ja yksinkertaistaminen – esim. Managed Beans konsepti laajennetaan CDI, EJB ja JSF beaneihin (nämä kai tehtiin jo EE 6:ssa) ja Pruning eli vanhojen ominaisuuksien poisto kuten Entity Bean ja JAX-RPC on yksi osa (tämäkin kai jo aloitetiin EE 6:ssa?)

Ai niin, ja itse konferenssista.. Väite oli että osallistujamäärä on tuplaantunut – viime vuoteen nähden. 400 sessiota lähistön hotelleissa neljän päivän ajan, puhujia 350 yrityksestä.. 9 miljoonaa java koodaajaa ympäri maailman. 3 miljardia mobiililaitetta joissa Java pyörii. Kiintoisaa..

JavaFX 2.0 meni Betasta General Availability moodiin, tosin sen saa tässä vaiheessa lähinnä windowsille 😉 MacOS X:ään tulossa developer preview. Netbeans beta 7.1 omaa suoraan JavaFX 2.0 tuen, ja tietysti JavaFX Scene Builder on uusi palikka jolla näyttöjä voi koostaa, siitä on early access versio liikkeellä. Ja tuolta löytyisi latailtavia ja ajettavia demoja http://www.oracle.com/technetwork/java/javafx/downloads/index.html ja http://download.oracle.com/javafx/2.0/overview/jfxpub-overview.htm

Jossain välissä ehdin pyörähtämään myös näyttelyalueella. Tavanomaisten epäiltyjen lisäksi haaviin jäi kaikenlaista kiinnostavaa suomalaisia projekteja ajatellen. Esim. CloudBees, JRebel, New Relic, ja MongoDB. Varsin uusia nämä eivät ole mutta mitä itselle jäi mieleen näistä:

– JRebel mahdollistaa hot deploy tuen ilman buutteja, käytännössä joka alustalla. Se asentaa tietysti uudet muutetut luokat mutta meikäläiselle demottiin myös tilannetta jossa luokan Spring annotaatioita muutettiin ja JRebel latasi dynamisesti muutetun luokan ja prosessoi annotaation, ja lopputuloksena MVC Controller mäppäytyikin uuteen osoitteeseen – ilman buuttia, resettiä tai redeployta. Kyselin hieman muistivuoto-ongelmista esim. tomcat palvelimissa, mutta minulle vakuutettiin että JRebel kun asentelee luokan kerrallaan, sillä saa tehdä tuhansia muutoksia ennen kuin on syytä käynnistellä palvelinta. Vaikutti kiinnostavalta.

– New Relic oli toinen kova juttu: käytännössä yhdistelmä agenttia ja seurantatyökalua joilla voi seurata web tai web service palvelinsovelluksen toimintaa. Kuvaus oli ’x-ray vision for your production web apps’. Katselin läpi demoa jossa seurattiin vasteaikojen jakautumisia eri kerroksissa – reaaliajassa ja graafisesti. Helppo hahmottaa missä vietetään aikaa ja missä on ongelmia.

– Pari muuta tuotetta oli CloudBees palelu, joka on pilvipalvelu josta voi vuokrata esim. JFrog, SonarSource, New Relic, MongoDB, etc palveluita. Kehitysympäristön infran voi vuokrata ja skaalata tarpeen mukaan. – sekä MongoDB NOSQL tietokanta jossa data kuvataan JSON tapaan.

Ja lisää huomenissa.. Kohden seuraavaa sessiota matka käy.