Wirtualne urządzenia z Androidem mątwy

Co to jest mątwa?

Cuttlefish to konfigurowalne wirtualne urządzenie z systemem Android, które może działać zarówno zdalnie (przy użyciu usług chmurowych innych firm, takich jak Google Cloud Engine), jak i lokalnie (na komputerach z systemem 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.
  • Replikuj zachowanie rzeczywistego urządzenia oparte na strukturze, z naciskiem na wysoką wierność , zachowując ścisłe dopasowanie do szkieletu podstawowego.
  • Obsługa wszystkich poziomów API po 28.
  • Zapewnij spójny poziom funkcjonalności na wszystkich poziomach API, zgodny z zachowaniem 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 Emulatorem Androida , ale Cuttlefish gwarantuje pełną wierność z frameworkiem Androida (czy jest to czysty AOSP, czy niestandardowa implementacja we własnym 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 dewelopera 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, 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 będziesz mógł wchodzić z nim w interakcję jak z urządzeniem fizycznym za pośrednictwem zdalnego pulpitu. Przypadki użycia są szerokie i mogą obejmować testowanie aplikacji, testy budowania niestandardowych systemów 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ątwy są dziś powszechnie używane do testowania?

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

  • CTS
  • Zgodność z ramami
  • Testowanie ciągłej integracji
  • 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 Pierwsze kroki, aby uzyskać wskazówki dotyczące tworzenia instancji Cuttlefish opartej na AOSP.