Cześć.
Zetknąłem się ostatnio z mało przyjemnym problemem, otóż mój komputer po prostu okazał się za słaby na emulator androida, który jest dostarczony wraz z ADT.
Mój sprzęt to dwurdzeniowy procesor 1,8 GHz i 2GB pamięci – emulator uruchamia się około 10 minut (na architekturze x86) ewentualnie nie uruchamia się w ogóle. I oczywiście piszę o tych urządzeniach z dołu listy.
Problem jest o tyle spory, że zostałem zmuszony do napisania kilku programów pod Androida i środowisko do testowania muszę mieć.
Mały research pokazał mi że mogę uzyskać takie środowisko, a ponad to, może działać ono zdecydowanie szybciej.
Odpowiedzią jest zainstalowanie Androida samemu. Ale wersji „sportowanej” na architekturę x86 – dzięki czemu procesor nie będzie się pocił podczas translacji poleceń, jak to bywa w przypadku Emulatora z ADT.
Ok, pierwszym krokiem będzie ściągnięcie VirtualBoxa – google pomoże Ci to zrobić. Następnie potrzebny nam jest obraz odpowiednio spreparowanego Androida, znajdziemy go tutaj – Link do Download’u. Na tej stronie też wybieramy jaką wersję Androida chcemy mieć – ja używam Android-x86-4.4.
Gdy już mamy obraz na dysku, uruchamiamy VirtualBoxa i klikamy na przycisk New po lewej stronie ekranu.
Type: Linux
Version: Other Linux (32 bit)
W kolejnych krokach kreatora przydzielamy mu minimum 512 MB pamięci.
Tworzymy dysk o sugerowany przez kreatora rozmiarze.
Gdy skończymy tworzyć maszynę, klikamy prawym na nią i wchodzimy w Settings. Tam przechodzimy do Storage, klikamy na ikonkę z płytą CD. Klikamy drugą (po prawej stronie) płytkę CD i wskazujemy obraz Androida.
No i potem uruchamiamy wirtualną maszynę. Pojawi się okno, które przeprowadzi z nami instalację:
Teraz będziesz poproszony o stworzenie nowej partycji:
Następnie tworzymy partycję, oto kroki:
Po kliknięciu Write, będziesz musiał potwierdzić swój wybór. Gdy to zrobiłeś, naciśnij Quit, co pozwoli Ci powrócić do okna wyboru dysku:
Na następna dwa pytania odpowiadamy twierdząco – i zaczyna się proces instalacji – czekamy ;) Gdy się skończy, instalator spyta Cię, czy chcesz uruchomić Androida czy może zrestartować maszynę. Ty ją wyłącz „iksem” w prawym, górnym rogu.
Przejdź do Settings->Storage i odmontuj dysk CD. Potem uruchom Androida :) i koniec! Powinien Ci się uruchomić android – poprosić o wybranie języka itp. Gdy będzie szukał sieci, naciśnij „Skip”.
Gratuluję, zainstalowałeś androida :)
Teraz żeby połączyć się z Eclipse’a do tej maszyny wirtualnej musisz ją pierw wyłączyć i potem ustawić w Settings -> Attached to: Host only Adapter.
Uruchom ponownie Androida – gdy się uruchomi, naciśnij kombinację klawiszy lewy alt + F1, co pozwoli Ci wejść do konsoli i tam wpisz netcfg i enter. Zobacz i zapisz sobie adres IP jaki dostałeś przy interfejsie eth0 :)
Możesz powrócić do trybu graficznego poprzez alt + F7 ;)
Nie wyłączając Androida, proszę uruchom Eclipse’a. Uruchom CMD i przejdź w nim do folderu TwojeADT\sdk\platform-tools i w tym folderze wpisz
1 | adb.exe connect tutajAdresIPzAndroida |
. Prawdopodobnie w odpowiedzi dostaniesz komunikat „connected”. Kliknij w Eclipse na swoim projekcie prawym przyciskiem przejdź do Run as -> Run Configuration i w zakładce target zaznacz „always prompt to pick device”. Następnie kliknij apply i run.
Gdy klikniesz run, pojawi się coś takiego:
A w zaznaczonym miejscu, powinna być maszyna wirtualna :)
Zauważ że w takiej konfiguracji, w Androidzie nie masz połączenia z Internetem.
Prawdopodobnie możesz je mieć zmieniając w Settings->Network ustawienie z Host-only Adapter na NAT ;) tylko wtedy aby połączyć się z emulatorem musisz wpisać nie
1 | adb.exe connect twojeIP |
ale
1 | adb.exe connect localhost |
Oczywiście po zmienieniu ustawienia na NAT wejdź proszę do androida do konsoli (alt+F1) i wpisz netcfg w celu sprawdzenia czy uzyskałeś poprawny adres IP.
Jeśli masz IP poprawne, masz internet ale nie możesz połączyć się z z adb.exe to spróbuj poprzez PortForwarding przekierować port 5555.
Jeśli nie masz internetu i/lub połaczenia z adb.exe – przewertuj StackOverFlow.. :)
Mateusz Mazurek
Nie jestem pewien czy zachodzi 100% kompatybilność między kompilacjami andka na ARM i na x86. Wiem, że część oprogramowania hulającego na ARMach nie odpala się na prockach Intela (nie wiem czy ktoś jeszcze produkuje chipsety pod urządzenia z Androidem w x86). Pytanie czy (nie)działa to też w drugą stronę? Ogólnie wydaje mi się, że bez testów na systemach docelowych (czytaj na smartfonach) i tak się nie obejdzie.
A jeśli chcesz koniecznie bawić się w Andka na kompie to zobacz jeszcze BlueStacks.
Pozdrawiam
MJ
Cześć,
używając symulatorów/emulatorów zawsze, niestety musimy brać pod uwagę że one, z samej definicji już, są niepełne. I pisząc profesjonalne aplikacje na Androida nie możemy opierać się na symulatorach/emulatorach i urządzenia fizyczne są konieczne ;) BlueStacks sprawdzę :)
Pozdrawiam.