Wirtualne urządzenia z Androidem (mątwy)

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

  • Platforma i deweloper aplikacji nie będą uzależnione od fizycznego sprzętu w zakresie opracowywania 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żliwiają równoległe uruchamianie kilku urządzeń.
    • Włącz równoległe wykonywanie testów z wysoką wiernością przy niższym koszcie wprowadzania.
  • Udostępnij konfigurowalne urządzenie z możliwością dostosowania formatu, pamięci RAM, procesora itp.

Porównaj mątwę 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 docelowe urządzenie fizyczne zbudowane na podstawie tego samego spersonalizowanego lub czystego źródła kodu Androida.

Emulator Androida powstał z myślą o ułatwianiu tworzenia aplikacji. Zawiera wiele przydatnych rzeczy, które przydadzą się w przypadku deweloperów aplikacji na Androida. 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.

Mątwa 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 wchodzi w interakcję 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?

Możesz korzystać z Cuttlefish 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 testowania funkcjonalności 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:

  • wskaźnik 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 sekcji Korzystanie z Cuttlefish.