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-Maschinen) ausgeführt werden kann.

Tintenfischziele

  • 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 Schwerpunkt auf hoher Wiedergabetreue , indem Sie eine enge Abstimmung mit dem Kern-Framework aufrechterhalten.
  • Unterstützt alle API-Level nach 28.
  • Bieten Sie ein konsistentes Maß an Funktionalität über alle API-Ebenen hinweg, abgestimmt auf das Verhalten auf physischer Hardware.
  • Skalierung aktivieren:

    • Bieten Sie die Möglichkeit, mehrere Geräte parallel zu betreiben.
    • Ermöglichen Sie die gleichzeitige Testausführung mit hoher Genauigkeit und 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 (unabhängig davon, 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 für den Anwendungsfall entwickelt, die Anwendungsentwicklung zu vereinfachen, und enthält viele funktionale Hooks, um die Anwendungsfälle des Android-App-Entwicklers anzusprechen. Dies kann eine Herausforderung darstellen, wenn Sie einen Emulator mit Ihrem benutzerdefinierten Android-Framework erstellen möchten. Wenn Sie ein virtuelles Gerät benötigen, das Ihren benutzerdefinierten Plattform-/Framework-Code oder Ihr Spitzen-Android repräsentiert, 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 bei jeder Software, die mit benutzerdefinierter Hardware interagiert. Mit Ausnahme hardwarespezifischer Implementierungen sollten Sie ein funktional gleichwertiges Verhalten zwischen Cuttlefish und einem physischen Gerät erwarten.

Wie kann Tintenfisch 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 mit ihm wie mit einem physischen Gerät über Remotedesktop interagieren. Die Anwendungsfälle sind breit gefächert und können Anwendungstests, benutzerdefinierte System-Build-Tests und mehr umfassen.

Da Cuttlefish eine vollständige Framework-Treue anstrebt, kann es für Funktionstests Ihres Frameworks und/oder Ihrer Anwendungen verwendet werden, bei denen es keine physischen Hardwareabhängigkeiten gibt, die nicht emuliert werden können.

Wie wird Tintenfisch heute üblicherweise zum Testen verwendet?

Zu den häufigsten Testanwendungen für Tintenfische gehören:

  • CTS
  • Einhaltung des Rahmenwerks
  • Kontinuierliche Integrationstests
  • Benutzerdefinierte Testsuiten

Kann ich Tintenfische in der Cloud hosten?

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

Erste Schritte

Eine Anleitung zum Erstellen einer auf AOSP basierenden Cuttlefish-Instanz finden Sie unter Verwenden 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-Maschinen) ausgeführt werden kann.

Tintenfischziele

  • 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 Schwerpunkt auf hoher Wiedergabetreue , indem Sie eine enge Abstimmung mit dem Kern-Framework aufrechterhalten.
  • Unterstützt alle API-Level nach 28.
  • Bieten Sie ein konsistentes Maß an Funktionalität über alle API-Ebenen hinweg, abgestimmt auf das Verhalten auf physischer Hardware.
  • Skalierung aktivieren:

    • Bieten Sie die Möglichkeit, mehrere Geräte parallel zu betreiben.
    • Ermöglichen Sie die gleichzeitige Testausführung mit hoher Genauigkeit und 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 (unabhängig davon, 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 für den Anwendungsfall entwickelt, die Anwendungsentwicklung zu vereinfachen, und enthält viele funktionale Hooks, um die Anwendungsfälle des Android-App-Entwicklers anzusprechen. Dies kann eine Herausforderung darstellen, wenn Sie einen Emulator mit Ihrem benutzerdefinierten Android-Framework erstellen möchten. Wenn Sie ein virtuelles Gerät benötigen, das Ihren benutzerdefinierten Plattform-/Framework-Code oder Ihr Spitzen-Android repräsentiert, 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 bei jeder Software, die mit benutzerdefinierter Hardware interagiert. Mit Ausnahme hardwarespezifischer Implementierungen sollten Sie ein funktional gleichwertiges Verhalten zwischen Cuttlefish und einem physischen Gerät erwarten.

Wie kann Tintenfisch 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 mit ihm wie mit einem physischen Gerät über Remotedesktop interagieren. Die Anwendungsfälle sind breit gefächert und können Anwendungstests, benutzerdefinierte System-Build-Tests und mehr umfassen.

Da Cuttlefish eine vollständige Framework-Treue anstrebt, kann es für Funktionstests Ihres Frameworks und/oder Ihrer Anwendungen verwendet werden, bei denen es keine physischen Hardwareabhängigkeiten gibt, die nicht emuliert werden können.

Wie wird Tintenfisch heute üblicherweise zum Testen verwendet?

Zu den häufigsten Testanwendungen für Tintenfische gehören:

  • CTS
  • Einhaltung des Rahmenwerks
  • Kontinuierliche Integrationstests
  • Benutzerdefinierte Testsuiten

Kann ich Tintenfische in der Cloud hosten?

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

Erste Schritte

Eine Anleitung zum Erstellen einer auf AOSP basierenden Cuttlefish-Instanz finden Sie unter Verwenden von Cuttlefish .