Virtuelle Android-Geräte der Tintenfische

Was ist Tintenfisch?

Tintenfische ist ein konfigurierbare virtuelles Android - Gerät , das sowohl remote ausführen kann (unter Verwendung von Drittanbieter - Cloud - Angeboten wie Google Cloud Engine) und lokal (auf Linux x86 - Rechner).

Tintenfischziele

  • Befreien Sie den Plattform- und Anwendungsentwickler von der Abhängigkeit von physischer Hardware, um Codeänderungen zu entwickeln und zu validieren.
  • Replizieren den Rahmen-basiertes Verhalten eines realen Gerät mit einem Fokus auf high fidelity durch eine enge Ausrichtung mit dem Kern - Rahmen beibehalten wird .
  • Unterstützt alle API-Level nach 28.
  • Geben Sie ein einheitliches Niveau der Funktionalität über API - Ebene, mit dem Verhalten auf physische Hardware ausgerichtet.
  • Skalierung aktivieren:

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

Tintenfisch mit anderen Geräten vergleichen

Tintenfisch und Android-Emulator

Es gibt viele Ähnlichkeiten mit dem Android - Emulator , aber Tintenfische garantiert die volle Treue mit Android Framework (ob es sich um reine AOSP oder eine benutzerdefinierte Implementierung in Ihrem eigenen Baum). In einer 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, der die Anwendungsentwicklung vereinfacht, und enthält viele funktionale Hooks, um die Anwendungsfälle des Android-Anwendungsentwicklers 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 für Ihren benutzerdefinierten Plattform-/Framework-Code oder Ihr Android-Tipp-of-Tree repräsentativ 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 Hardwareabstraktionsschicht (HAL) sowie bei 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 können Tintenfische helfen?

Sie können mit Cuttlefish wie mit jedem anderen Android-Gerät interagieren, das Sie zum Debuggen verwenden könnten. Es wird sich über adb als normales Gerät registrieren und Sie können mit ihm wie mit einem physischen Gerät über den Remote-Desktop interagieren. Die Anwendungsfälle sind breit gefächert und können Anwendungstests, benutzerdefinierte Systembuildtests 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 keine physischen Hardwareabhängigkeiten vorhanden sind, die nicht emuliert werden können.

Wie wird Tintenfisch heute üblicherweise zum Testen verwendet?

Einige häufige Anwendungen von Tintenfischen zum Testen sind:

  • CTS
  • Framework-Konformität
  • Kontinuierliche Integrationstests
  • Benutzerdefinierte Testsuiten

Kann ich Tintenfische in der Cloud hosten?

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

Einstieg

Finden Sie in der Kurzanleitung für Leitlinien zur Aufstellung einer Tintenfische Instanz auf AOSP Basis zu schaffen.