Czym jest emulator Androida i jak wykorzystuje się go do testowania?

Discover how to deliver better software and systems in rapidly scaling environments. Join our Community

Zastanawiasz się, czym jest emulator Androida i jak może pomóc w testowaniu Twojej aplikacji? W tym artykule znajdziesz wszystko, co musisz wiedzieć, wraz z przykładami.

Według danych z 2019 roku w użyciu znajdowało się ponad 2,5 miliarda aktywnych urządzeń z Androidem. Ta liczba stale rośnie. Możesz mieć dostęp do telefonu lub urządzenia z Androidem. Ale co, jeśli go nie masz? Właśnie w tym może pomóc emulator Androida — symuluje system operacyjny i interfejs Androida, dzięki czemu możesz testować swoją aplikację na Androida. 

W tym artykule przedstawiono szczegółowe informacje o emulatorach Androida, ich działaniu i zastosowaniu, a także o tym, w jakim stopniu mogą one poprawnie testować aplikacje na Androida i aplikacje internetowe.

Omówię:

Czym są emulatory Androida?

Emulatory Androida to oprogramowanie zaprojektowane w celu naśladowania sprzętu i oprogramowania urządzenia mobilnego z Androidem na potrzeby programowania i testowania. Emulatory Androida działają na komputerach Mac lub PC, dzięki czemu możesz tworzyć aplikacje przeznaczone na Androida przy biurku.

Zrzut ekranu emulatora Androida na komputerze Mac
Emulatory Androida mogą działać zarówno na komputerach Mac, jak i PC, umożliwiając każdemu użytkownikowi testowanie aplikacji na Androidzie.

Granie lub testowanie gier to popularny powód korzystania z emulatorów Androida, ale można ich również używać do uruchamiania dowolnej aplikacji dostępnej w Sklepie Google Play. Jeśli na przykład uruchomisz aplikację Instagram w emulatorze, możesz przesyłać zdjęcia bezpośrednio z komputera — co w innym przypadku byłoby niemożliwe.

Aby wiedzieć, co potrafi emulator Androida, należy najpierw zrozumieć, jak działa. 

Jak działają emulatory Androida?

Emulatory Androida, takie jak BlueStacks, NoxPlayer czy Genymotion, to aplikacje instalowane na komputerze stacjonarnym, które mogą symulować sposób działania oprogramowania i sprzętu urządzenia z Androidem. Korzystanie z emulatora pozwala graczom grać w gry mobilne

Zrzut ekranu BlueStack
BlueStacks, przedstawiony na tym zrzucie ekranu, jest przykładem popularnego emulatora Androida.

na komputerze PC, a testerom tworzyć i testować aplikacje na Androida w czasie rzeczywistym. 

Emulatory naśladują architekturę systemu, który jest celem emulacji. Dlatego, zależnie od potrzeb, można znaleźć emulatory różnego rodzaju oprogramowania i sprzętu.

Czym jest szybki emulator (QEMU)?

Zrzut ekranu szybkiego emulatora
Szybki emulator służy do przyspieszania emulacji za pomocą wirtualizacji wspomaganej sprzętowo.

Jako narzędzie o otwartym kodzie źródłowym Szybki emulator działa na wielu hostach lub stacjach roboczych, takich jak systemy operacyjne i procesory, aby emulować inne systemy operacyjne i procesory gościa.

QEMU zasila emulatory Androida, naśladując sprzęt urządzenia gościa w celu dopasowania go do urządzenia hosta. Działa jako program na komputerze i tłumaczy interfejs binarny aplikacji gościa, aby dopasować go do urządzenia hosta.

Tłumaczenie jest złożone i czasochłonne, przez co emulacja działa niezwykle wolno. Jeśli jednak architektury urządzeń hosta i gościa są podobne, tłumaczenie staje się łatwe i szybkie. 

Jeśli urządzenia hosta i gościa mają podobną architekturę instrukcji, QEMU pomija proces tłumaczenia binarnego. Natychmiast uruchamia urządzenie gościa bezpośrednio na procesorze urządzenia hosta – proces ten jest znany jako wspomagana sprzętowo wirtualizacja.

Dopasowanie architektury urządzeń odbywa się za pomocą hipernadzorcy. 

