Wirtualne urządzenia z Androidem mątwy

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 maszynach z systemem Linux x86).

Cele mątwy

  • Uwolnij dewelopera platformy i aplikacji od fizycznego sprzętu do opracowywania i sprawdzania poprawności zmian w kodzie.
  • Replikuj oparte na platformie zachowanie prawdziwego urządzenia, koncentrując się na wysokiej wierności , utrzymując ścisłe dopasowanie do podstawowej struktury.
  • Obsługuje wszystkie poziomy API po 28.
  • Zapewnij spójny poziom funkcjonalności na różnych poziomach API, dostosowany do zachowania na sprzęcie fizycznym.
  • Włącz skalę:

    • Zapewnij możliwość równoległego uruchamiania wielu urządzeń.
    • Włącz 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ątwę z innymi urządzeniami

Emulator mątwy i Androida

Istnieje wiele podobieństw z emulatorem Androida , ale Cuttlefish gwarantuje pełną wierność frameworkowi Androida (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ątwa będzie reagowała na Twoje interakcje na poziomie systemu operacyjnego, tak jak fizyczny cel telefonu zbudowany z tego samego dostosowanego lub czystego źródła systemu operacyjnego Android.

Emulator Androida został zbudowany w oparciu o przypadek użycia ułatwiający 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 frameworkiem Androida. Jeśli potrzebujesz urządzenia wirtualnego, które będzie reprezentować Twoją niestandardową platformę/kod frameworka lub system Android typu tip-of-tree, 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 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 spodziewać się funkcjonalnie równoważnego zachowania mątwy i urządzenia fizycznego.

Jak mątwy mogą pomóc?

Możesz wchodzić w interakcje z mątwą, tak jak z każdym innym urządzeniem z Androidem, którego możesz użyć do debugowania. Zarejestruje się jako zwykłe urządzenie przez adb i możesz wchodzić z nim w interakcje jak z fizycznym urządzeniem za pośrednictwem pulpitu zdalnego. 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że być używany do testowania funkcjonalności twojego frameworka i/lub aplikacji, gdzie nie ma fizycznych zależności sprzętowych, których nie można naśladować.

W jaki sposób mątwy są obecnie powszechnie używane do testowania?

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

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

Czy mogę hostować mątwy w chmurze?

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

Pierwsze kroki

Aby uzyskać wskazówki dotyczące tworzenia instancji mątwy opartej na AOSP, zobacz Używanie mątwy .