Cuttlefish to konfigurowalne wirtualne urządzenie z Androidem, które może działać zarówno zdalnie (za pomocą usług chmurowych innych firm, takich jak Google Cloud Engine), jak i lokalnie (na maszynach z Linuxem x86 i ARM64).
Cele w Mątwie
- Uwolnienie dewelopera platformy i aplikacji od zależności od fizycznego sprzętu do tworzenia i weryfikowania zmian w kodzie.
- Odtwarzanie zachowania opartego na ramach na prawdziwym urządzeniu z uwzględnieniem wysokiej wierności dzięki utrzymaniu ścisłej zgodności z głównymi ramami.
- Obsługa wszystkich poziomów interfejsu API po poziomie 28.
- Zapewnij konsekwentny poziom funkcjonalności na różnych poziomach interfejsu API, zgodny z zachowaniem na fizycznym sprzęcie.
Włącz skalę:
- Umożliw uruchamianie wielu urządzeń równolegle.
- Umożliwiają równoległe uruchamianie testów o wysokiej wierności przy niższych kosztach.
Udostępnianie urządzenia z możliwością zmiany formatu, pamięci RAM, procesora itp.
Porównanie Cuttlefish z innymi urządzeniami
Mątwa i Emulator Androida
Cuttlefish ma wiele podobieństw do Android Emulator, ale gwarantuje pełną zgodność z platformą Android (czy to czysta platforma AOSP, czy niestandardowa implementacja w Twoim drzewie). W praktyce oznacza to, że Cuttlefish powinien reagować na Twoje interakcje na poziomie systemu operacyjnego tak samo jak na prawdziwym telefonie, na którym działa ta aplikacja i który korzysta z tego samego niestandardowego lub czystego źródła kodu Androida.
Emulator Androida został stworzony z myślą o ułatwieniu tworzenia aplikacji i zawiera wiele elementów funkcjonalnych, które ułatwiają programistom aplikacji na Androida realizację różnych scenariuszy użycia. Może to stanowić problem, jeśli chcesz utworzyć emulator z niestandardowym środowiskiem Androida. Jeśli potrzebujesz wirtualnego urządzenia, które będzie reprezentować niestandardowy kod platformy/ramy lub Androida na poziomie drzewa, Cuttlefish będzie idealnym rozwiązaniem. Jest to urządzenie kanoniczne reprezentujące bieżący stan rozwoju AOSP.
Cuttlefish i urządzenie fizyczne
Najważniejsze różnice między urządzeniem wirtualnym Cuttlefish a fizycznym urządzeniem dotyczą warstwy abstrakcji sprzętowej (HAL) oraz oprogramowania, które współpracuje z dowolnym niestandardowym sprzętem. Z wyjątkiem implementacji specyficznych dla sprzętu należy oczekiwać, że działanie funkcji w Cuttlefish jest identyczne jak na urządzeniu fizycznym.
Jak może Ci pomóc Cuttlefish?
Z Cuttlefish możesz korzystać tak samo jak z dowolnego innego urządzenia z Androidem, które możesz wykorzystać do debugowania. Zarejestruje się jako zwykłe urządzenie przez adb i będzie można z nim współpracować jak z fizycznym urządzeniem za pomocą pulpitu zdalnego. Zastosowania są bardzo różnorodne i obejmują testowanie aplikacji, testowanie niestandardowych wersji systemu itp.
Cuttlefish dąży do pełnej zgodności z ramami, dlatego można go używać do testów funkcjonalnych frameworków lub aplikacji, w których nie ma zależności od sprzętu, których nie można emulować.
Jak obecnie Cuttlefish jest powszechnie używany do testowania?
Oto kilka typowych zastosowań Cuttlefish do testowania:
- CTS
- Zgodność z ramami
- Testowanie w ramach ciągłej integracji
- niestandardowe zestawy testów,
Czy mogę hostować Cuttlefish w chmurze?
Tak. Cuttlefish obsługuje natywną Google Cloud, a obsługa innych platform chmurowych jest planowana.
Rozpocznij
Wskazówki dotyczące tworzenia instancji Cuttlefish na podstawie AOSP znajdziesz w artykule Używanie Cuttlefish.