Urządzenia wirtualne z Androidem Cuttlefish

Cuttlefish to konfigurowalne wirtualne urządzenie z Androidem, które może działać zdalnie (przy użyciu usług chmurowych innych firm, takich jak Google Cloud Engine) i lokalnie (na komputerach z systemem Linux x86 i ARM64).

Cele związane z Cuttlefish

  • Uwolnienie platformy i programisty aplikacji od zależności od fizycznego sprzętu podczas tworzenia i weryfikowania zmian w kodzie.
  • Odtwarzaj zachowanie prawdziwego urządzenia oparte na platformie, koncentrując się na wysokiej wierności poprzez zachowanie ścisłej zgodności z główną platformą.
  • Obsługuje wszystkie poziomy API powyżej 28.
  • Zapewnij spójny poziom funkcjonalności na różnych poziomach interfejsu API, zgodny z zachowaniem na sprzęcie fizycznym.
  • Włącz skalę:

    • Umożliwia równoległe działanie wielu urządzeń.
    • Umożliwia przeprowadzanie testów równoległych z wysoką wiernością przy niższym koszcie wejścia.
  • zapewniać konfigurowalne urządzenie z możliwością dostosowania formatu, pamięci RAM, procesorów itp.;

Porównanie Cuttlefish z innymi urządzeniami

Cuttlefish i emulator Androida

Jest wiele podobieństw do emulatora Androida, ale Cuttlefish gwarantuje pełną zgodność z platformą Androida (niezależnie od tego, czy jest to czysta wersja AOSP, czy niestandardowa implementacja w Twoim własnym drzewie). W praktyce oznacza to, że Cuttlefish powinien reagować na Twoje interakcje na poziomie systemu operacyjnego tak samo jak fizyczny telefon docelowy zbudowany na podstawie tego samego dostosowanego lub czystego kodu źródłowego systemu Android.

Emulator Androida został stworzony z myślą o ułatwieniu tworzenia aplikacji i zawiera wiele funkcjonalnych elementów, które są przydatne dla programistów aplikacji na Androida. Może to stanowić problem, jeśli chcesz utworzyć emulator z dostosowaną platformą Androida. Jeśli potrzebujesz urządzenia wirtualnego, które będzie reprezentować Twój kod platformy lub frameworka niestandardowego albo najnowszą wersję Androida, Cuttlefish jest idealnym rozwiązaniem. Jest to urządzenie kanoniczne, które reprezentuje bieżący stan rozwoju AOSP.

Cuttlefish i urządzenie fizyczne

Główne różnice między urządzeniem wirtualnym Cuttlefish a urządzeniem fizycznym występują na poziomie warstwy abstrakcji sprzętu (HAL) oraz w przypadku oprogramowania, które wchodzi w interakcje z dowolnym sprzętem niestandardowym. Z wyjątkiem implementacji specyficznych dla sprzętu, Cuttlefish i urządzenie fizyczne powinny działać w podobny sposób.

Jak może pomóc Cuttlefish?

Z Cuttlefish możesz korzystać tak samo jak z każdego innego urządzenia z Androidem, którego możesz używać do debugowania. Zarejestruje się jako zwykłe urządzenie za pomocą adb i będziesz mieć możliwość interakcji z nim jak z urządzeniem fizycznym za pomocą pulpitu zdalnego. Zastosowania są szerokie i mogą obejmować testowanie aplikacji, testowanie niestandardowych kompilacji systemowych i inne.

Cuttlefish zapewnia pełną wierność platformy, dlatego można go używać do testów funkcjonalnych platformy lub aplikacji, które nie mają zależności od sprzętu fizycznego, których nie można emulować.

Jak obecnie najczęściej wykorzystuje się Cuttlefish do testowania?

Oto kilka typowych zastosowań Cuttlefish w testach:

  • CTS
  • Zgodność z platformą
  • Testowanie w trybie ciągłej integracji
  • Niestandardowe zestawy testów

Czy mogę hostować Cuttlefish w chmurze?

Tak, Cuttlefish natywnie obsługuje Google Cloud, a obsługa innych platform chmurowych jest planowana.

Rozpocznij

Wskazówki dotyczące tworzenia instancji Cuttlefish na podstawie AOSP znajdziesz w artykule Korzystanie z Cuttlefish.