Urządzenia wirtualne z Androidem Cuttlefish

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.