Mątwy to konfigurowalne wirtualne urządzenie z Androidem, które może działać zarówno zdalnie (przy użyciu ofert chmurowych innych firm, takich jak Google Cloud Engine), jak i lokalnie (na komputerach z systemem Linux x86).
Cele mątwy
- Uwolnij twórcę platformy i aplikacji od uzależnienia od sprzętu fizycznego przy opracowywaniu i sprawdzaniu zmian w kodzie.
- Replikuj oparte na frameworku zachowanie prawdziwego urządzenia, koncentrując się na wysokiej wierności , zachowując ścisłe dopasowanie do podstawowej struktury.
- Obsługa wszystkich poziomów API po 28.
- Zapewnij spójny poziom funkcjonalności na wszystkich poziomach interfejsu API, dostosowany do zachowania na sprzęcie fizycznym.
Włącz skalę:
- Zapewnij możliwość równoległego uruchamiania wielu urządzeń.
- Umożliwiaj równoczesne wykonywanie testów z wysoką wiernością przy niższych kosztach wejścia.
Zapewnij konfigurowalne urządzenie z możliwością dostosowania współczynnika kształtu, pamięci RAM, procesorów itp.
Porównaj mątwy z innymi urządzeniami
Mątwa i emulator Androida
Istnieje wiele podobieństw z emulatorem Androida , ale Mątwa gwarantuje pełną wierność frameworkowi Android (niezależnie od tego, czy jest to czysty AOSP, czy niestandardowa implementacja we własnym drzewie). W rzeczywistych zastosowaniach oznacza to, że należy oczekiwać, że mątwy będą reagować na Twoje interakcje na poziomie systemu operacyjnego, tak jak fizyczny telefon docelowy zbudowany z tego samego dostosowanego lub czystego źródła systemu operacyjnego Android.
Emulator Androida został zbudowany z myślą o ułatwieniu tworzenia aplikacji i zawiera wiele funkcjonalnych haczyków, które odpowiadają przypadkom użycia programistów aplikacji na Androida. Może to stanowić wyzwanie, jeśli chcesz zbudować emulator z dostosowanym środowiskiem Androida. Jeśli potrzebujesz urządzenia wirtualnego, które będzie reprezentatywne dla Twojej niestandardowej platformy/kodu frameworka lub Androida z wierzchołka drzewa, to Mątwa jest idealną opcją wirtualną. Jest to kanoniczne narzędzie reprezentujące aktualny stan rozwoju AOSP.
Mątwa i urządzenie fizyczne
Podstawowe różnice między urządzeniem wirtualnym mątwy a urządzeniem fizycznym dotyczą poziomu abstrakcji sprzętu (HAL) oraz oprogramowania współpracującego z dowolnym niestandardowym sprzętem. Z wyjątkiem implementacji specyficznych dla sprzętu, należy spodziewać się funkcjonalnie równoważnego zachowania między mątwą a urządzeniem fizycznym.
Jak mątwa może pomóc?
Z Mątwą możesz wchodzić w interakcję tak samo, jak z każdym innym urządzeniem z Androidem, którego możesz używać do debugowania. Rejestruje się jako normalne urządzenie poprzez adb i można z nim wchodzić w interakcję jak z urządzeniem fizycznym za pośrednictwem zdalnego pulpitu. Przypadki użycia są szerokie i mogą obejmować testowanie aplikacji, testowanie niestandardowej kompilacji systemu i nie tylko.
Ponieważ Cuttlefish dąży do pełnej wierności frameworka, można go używać do testowania funkcjonalnego frameworku lub aplikacji, w których nie ma fizycznych zależności sprzętowych niemożliwych do emulacji.
W jaki sposób mątwy są obecnie powszechnie wykorzystywane do testów?
Niektóre typowe zastosowania mątwy do testowania obejmują:
- CTS
- Zgodność ramowa
- Ciągłe testowanie integracyjne
- Niestandardowe zestawy testów
Czy mogę hostować mątwy w chmurze?
Tak, Cuttlefish natywnie obsługuje Google Cloud i planowana jest obsługa innych platform chmurowych.
Zaczynaj
Aby uzyskać wskazówki dotyczące tworzenia instancji mątwy opartej na AOSP, zobacz Korzystanie z mątwy .