Wirtualne urządzenia z Androidem mątwy

Co to jest mątwa?

Mątwy to konfigurowalne wirtualne urządzenie z Androidem, które można uruchomić zarówno zdalnie (przy użyciu innych firm, takich jak ofiary chmurze Google Cloud Engine) i lokalnie (na maszynach Linux x86).

Cele z mątwy

  • Uwolnij programistę platformy i aplikacji od uzależnienia od sprzętu fizycznego w celu opracowywania i weryfikowania zmian w kodzie.
  • Replikować zachowanie ramowej opartej na rzeczywistym urządzeniu z naciskiem na wysoką wiernością utrzymując bliskie powiązanie z ramami rdzenia.
  • Obsługa wszystkich poziomów API po 28.
  • Zapewnienie spójnego poziomu funkcjonalności całej poziomów API, zgodnej z zachowania na fizycznym sprzęcie.
  • Włącz skalę:

    • Zapewnij możliwość równoległego uruchamiania wielu urządzeń.
    • Umożliwia jednoczesne 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ównanie mątwy z innymi urządzeniami

Mątwy i emulator Androida

Istnieje wiele podobieństw z Android Emulator , ale Mątwy gwarantuje pełną wierność z ramami Android (czy jest to czysty AOSP lub wdrożenie niestandardowych w swoim drzewie). W rzeczywistych aplikacjach oznacza to, że należy oczekiwać, że Cuttlefish będzie reagował na twoje interakcje na poziomie systemu operacyjnego, tak jak fizyczny cel telefonu zbudowany z tego samego niestandardowego lub czystego źródła systemu operacyjnego Android.

Emulator Androida został zbudowany wokół przypadku użycia, aby ułatwić tworzenie aplikacji i zawiera wiele funkcjonalnych zaczepów, które odwołują się do przypadków użycia programisty 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 Twojego niestandardowego kodu platformy/frameworka lub Androida typu tip-of-tree, to Cuttlefish jest idealną opcją wirtualną. Jest to kanoniczne narzędzie do reprezentowania obecnego stanu rozwoju AOSP.

Mątwy i urządzenie fizyczne

Podstawowe różnice między urządzeniem wirtualnym Cuttlefish a urządzeniem fizycznym dotyczą poziomu warstwy abstrakcji sprzętu (HAL), a także oprogramowania, które współdziała z dowolnym niestandardowym sprzętem. Z wyjątkiem implementacji specyficznych dla sprzętu, należy oczekiwać funkcjonalnie równoważnego zachowania między mątwą a urządzeniem fizycznym.

Jak mątwa może pomóc?

Możesz wchodzić w interakcję z Mątwą, tak jak z każdym innym urządzeniem z Androidem, którego możesz używać do debugowania. Zarejestruje się jako normalne urządzenie za pośrednictwem adb i możesz z nim wchodzić w interakcje jak z urządzeniem fizycznym za pośrednictwem zdalnego pulpitu. Przypadki użycia są szerokie i mogą obejmować testowanie aplikacji, testowanie niestandardowych konstrukcji systemu i nie tylko.

Ponieważ Cuttlefish dąży do pełnej wierności struktury, może być używany do testowania funkcjonalnego Twojej struktury i/lub aplikacji, w których nie ma fizycznych zależności sprzętowych, których nie można emulować.

W jaki sposób mątwa jest dziś powszechnie używana do testowania?

Niektóre typowe zastosowania mątwy do testowania obejmują:

  • CTS
  • Zgodność z ramami
  • Ciągłe testy integracyjne
  • Niestandardowe zestawy testowe

Czy mogę gościć mątwy w chmurze?

Tak, Cuttlefish natywnie obsługuje Google Cloud i planowane jest wsparcie dla innych platform chmurowych.

Rozpoczęcie pracy

Zobacz Przewodnik wprowadzający do wskazówek dotyczących tworzenia Mątwy instancji w oparciu o AOSP.