Cuttlefish ist ein konfigurierbares virtuelles Android-Gerät, das sowohl aus der Ferne (mit Cloud-Angeboten von Drittanbietern wie der Google Cloud Engine) als auch lokal (auf Linux-x86- und ARM64-Maschinen) ausgeführt werden kann.
Zielvorhaben für Sepia
- Plattform- und App-Entwickler sind nicht mehr auf physische Hardware angewiesen, um Codeänderungen zu entwickeln und zu validieren.
- Das Framework-basierte Verhalten eines echten Geräts mit Schwerpunkt auf High Fidelity replizieren, indem Sie eng auf das Kern-Framework abgestimmt sind.
- Alle API-Levels nach 28 werden unterstützt.
- Bieten Sie auf allen API-Ebenen eine konsistente Funktionalität, die dem Verhalten auf physischer Hardware entspricht.
Skalierung aktivieren:
- Mehrere Geräte parallel ausführen
- Gleichzeitige Testausführung mit hoher Realitätstreue zu geringeren Einstiegskosten ermöglichen.
Bieten Sie ein konfigurierbares Gerät mit der Möglichkeit zur Anpassung von Formfaktor, RAM, CPUs usw.
Cuttlefish mit anderen Geräten vergleichen
Cuttlefish und Android-Emulator
Es gibt viele Ähnlichkeiten mit dem Android-Emulator, aber Cuttlefish garantiert eine vollständige Übereinstimmung mit dem Android-Framework, unabhängig davon, ob es sich um reines AOSP oder eine benutzerdefinierte Implementierung in Ihrem eigenen Tree handelt. In der Praxis bedeutet das, dass Cuttlefish auf Betriebssystemebene auf Ihre Interaktionen reagieren sollte, genau wie ein physisches Smartphone-Ziel, das mit derselben benutzerdefinierten oder reinen Android-Betriebssystemquelle erstellt wurde.
Der Android-Emulator wurde entwickelt, um die App-Entwicklung zu vereinfachen. Er enthält viele funktionale Funktionen, die den Anwendungsfällen von Android-App-Entwicklern entsprechen. Das kann zu Problemen führen, wenn Sie einen Emulator mit Ihrem benutzerdefinierten Android-Framework erstellen möchten. Wenn Sie ein virtuelles Gerät benötigen, das für Ihren benutzerdefinierten Plattform-/Framework-Code oder das Android-Top-of-Tree repräsentativ ist, ist Cuttlefish die ideale virtuelle Option. Es ist das kanonische Gerät zur Darstellung des aktuellen Stands der AOSP-Entwicklung.
Sepia und physisches Gerät
Die Hauptunterschiede zwischen einem virtuellen Cuttlefish-Gerät und einem physischen Gerät liegen in der Hardwareabstraktionsebene (HAL) sowie in der Software, die mit benutzerdefinierter Hardware interagiert. Mit Ausnahme von hardwarespezifischen Implementierungen sollte ein Verhalten von Cuttlefish und einem physischen Gerät in gleichem Maße funktionieren.
Wie können Tintenfische helfen?
Sie können mit Cuttlefish genauso interagieren wie mit jedem anderen Android-Gerät, das Sie zum Debuggen verwenden. Es registriert sich über adb als normales Gerät und Sie können über Remote Desktop wie mit einem physischen Gerät damit interagieren. Die Anwendungsfälle sind vielfältig und können App-Tests, Tests für benutzerdefinierte System-Builds und mehr umfassen.
Da Cuttlefish eine vollständige Framework-Fidelität anstrebt, kann es für Funktionstests Ihres Frameworks oder Ihrer Apps verwendet werden, bei denen es keine physischen Hardwareabhängigkeiten gibt, die nicht emuliert werden können.
Wie wird Cuttlefish heute häufig für Tests verwendet?
Zu den gängigen Testanwendungen von Sepien gehören:
- Logo: CTS
- Einhaltung des Frameworks
- Continuous Integration-Tests
- Benutzerdefinierte Testsuites
Kann ich Tintenfische in der Cloud hosten?
Ja, Cuttlefish unterstützt nativ Google Cloud. Die Unterstützung anderer Cloud-Plattformen ist geplant.
Erste Schritte
Eine Anleitung zum Erstellen einer Cuttlefish-Instanz auf Basis von AOSP finden Sie unter Cuttlefish verwenden.