Zamiennik dla emulatora Androida
Wysłany dnia 06 sierpnia 2011 o godzinie 19:08. Skomentuj!, kategorie: Inne, tagi: .

Każdy, kto zetknął się z pisaniem aplikacji na Androida miał pewnie styczność z jego emulatorem. Przypuszczam, że nie było/jest to miłe doświadczenie – jest on koszmarnie wolny. Ja nauczony doświadczeniem(nikłym, bo nikłym, ale jednak) przy aktualnym moim starciu z nim(dość owocnym swoją drogą) postanowiłem nie używać go. Mam telefon z tym systemem(Hero, o którym wspominałem), lecz chciałem go nie używać. Rozwiązanie, do którego doszedłem okazało się bardzo dobre.

Kiedyś wpadłem na projekt Android-x86, czyli portem Androida pod x86. Zachęcony opisem i zniechęcony dostępnością obrazów ISO tylko dla wersji 2.2 pogrzebałem dalej i znalazłem gotowe nightlybuildy tego systemu(aktualnie 2.3.4) już przystosowane do maszyn wirtualnych, czyli to, czego szukałem. Podziękować trzeba mariuz‘owi z zespołu Android-dev.ro. A więc instalujemy(tutaj znajduje się poradnik)!

Jakiś czas temu przestałem pisać projekty, które nie wymagają „zaawansowanej”(OpenGL 1.0 w górę :P ) grafiki na moim komputerze. Przerzuciłem się na development oparty na wirtualnych maszynach. Tak więc pisząc aplikację na Androida, jedna maszyna służy do deweloperki, druga do testowania. Dzięki temu, że system Googla wykorzystuje ADB do uruchamiania i debugowania aplikacji z komputera, jesteśmy w stanie bez większych przeszkód mieć dość wydajne środowisko.

Mając dwie wirtualne maszyny połączyłem je dodatkową kartą sieciową(„sieć wewnętrzna” w Virtual Boxie). Miałem problem z ustawieniem stałego adresu IP na Androidzie(tak szczerze powiedziawszy nadal nie wiem jak to zrobić), zamiast tego wykorzystałem dostępny w VBoxie serwer DHCP. Wywołanie jednej komendy

vboxmanage dhcpserver add --netname "nazwa naszej sieci" --ip 192.168.0.1 --netmask 255.255.255.0 --lowerip 192.168.1.1 --upperip 192.168.1.100

oraz ustawienie statycznego adresu IP na maszynie deweloperskiej rozwiązało sprawę. Android dostępny jest pod adresem 192.168.1.1. Teraz przed rozpoczęciem pracy wystarczy wywołać

adb connect 192.168.1.1

i dostajemy możliwość dostępu do telefonu przez ADB, a co za tym idzie – możemy debugować spod IDE bez włączania emulatora!

Niestety, to rozwiązanie ma kilka wad, a są to:

  • Brak imitowania rozmów telefonicznych, SMS-ów czy innych rzeczy GSM-only
  • Brak GPS
  • Brak GPRS/Wi-Fi(to powinno dać się rozwiązać przez PCI passthrough karty, jeśli takową mamy), tylko ethernet
  • Brak Bluetooth(to też powinno się dać rozwiązać)
  • Brak Android Marketu(jest zamiennik)
  • Brak kompasu czy akcelerometru.

Jeśli nie potrzebujemy tego, albo potrzebujemy tylko dla danej funkcjonalności, którą możemy napisać z użyciem emulatora, śmiało można użyć Android-x86. Jak dla mnie działa świetnie i nie będę się katował więcej emulatorem ;)

Dodaj komentarz

XHTML: Możesz użyć: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>