2010-03-01 33 views
15

Jak mówi tytuł, jak "dobry" jest emulator Androida?Jak "dobry" jest emulator Androida?

Nie mam telefonu z Androidem, ale czy byłoby możliwe rozwijanie wyłącznie za pomocą emulatora jako środowiska testowego?

Moje pierwsze pytania o to:

  • jest emulator jak reaguje jak normalny telefon android (oczywiście to zależy od dokładnego telefonu, ale w ogóle)?
  • Czy istnieje sposób kontrolowania pamięci na emulatorze?
  • Czy ktoś miał problemy, które zostały oznaczone w telefonie, ale nie emulator? lub odwrotnie?
  • Jaka jest twoja normalna procedura testowania, aby przetestować w obu, lub rekursywnie rekursywnie i zadzwonić pod koniec?

Wszelkie uwagi będą mile widziane.

Dzięki,

Odpowiedz

7

Q: Czy emulator jak reaguje jak normalny telefon android (oczywiście to zależy od dokładnego telefonu, ale w ogóle)?
A: Absolutnie nie! Najgorszym przykładem jest trójwymiarowa emulacja oprogramowania.

P: Czy istnieje sposób sterowania pamięcią emulatora?
A: Proszę podać, rozmiar karty SD można konfigurować, pamięć RAM/VM ... Nie wiem.

P: Czy ktoś miał problemy, które zostały oznaczone w telefonie, ale nie na emulatorze? lub odwrotnie?
O: Każde urządzenie ma własne dostosowanie. W emulatorze można zmienić tylko rozdzielczość ekranu, ale należy zachować ostrożność: rozmiar ekranu Emulatora zależy od ustawionej gęstości pikseli. To, co może dobrze wyglądać na twoim wielkim emulatorze, może być zbyt małe na prawdziwym urządzeniu. I nie zapominaj, że palec jest znacznie większy i mniej dokładny niż kursor myszy.

P: Jaka jest twoja normalna procedura testowania, aby przetestować w obu, lub rekursywnie rekursywnie i zadzwonić pod koniec?
A: Funkcjonalność jest testowana podczas wdrażania głównie na (szybkim) urządzeniu, takim jak Nexus One. Prawdziwy test po wdrożeniu będzie na jak największej liczbie urządzeń. Również interfejs użytkownika (większość różnic)

Ponieważ mam urządzenie z najnowszym SDK, preferuję testowanie na urządzeniu. To nie jest konieczne do programowania aplikacji, ale proszę: nie publikuj aplikacji bez co najmniej jednej rundy testowej na prawdziwym urządzeniu :)

+2

Prędkość emulatora zależy w dużej mierze od urządzenia. Na MacProsie, którego użyłem do rozwoju, emulator jest szybszy niż prawdziwe telefony (z wyjątkiem Droid i NexusOne.) –

3
  1. Tak, emulator jest bardzo szybki.
  2. Tak, możesz ustawić rozmiar pamięci RAM celu, który chcesz emulować.
  3. Jestem pewien, że ktoś ma, ale ja nie.
  4. Zazwyczaj testuję na emulatorze podczas programowania, a następnie na moim G1, kiedy jestem gotowy na długoterminowe testowanie. Potem testuję na emulatorze sprawdzając zgodność z celami 1.5, 2.0 i 2.1.

Zob. here, na jakie cele opcji mogą być obsługiwane. Zauważ, że istnieje również narzędzie GUI do ich ustawiania.

+0

Ok, nigdy nie miałem G1 (pierwsza była Galaxy), ale w porównaniu z N1 emulator jest wolniejszy. Dobrze widzieć, że ktoś ma więcej zabawy z emulatorem niż ja – WarrenFaith

+0

Mam G1, HTC Hero i Nexus One tutaj, a emulator jest taki sam jak G1 i Hero, ten sam rodzaj prędkości, ale jak WarrenFaith mówi, że Nexus One jest znacznie szybciej dzięki temu procesorowi SnapDragon –

1

Aby odpowiedzieć na ogólne pytanie o to, jak "dobry" emulator jest potrzebny, należy spojrzeć na to, czym jest emulator.

