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 .