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, dostosowany do zachowania 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 wejścia.
  • udostępnić urządzenie 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 docelowe urządzenie fizyczne zbudowane na podstawie tego samego spersonalizowanego 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 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 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.