Get Free Access
Get regular tech leadership wisdom for delivering better software and systems.
Get Free Access

Have an account? Log In

Jak działają hipernadzorcy?

VMware, przykład zrzutu ekranu hipernadzorcy
VMware jest jednym z przykładów hipernadzorcy.

Hipernadzorca, czyli monitor maszyny wirtualnej (VMM), to oprogramowanie, które pozwala urządzeniu, na przykład  komputerowi, obsługiwać wiele maszyn wirtualnych gościa poprzez współdzielenie jego zasobów, takich jak moc obliczeniowa i pamięć. Hipernadzorcy pomagają korzystać z zasobów systemu i zapewniają większą mobilność IT między różnymi serwerami.

Istnieją dwa główne typy hipernadzorców: typ 1, czyli działający bezpośrednio na sprzęcie, oraz typ 2, czyli hipernadzorcy działający w systemie operacyjnym. 

  • Hipernadzorcy typu 1 działają jak lekkie systemy operacyjne uruchamiane bezpośrednio na sprzęcie hosta. 
  • Hipernadzorcy typu 2 działają jako oprogramowanie w systemie operacyjnym, podobnie jak inne aplikacje i programy komputerowe, umożliwiając uruchamianie aplikacji na Androida za pośrednictwem oprogramowania.

Przed 2017 rokiem architektura ARM systemu Android wymagała tłumaczenia z emulatora Android Developer Studio, aby dopasować ją do większości architektur używanych w komputerach osobistych.

System Android wydał wersję Developer Studio 25.3.0, która unowocześniła emulator, umożliwiając mu usprawnienie wirtualizacji za pomocą protokołu wspomagania sprzętowego. Oznacza to, że do przeprowadzania wirtualizacji wspomaganej sprzętowo potrzebny jest hipernadzorca, przy czym należy pamiętać, że różne systemy operacyjne komputerów PC obsługują różne hipernadzorcy.

Firma Intel używa Hardware Acceleration Execution Manager, HAXM, jako elementu hipernadzorcy dla platform Windows PC i macOS, podczas gdy system Linux korzysta z Kernel-based Virtual Machine, KVM.

Interfejs binarny aplikacji Android x86 obsługuje akcelerację sprzętową na różnych komputerach PC. Jeśli jednak chcesz przyspieszyć wirtualne działanie urządzenia, ten emulator Androida wymaga zainstalowania i włączenia hipernadzorcy.

Akceleracja sprzętowa pozwala emulatorowi Androida uruchamiać urządzenie wirtualne z prędkością zbliżoną do tej osiąganej przez używany procesor.  

Jak skonfigurować emulator Androida

Po wydaniu wersji 25.3.0 system Android udostępniał emulator osobno od narzędzi SDK. Konfiguracja emulatora Androida może być trudna, ale poniżej przedstawiamy krótki zarys tego procesu. 

Wymagania sprzętowe

Potrzebujesz pakietu Android SDK w wersji 26.1.1 lub nowszej. Twój komputer PC lub laptop powinien mieć procesor 64- lub 86-bitowy, aby współpracować z emulatorem Androida.

Jeśli korzystasz z systemu Android 8.1 lub jego nowszych wersji, musisz mieć kamerę internetową zdolną do rejestrowania obrazu w rozdzielczości 720p.

W przypadku większości urządzeń emulator prosi o zezwolenie na akcelerację sprzętową wydajności urządzenia, a do tego potrzebny jest hipernadzorca Intel HAXM w wersji 7.2.0. 

Użytkownicy platform Linux i Windows potrzebują dodatkowych elementów urządzenia, ale zależy to od używanych procesorów.

  • W systemie Linux użytkownicy mogą korzystać z wirtualizacji AMD z rozszerzeniami SIMD zestawu 3.
  • W systemie Windows PC użytkownicy mogą korzystać z procesorów AMD i Android Studio w wersji 3.2 lub nowszej, które współpracuje z interfejsem API hipernadzorcy systemu Windows.

Użytkownicy procesorów Intel mogą korzystać z technologii Intel VT-x oraz obsługi Intel 64 i funkcji Execute Disable (XD) Bit.

Po zainstalowaniu emulatora Androida możesz uzyskać dostęp do Menedżera urządzeń wirtualnych Androida (AVD Manager).

