2014. november 30., vasárnap

Android x86 + VirtualBox emulátor helyett (+felbontás beállítása)

Android x86 + VirtualBox emulátor helyett (+felbontás beállítása)

Ha az ember Androidra fejleszt, és épp nincs a keze ügyében megfelelő eszköz, akkor jól jön az emulátor. De aki emulátort használ, arra is rájön, hogy ennek is megvannak a maga korlátai. Most hogy van HAXM és x86-os image-ek, szerencsére már nem olyan lassú, de pl. emulátoron nem érhető el a Google Play, és ennek folyományaként pl. push üzeneteket sem lehet emulátoron tesztelni. Ilyenkor hasznos az android x86 projekt (http://www.android-x86.org/), mivel az innen letöltött cd image-ekből simán telepíthetünk egy teljes értékű androidot VirtualBox-ba.

Ha telepítettük a rendszert, parancssorból csatlakozhatunk hozzá adb-vel, és ugyanúgy használhatjuk, mint egy valódi, USB-n csatlakoztatott eszközt. Erről itt van bővebb leírás: http://www.android-x86.org/documents/debug-howto

Eddig az egyetlen problémám az volt a rendszerrel, hogy csak tablet-es alkalmazásokat tudtam rajta tesztelni, mivel a 'portrait' állású activity-k esetén fektetve jelenik meg a kép, és az irányítás is elromlik. Szerencsre most erre is találtam megoldást itt: http://twigstechtips.blogspot.hu/2013/02/android-x86-how-to-change-screen.html . Röviden annyi a lényeg, hogy hozzáadhatunk a virtuális géphez saját felbontásokat, amiket aztán ki lehet választani boot előtt. Érdemes ezeket felvenni a boot menüben is, ahogy az a leírásban olvasható. Annyival egészíteném ki az ott leírtakat, hogy ha a grub configot akarjuk piszkálni, akkor debug módban indítsuk a rendszert, mert másként nem látszik. Nekem legalábbis az alt+f1-es terminál ablakban /mnt alatt nem volt ott.

Így most van egy 4.4-es virtuális gépem, amin induláskor kiválaszthatom a felbontást, és minden szempontból úgy fejleszthetek rajta, mint egy valódi eszközön. Ráadásul mivel jó gép van alatta, gyorsabb is mint a telefonom, nem kell a fejemet kapkodni, stb. tehát amit amúgy tudnék fizikai eszközön tesztelni, lehet azt sem fogom annyira erőltetni, mert így kényelmesebb. 

#blog

5 megjegyzés:

  1. Köszi, épp most egy Android alkalmazás backendjén dolgozom. A projektet átvettük egy másik fejéesztőcsapattól, és push notificationökig még nem jutottam el, de van tipped hogyan tudom megmondani a backupnak, hogy csak a teszteszköz kapjon pushnotificationt? Kel lokálisan telepítenem valami GCM servert? Bármilyen tippnek örülök, köszi :)

    VálaszTörlés
  2. Mivel több ez a felállás a Genymotionnél? A hardvermentes tesztelésnél az számomra az etalon, többek között a sebesség, a Play Services és a "just works" működése miatt.

    Egyébként a GCM-hez csak akkor kell PS, ha az új API-t használod. A gcm.jar működik nélküle is, persze mazochizmus 2014-ben azt használni :)

    VálaszTörlés
  3. Richárd Kovács a GCM alapvetően unicast küldést tud (még akkor is meg kell nevezned egyesével a címzetteket, ha multicast üzenetet szórsz ki), így az egész a backenden múlik.

    VálaszTörlés
  4. Richárd Kovács Igen, GCM-nél meg kell adnod a device id-jét, mikor küldesz neki. Ha kell Java mintakód, vagy segítség szólj, épp most csináltam ilyet.

    Zsolt Váradi Én próbáltam Genymotion-t, de a telepített virtuális gépen nem találtam Play Store-t. Találtam egy leírást, ahol volt egy link egy image-re, azt feldobtam rá. Ott volt Play Store, de nem működött. De leeht én bénáztam el valamit. Amúgy valami rémlik, hogy telepített VBox-ot is, tehát a Genymotion szerintem ugyanaz a VBox-ban futtatott Android x86, csak köré van rakva egy keret. De ez csak tipp, nem biztos.

    VálaszTörlés
  5. Valami ilyesmi, bár az elforgatás, GPS, hálózat, webkam, stb. kiegészítések miatt mégis egy kicsit több.

    VálaszTörlés