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 deweloperów platform i aplikacji od zależności od sprzętu fizycznego podczas tworzenia i weryfikowania zmian w kodzie.
  • Odtwarzanie zachowania prawdziwego urządzenia opartego na platformie z naciskiem na wysoką wierność dzięki ścisłemu powiązaniu z podstawową platformą.
  • Obsługa wszystkich poziomów API po 28.
  • Zapewnienie spójnego poziomu funkcjonalności na różnych poziomach API, zgodnego z zachowaniem na sprzęcie fizycznym.
  • Włączenie skalowania:

    • Umożliwienie równoległego działania wielu urządzeń.
    • Umożliwienie równoczesnego wykonywania testów z wysoką wiernością przy niższych kosztach początkowych.
  • Udostępnienie konfigurowalnego urządzenia z możliwością dostosowania formatu, pamięci RAM, procesorów itp.

Porównanie Cuttlefish z innymi urządzeniami

Cuttlefish i Android Emulator

Istnieje wiele podobieństw do Android Emulatora, ale Cuttlefish gwarantuje pełną wierność frameworku Androida (niezależnie od tego, czy jest to czysty AOSP, czy implementacja niestandardowa we 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 z tego samego dostosowanego lub czystego źródła systemu operacyjnego Android.

Android Emulator został stworzony z myślą o ułatwieniu tworzenia aplikacji i zawiera wiele funkcjonalnych elementów, które odpowiadają przypadkom użycia deweloperów aplikacji na Androida. Może to stanowić wyzwanie, jeśli chcesz utworzyć emulator z dostosowanym frameworkiem Androida. Jeśli potrzebujesz urządzenia wirtualnego, które będzie reprezentować Twój niestandardowy kod platformy lub frameworka albo najnowszą wersję Androida, Cuttlefish jest idealnym rozwiązaniem wirtualnym. Jest to kanoniczne urządzenie reprezentujące aktualny 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ętowej (HAL) oraz w oprogramowaniu, które wchodzi w interakcje z niestandardowym sprzętem. Z wyjątkiem implementacji specyficznych dla sprzętu, Cuttlefish i urządzenie fizyczne powinny zachowywać się funkcjonalnie w ten sam sposób.

Jak Cuttlefish może pomóc?

Możesz wchodzić w interakcje z Cuttlefish tak samo jak z każdym innym urządzeniem z Androidem, którego możesz używać do debugowania. Zarejestruje się jako zwykłe urządzenie za pomocą adb i możesz wchodzić z nim w interakcje jak z urządzeniem fizycznym za pomocą pulpitu zdalnego. Przypadki użycia są szerokie i mogą obejmować testowanie aplikacji, testowanie niestandardowych kompilacji systemu i inne.

Ponieważ Cuttlefish dąży do pełnej wierności frameworka, można go używać do testowania funkcjonalnego frameworka lub aplikacji, w których nie ma zależności od sprzętu fizycznego, których nie można emulować.

Jak obecnie najczęściej używa się Cuttlefish do testowania?

Oto kilka typowych zastosowań Cuttlefish do testowania:

  • CTS
  • Zgodność z frameworkiem
  • Testowanie trybu 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.