Menedżer urządzeń wirtualnych Androida (AVD)

Zrzut ekranu Menedżera urządzeń wirtualnych Androida (AVD)
Menedżer urządzeń wirtualnych Androida umożliwia użytkownikom zainstalowanie interfejsu binarnego aplikacji odpowiadającego architekturze używanego procesora.

Menedżer AVD umożliwia konfigurowanie i dostosowywanie urządzeń z Androidem.

Zawiera wstępnie skonfigurowane profile telefonów, tabletów i telewizorów – każdy z nich został zaprojektowany specjalnie dla danego producenta. Umożliwia dostosowanie możliwości zewnętrznych i rozmiaru ekranu oraz importowanie wybranego profilu.

Sklep Google Play wraz z pakietem testów zgodności jest jednak dostępny na ograniczonej liczbie urządzeń – tylko tych, które są zgodne z programem zgodności systemu Android.

Menedżer AVD umożliwia zainstalowanie na urządzeniu wirtualnym interfejsu binarnego aplikacji zalecanego przez emulator, którego architektura odpowiada architekturze używanego procesora.

Konfiguracja weryfikacji AVD pozwala zmieniać zdefiniowane profile programowe lub sprzętowe oraz konfigurować ustawienia urządzenia, takie jak nazwa i orientacja.

Ostatecznie emulator uruchamia specyfikację urządzenia wirtualnego i umożliwia korzystanie z dodatkowych elementów sterujących oraz wprowadzanie ustawień, takich jak geolokalizacja, opóźnienie sieci, obracanie urządzenia, czujnik odcisków palca, aparat, stan baterii i inne. 

Urządzenia wirtualne umożliwiają zapisanie instancji w stanie, w którym zostały zamknięte, dzięki czemu można wznowić pracę od miejsca, w którym została wcześniej przerwana.  

Jak emulatory Androida są wykorzystywane do testowania?

Przed wprowadzeniem zmian do gałęzi programiści testują kod w potokach. Po szybkim teście jednostkowym za pomocą środowiska IDE rozpoczynają się testy instrumentalne i funkcjonalne.

Emulator Androida umożliwia wykonywanie testów instrumentalnych, na przykład sprawdzanie, czy kod obsługuje podstawowe zasoby i pliki właściwe dla aplikacji, a także testowanie funkcjonalności zewnętrznych zależności.

Emulatory pomagają również w testowaniu wydajności aplikacji, aby sprawdzić, czy interakcje przebiegają płynnie, a aplikacje wykorzystują zasoby urządzenia w granicach określonych ograniczeń. Aby uzyskać dokładne wyniki, należy zmierzyć możliwości procesora i układu graficznego urządzenia.

Emulatory Androida pozwalają aplikacjom działać jedynie z prędkością zbliżoną do natywnej. Nie należy więc oczekiwać od nich dokładnie takich samych wyników jak w przypadku urządzeń natywnych. Co gorsza, na urządzeniach wirtualnych nie można wiarygodnie porównywać wydajności aplikacji na Androida z wynikami innych testów porównawczych.

Nie ma niezawodnego rozwiązania zastępczego, które pozwalałoby testować aplikacje natywne na podobną skalę za pomocą emulatorów Androida. Do przeprowadzania złożonych testów międzyprzeglądarkowych interfejsu użytkownika i funkcjonalności potrzebnych jest wiele rzeczywistych urządzeń, aby można było testować aplikację w przeglądarkach Chrome, Firefox, Safari i innych. 

Inżynierowie korzystają z platform automatyzacji testów, takich jak Espresso i Appium, aby tworzyć skrypty testowe i wykonywać je na różnych urządzeniach z Androidem w celu spełnienia określonych standardów zgodności. 

Emulator Androida: zalety i wady

Emulatory Androida naśladują rzeczywiste urządzenia z Androidem. Mają jednak również pewne ograniczenia. 

Zalety

Niektóre możliwości emulatora Androida obejmują szybki transfer danych i zgodność z fizycznymi czujnikami, takimi jak akcelerometry.

  1. Szybki transfer danych

Emulatory Androida pomagają przesyłać dane szybciej i wydajniej niż urządzenia fizyczne podłączone za pomocą USB.

