Virtuelle Android-Geräte von Cuttlefish

Cuttlefish ist ein konfigurierbares virtuelles Android-Gerät, das sowohl remote (unter Verwendung von Cloud-Angeboten von Drittanbietern wie Google Cloud Engine) als auch lokal (auf Linux x86-Rechnern) ausgeführt werden kann.

Tintenfisch-Ziele

  • Befreien Sie den Plattform- und App-Entwickler von der Abhängigkeit von physischer Hardware, um Codeänderungen zu entwickeln und zu validieren.
  • Replizieren Sie das Framework-basierte Verhalten eines realen Geräts mit Fokus auf High-Fidelity , indem Sie eine enge Abstimmung mit dem Kern-Framework beibehalten.
  • Unterstützt alle API-Ebenen nach 28.
  • Stellen Sie eine konsistente Funktionalität auf allen API-Ebenen bereit, die auf das Verhalten auf physischer Hardware abgestimmt ist.
  • Skalierung aktivieren:

    • Bietet die Möglichkeit, mehrere Geräte parallel zu betreiben.
    • Ermöglichen Sie die gleichzeitige Testausführung mit hoher Genauigkeit zu geringeren Einstiegskosten.
  • Bieten Sie ein konfigurierbares Gerät mit der Möglichkeit, Formfaktor, RAM, CPUs usw. anzupassen.

Vergleichen Sie Cuttlefish mit anderen Geräten

Tintenfisch und Android-Emulator

Es gibt viele Ähnlichkeiten mit dem Android-Emulator , aber Cuttlefish garantiert volle Treue zum Android-Framework (ob es sich um reines AOSP oder eine benutzerdefinierte Implementierung in Ihrem eigenen Baum handelt). In der realen Anwendung bedeutet dies, dass Sie erwarten sollten, dass Cuttlefish auf Ihre Interaktionen auf Betriebssystemebene reagiert, genau wie ein physisches Telefonziel, das mit derselben angepassten oder reinen Android-Betriebssystemquelle erstellt wurde.

Der Android-Emulator wurde um den Anwendungsfall herum entwickelt, die Anwendungsentwicklung zu vereinfachen, und er enthält viele funktionale Hooks, um die Anwendungsfälle des Android-App-Entwicklers anzusprechen. Dies kann Herausforderungen darstellen, wenn Sie einen Emulator mit Ihrem angepassten Android-Framework erstellen möchten. Wenn Sie ein virtuelles Gerät benötigen, das repräsentativ für Ihren benutzerdefinierten Plattform-/Framework-Code oder Tip-of-Tree-Android ist, dann ist Cuttlefish eine ideale virtuelle Option. Es ist das kanonische Gerät zur Darstellung des aktuellen Stands der AOSP-Entwicklung.

Tintenfisch und physisches Gerät

Die Hauptunterschiede zwischen einem virtuellen Cuttlefish-Gerät und Ihrem physischen Gerät liegen auf der Ebene der Hardware-Abstraktionsschicht (HAL) sowie auf jeder Software, die mit benutzerdefinierter Hardware interagiert. Abgesehen von hardwarespezifischen Implementierungen sollten Sie ein funktional gleichwertiges Verhalten zwischen Cuttlefish und einem physischen Gerät erwarten.

Wie kann Tintenfisch helfen?

Sie können mit Cuttlefish genau wie mit jedem anderen Android-Gerät interagieren, das Sie möglicherweise zum Debuggen verwenden. Es registriert sich über adb als normales Gerät und Sie können damit wie mit einem physischen Gerät über Remotedesktop interagieren. Die Anwendungsfälle sind breit gefächert und können Anwendungstests, benutzerdefinierte Systemaufbautests und mehr umfassen.

Da Cuttlefish nach vollständiger Framework-Genauigkeit strebt, kann es für Funktionstests Ihres Frameworks und/oder von Anwendungen verwendet werden, bei denen es keine physischen Hardware-Abhängigkeiten gibt, die nicht emuliert werden können.

Wie wird Tintenfisch heute üblicherweise zum Testen verwendet?

Einige gängige Anwendungen von Tintenfischen zum Testen sind:

  • CTS
  • Rahmenkonformität
  • Kontinuierliche Integrationstests
  • Benutzerdefinierte Testsuiten

Kann ich Tintenfische in der Cloud hosten?

Ja, Cuttlefish unterstützt Google Cloud nativ und die Unterstützung für andere Cloud-Plattformen ist geplant.

Einstieg

Eine Anleitung zum Erstellen einer Cuttlefish-Instanz basierend auf AOSP finden Sie unter Use Cuttlefish .