Emulator to oprogramowanie (qemu), które może uruchamiać instrukcje uzbrojenia na komputerze programisty za pomocą emulacji. Oznacza to, że emulator uruchomi platformę Android podobną do tej, która działa na urządzeniu fizycznym. Ta konfiguracja jest lepsza niż użycie symulatora, w którym platforma jest kompilowana dla maszyny programującej, a nie dla docelowego sprzętu. Istnieje jednak szereg ograniczeń, takich jak

  • wsparcie peryferyjne - platforma mobilna zawiera liczbę żetonów towarzyszących, takich jak Bluetooth, WLAN, GPS, radio, dostęp do przyspieszania grafiki itp Wszystkie one wchodzą w interakcje z głównym Procesor w sposób, który nie jest przewidywalny i trudny do symulacji na emulatorze. Niektóre są obsługiwane w ograniczony sposób, takie jak dostęp do Internetu, podczas gdy inne nie są obsługiwane, takie jak bluetooth.
  • wydajność - emulator nie jest rzeczywistym procesorem i nie może korzystać z akceleratorów fizycznych dostępnych na rzeczywistym urządzeniu. Wykorzystuje również sprzęt komputera hosta do wielu rzeczy, co oznacza, że ​​dostęp do pamięci i podobne elementy zachowują się inaczej w porównaniu z testowaniem na rzeczywistym urządzeniu.

Zgodnie z ogólną zasadą, jeśli jest to możliwe, spróbuj wykonać jak najwięcej testów na urządzeniu, aby uniknąć niespodzianek. Emulator sprawdza się w takich sytuacjach, jak testowanie ogólnej funkcjonalności, wstępne testy w celu uniknięcia oczywistych błędów i sprawdzenie, czy układy i interfejs użytkownika wyglądają przyzwoicie na różnych rozmiarach ekranu. W przypadku jakichkolwiek testów lub zachowań krytycznych dla wydajności podczas interakcji ze światem zewnętrznym, takich jak interakcja sieciowa, emulator nie jest zalecany. Może ci powiedzieć, że twoja aplikacja ma poważne problemy, ale nie ufaj "wystarczająco dobrze" na emulatorze, aby była wystarczająco dobra dla prawdziwego świata.

1

Mam zamiar odpowiedzieć tylko na nr 3, ponieważ inne odpowiedzi zostały już uwzględnione.

Z pewnością istnieją pewne problemy, które występują tylko na emulatorze, a nie na samym urządzeniu. Jednym z dużych jest to, że tryb portu lotniczego po prostu nie działa na emulatorze; Internet działa mimo włączenia trybu lotniska.

Ponadto, jeśli używasz tylko emulatora giełdowego, nie możesz uzyskać dostępu do rynku, co oznacza, że ​​sposób, w jaki Twoja aplikacja może próbować współdziałać z nim, nie może być testowany za pomocą emulatora.

Wiem, że są inne mniejsze problemy, które napotkałem między rzeczywistym urządzeniem i emulatorem. Jest wystarczająco dużo rzeczy, które zdecydowanie zaleciłbym nie rozwijać wyłącznie na emulatorze.

0

Z emulatora tylko twoje badania będą miały więcej próbny test na pokrycie:

-Touch Sensor

Nie Ramki do wtyczki, aby symulować ruch czujnika/urządzenia, aparatu za pomocą kamery internetowej, itp

0
  1. Potrzebujesz pamięci do używania emulatora, takiego jak emulator AVD, emulator jest dobry do testowania, ale czasami może się zawiesić bez powodu.
  2. Tak, możesz zmienić te ustawienia wiele razy.
  3. Jakiś czas temu nie mogę naśladować akcelerometru, ale teraz mogę.
  4. Wolę przetestować moją aplikację na prawdziwym urządzeniu.Wolę testować moją aplikację na prawdziwych urządzeniach (jeśli moi frendowie nie mogą jej naprawić i testy JUnit działają, to nie powinno to stanowić problemu), ale testuję inny rozmiar ekranu na emulatorach.
Powiązane problemy