Emulator oferuje funkcję przeciągania i upuszczania, która pozwala przechowywać pliki .apk na urządzeniu wirtualnym z poziomu stacji roboczej lub komputera, dzięki czemu programiści mogą szybciej i skuteczniej testować aplikacje.

  1. Zgodność z fizycznymi czujnikami 

Emulatory Androida są przydatne, jeśli korzystasz z fizycznych czujników, takich jak akcelerometry. Podczas testowania danego elementu aplikacji, który w dużej mierze opiera się na czujnikach, łatwiej jest dostosować ustawienia za pomocą rozszerzonych elementów sterujących emulatora.

More Articles

Wady

Niektóre ograniczenia emulatorów Androida obejmują wymagania dotyczące procesora ARM, wykorzystanie miejsca na dysku, złożoność akceleracji sprzętowej oraz brak niezawodności w odwzorowywaniu interakcji z aplikacją.

  1. Wymagania dotyczące procesora ARM

Większość nowoczesnych komputerów PC lub laptopów korzysta z architektury Intel x86, a najczęściej spotykanym chipsetem Androida jest ARM v7a. Pamiętaj, że w celu zapewnienia szybkiej emulacji architektury procesora hosta i gościa muszą być zgodne. Bez urządzenia zawierającego procesor ARM emulacja działa więc słabo, szczególnie w przypadku większości urządzeń z Androidem dostępnych na rynku.

  1. Miejsce na dysku

Menedżer AVD tworzy osobne katalogi do przechowywania danych urządzenia wirtualnego, pamięci podręcznej oraz danych z kart SD. Jedno urządzenie wirtualne zajmuje ponad 3 GB całkowitego miejsca na dysku i może ulec awarii, jeśli podczas uruchamiania zabraknie wystarczającej ilości wolnego miejsca.

  1. Złożoność akceleracji sprzętowej

Akceleracja sprzętowa poprawia wydajność, jednak skonfigurowanie tego procesu jest złożone nawet dla zaawansowanych programistów. Czasami przyspieszenie sprzętowe prowadzi do całkowitego przestoju systemu lub jego awarii.

  1. Brak niezawodności

Gdy stawką jest zrozumienie interakcji aplikacji ze środowiskiem urządzenia hosta, emulatory Androida okazują się niezawodne.

Na przykład trudno jest poznać procesy aplikacji działające w tle, wygląd interfejsu i poziomy jasności & oraz sposób, w jaki aplikacje reagują na różne gesty dotykowe. 

Jakie są najlepsze emulatory Androida?

Jeśli chodzi o wybór emulatora Androida do Twojego projektu, dostępnych jest wiele świetnych opcji, takich jak GameLoop i MEmu. Tutaj znajdziesz listę najlepszych emulatorów Androida dostępnych na rynku wraz ze wskazówkami, które z nich sprawdzą się w przypadku Twoich konkretnych potrzeb.

Jeśli korzystasz z systemu Linux, nasze porównanie emulatorów Androida dla systemu Linux pomoże Ci znaleźć opcję, która dobrze współpracuje z Twoim systemem operacyjnym.

Podsumowanie

Emulatory Androida zrewolucjonizowały możliwości urządzeń i doświadczenia użytkowników. Służą do wielu celów, takich jak testowanie aplikacji i granie na dużych ekranach.

Emulator Androida może być wartościowym dodatkiem do Twoich urządzeń elektronicznych, ponieważ pozwala jednocześnie łączyć różne aspekty wszystkich Twoich urządzeń.

Dzięki idealnemu emulatorowi Androida możesz zwiększyć możliwości i funkcjonalność swoich urządzeń, a także poprawić jakość korzystania z nich.

Powiązany podcast, który możesz przeczytać/odsłuchać: TESTOWANIE URZĄDZEŃ MOBILNYCH NOWEJ GENERACJI (Z ERANEM KINSBRUNEREM Z PERFECTO)

Jason Boog
Over his 15-year career, Jason Boog has worked as a QA tester, QA analyst, and Senior QA Analyst on video games, commercial sites, and interactive web applications. He spent more than a decade building out the QA team and process as Director of Quality & Client Support at a full-service digital agency.
Follow the author:

You may also like