Developer Device Platform Device Run für Android-Ausführbare

In diesem Leitfaden wird beschrieben, wie Sie eine eigenständige ausführbare Android-Datei mit der gcloud beta device-run-Befehlszeile ausführen und die Ergebnisse in der Google Cloud Console finden. Es wird davon ausgegangen, dass Sie ein Konto und ein Projekt in Google Cloud haben.

Wenn Sie von Firebase Test Lab zur Developer Device Platform migrieren, lesen Sie unsere Migrationsanleitung, die Übersetzung von Befehlen und Flags und den Migrationsskill für KI-Agenten.

Wenn Sie diese Google Cloud CLI verwenden möchten, müssen Sie Ihre Google Cloud -Projekt-ID angeben. Eine Zusammenfassung der Befehle finden Sie unter gcloud beta device-run.

Hinweis

Bei diesen Schritten wird davon ausgegangen, dass Sie bereits Folgendes getan haben:

  1. Sie haben ein Projekt in Google Cloud erstellt.
  2. Richten Sie die Developer Device Platform gemäß der Kurzanleitung ein.
  3. Im Terminal mit gcloud authentifiziert.
  4. Die Device Run-Übersicht mit allgemeinen Informationen gelesen.
  5. Eine eigenständige ausführbare Android-Datei (z. B. eine kompilierte C++-Binärdatei, ein Benchmark-Runner oder ein Shell-Script) vorbereitet haben.

Schritt 1: Ausführbare Ausführung konfigurieren

Optionen für ausführbare Android-Dateien

  • Mehrere Geräte: Wenn Sie dieselbe ausführbare Datei auf mehreren Geräten ausführen möchten, geben Sie das Flag --device mit mehreren Geräte-IDs an, die durch Kommas getrennt sind, z. B. --device shiba-34,tokay-36, oder mit mehreren --device-Flags, die jeweils eine eindeutige Geräte-ID angeben (z. B. --device shiba-34 --device tokay-36).
  • Dateien auf das Gerät übertragen: Übertragen Sie vor der Ausführung mit --other-files-to-push=SOURCE=DEST,... zusätzliche Dateien (z. B. ML-Modellgewichtungen, Testeingaben oder .so gemeinsam genutzte Bibliotheken) auf das Gerät. SOURCE unterstützt sowohl lokale Pfade als auch Cloud Storage-Pfade (gs://...) und DEST ist der Zielpfad auf dem Gerät.
  • Dateien vom Gerät abrufen: Generierte Dateien oder Verzeichnisse nach Abschluss der Ausführung mit --paths-to-pull=DEVICE_PATH,... vom Gerät abrufen.
  • Benutzerdefinierter Cloud Storage-Bucket: Geben Sie mit --bucket-name= einen vorhandenen Cloud Storage-Bucket-Namen (ohne gs://-Schema oder -Pfad) an. Wenn Sie keinen Bucket angeben, verwendet oder erstellt die Google Cloud CLI einen Standard-Bucket mit dem Namen PROJECT_ID-devicerun.
  • Wiederholungen instabiler Tests: Legen Sie die maximale Anzahl von Versuchen pro Job oder Shard fest, um Instabilität zu beheben: --flaky-test-attempts=3 (Standardwert ist 1 Versuch).
  • Geräteumgebung und Diagnose: Konfigurieren Sie die Geräteausrichtung (--orientation=portrait oder landscape), die Sprache (--locale=en-US), den simulierten GPS-Standort (--coordinates=LATITUDE,LONGITUDE), die Bildschirmvideoaufzeichnung (--video=always oder on-failure), die dumpsys-Erfassung (--dumpsys=always oder on-failure) oder die bugreport-Erfassung (--bugreport=always oder on-failure).
  • Labels: Hängen Sie mit --labels=KEY=VALUE,... benutzerdefinierte Schlüssel/Wert-Labels an die Sitzung an.
  • Ausführbare Argumente: Übergeben Sie Befehlszeilenargumente an die ausführbare Datei. Verwenden Sie dazu --executable-args=ARG,... als durch Kommas getrennte Liste oder wiederholen Sie das Flag. Jedes Element wird zu einem Argument. Schreiben Sie daher durch Leerzeichen getrennte Befehlszeilen in kommagetrennter Form um (z. B. --executable-args="--input=a.file,--threads=4"). Wenn Sie ein Argument übergeben möchten, das selbst ein Komma enthält, stellen Sie dem Wert ^SEP^ voran, um ein anderes Trennzeichen anzugeben (z. B. --executable-args="^;^--shape=1,224,224,3;--threads=4").
  • Umgebungsvariablen: Legen Sie Umgebungsvariablen für den ausführbaren Prozess auf dem Gerät mit --executable-env-vars=KEY=VALUE,... fest (z. B. --executable-env-vars=LD_LIBRARY_PATH=/data/local/tmp/lib).
  • Zeitlimit für die ausführbare Datei: Begrenzen Sie die Ausführungsdauer der ausführbaren Datei: --executable-timeout=10m (gültiger Bereich ist 1m bis 3h, Standardwert ist 5m, ohne Vorbereitungs- und Bereinigungszeit für das Gerät).

Synchrone und asynchrone Ausführungen

Standardmäßig ist der Befehl „submit“ blockierend (synchron). Es wartet, bis die ausführbare Datei abgeschlossen ist, und gibt eine Übersichtstabelle der Ergebnisse aus.

Wenn Sie die Sitzung senden und sofort nach dem Hochladen von Dateien in Cloud Storage zurückkehren möchten, fügen Sie das Flag --async hinzu:

gcloud beta device-run sessions submit android-executable \
  --device shiba-35 \
  --executable ./MY_EXECUTABLE \
  --async

Dadurch wird sofort eine Sitzungs-ID zurückgegeben. Sie können dann mit dem Befehl sessions wait darauf warten:

gcloud beta device-run sessions wait SESSION_ID

Der Befehl wird blockiert, bis der Job abgeschlossen ist.

Mehrere Geräte

Wenn Sie dieselbe ausführbare Datei auf mehreren Geräten ausführen möchten, geben Sie das Flag --device mit mehreren Geräte-IDs durch Kommas getrennt oder mit mehreren --device-Flags an, die jeweils eine eindeutige Geräte-ID angeben.

gcloud beta device-run sessions submit android-executable \
  --device shiba-34,tokay-36 \
  --executable ./MY_EXECUTABLE

oder:

gcloud beta device-run sessions submit android-executable \
  --device shiba-34 \
  --device tokay-36 \
  --executable ./MY_EXECUTABLE

Zeitlimit für ausführbare Datei

Begrenzen Sie die Dauer der Ausführung der ausführbaren Datei:

gcloud beta device-run sessions submit android-executable \
  --device shiba-35 \
  --executable ./MY_EXECUTABLE \
  --executable-timeout=10m

Der gültige Bereich für Ausführungen liegt zwischen 1m und 3h. Der Standardwert ist 5m.

Schritt 2: Geräte auswählen

Mit der device-run-Befehlszeile können ausführbare Android-Dateien auf verfügbaren physischen und virtuellen Geräten ausgeführt werden. Eine vollständige Liste der verfügbaren Geräte finden Sie im interaktiven Gerätekatalog. Sie können auch folgenden Befehl ausführen:

gcloud beta device-run devices list

Beispielausgabe:

ID        MAKE    NAME     MODEL FORM      OS_VERSION CAPACITY  AVAILABILITY  PRODUCTS
tegu-35   Google  Pixel 9a tegu  PHYSICAL  35         MEDIUM    LOW           Automation, Streaming
tokay-34  Google  Pixel 9  tokay PHYSICAL  34         HIGH      HIGH          Automation, Streaming

Im Gerätekatalog erfährst du, wie du diese Liste filtern kannst. Wenn Sie ein bestimmtes Gerät für die Ausführung verwenden möchten, geben Sie im Befehl zum Senden die entsprechende ID an (z. B. tegu-35).

Schritt 3: Ausführbare Datei ausführen

Reichen Sie eine eigenständige ausführbare Android-Datei ein.

Wenn Sie eine eigenständige ausführbare Datei (z. B. eine kompilierte C++-Binärdatei, einen Benchmark-Runner für maschinelles Lernen auf dem Gerät wie LiteRT oder ein Shell-Script) direkt auf einem Android-Gerät ausführen möchten, ohne sie in ein APK zu verpacken, verwenden Sie den Befehl sessions submit android-executable.

Diese Flags sind für ausführbare Android-Dateien erforderlich:

  • Gerät: Geben Sie ein Gerät mit --device an: --device shiba-35
  • Ausführbare Datei: Geben Sie den lokalen oder Cloud Storage-Pfad zur ausführbaren Datei mit --executable an: --executable /path/to/my_executable

Führen Sie die ausführbare Datei mit einem Befehl wie dem folgenden aus. Verwenden Sie dabei Ihre eigenen Geräte-IDs und den Pfad zur ausführbaren Datei:

gcloud beta device-run sessions submit android-executable \
  --device shiba-34 \
  --executable /path/to/my_executable \
  --executable-args="--input=/data/local/tmp/file.name,--threads=4" \
  --other-files-to-push=/path/to/model.tflite=/data/local/tmp/model.tflite \
  --paths-to-pull=/data/local/tmp/output

Der Ordner mit dem Ergebnisbericht des Jobs befindet sich in einem Cloud Storage-Pfad wie gs://BUCKET_NAME/automation/sessions/SESSION_ID/. In der Befehlsausgabe finden Sie den Link, der in etwa so aussieht: https://console.cloud.google.com/storage/browser/BUCKET_NAME/automation/sessions/SESSION_ID/.

Schritt 4: Ausführbaren Lauf ansehen und verwalten

Sowohl für den asynchronen als auch für den synchronen Modus des Befehls sessions submit android-executable können Sie den Befehl sessions describe verwenden, um den Jobstatus während der Ausführung abzufragen oder das Ergebnis nach Abschluss abzurufen:

gcloud beta device-run sessions describe SESSION_ID

Die Ausgabe fasst die Ausführungsergebnisse zusammen und enthält Links zu den Ergebnissen in derGoogle Cloud Console. Beispiel:

Session SESSION_ID finished with result [FAILED].
Result files are stored at [https://console.cloud.google.com/storage/browser/BUCKET_NAME/automation/sessions/SESSION_ID/].
JOB NAME  EXECUTION NAME  EXECUTION RESULT
job-000 all FAILED: 2 test cases failed, 5 passed

Verwenden Sie den folgenden Befehl, um alle laufenden und abgeschlossenen Sitzungen aufzulisten:

gcloud beta device-run sessions list

Sie erhalten eine Ausgabe mit der Liste der Sitzungen in Ihrem Projekt, die in etwa so aussieht:

SESSION_ID                                    START_TIME                STATE
session-4825e153                              2026-07-28T16:38:43.155Z  DONE
session-813ca602                              2026-07-28T22:40:32.415Z  DONE
session-67cd0570                              2026-07-16T08:25:55.474Z  DONE
session-17cc299c                              2026-07-14T14:31:33.649Z  DONE
session-911d0763                              2026-07-09T00:39:02.051Z  DONE
session-4e943fea                              2026-07-15T23:08:32.252Z  DONE
session-0132e458                              2026-08-20T18:33:19.751Z  DONE
session-1077f07b                              2026-07-28T22:35:43.848Z  DONE
session-71b054c6                              2026-07-15T01:15:41.643Z  DONE
session-4f8b2e45                              2026-08-06T23:11:56.161Z  DONE

Der Befehl sessions list unterstützt alle Standard-Flag-Optionen der Google Cloud CLI. Beispiel:

gcloud beta device-run sessions list --limit 5

Das Ergebnis sieht in etwa so aus:

SESSION_ID                            START_TIME                STATE
session-4825e153                      2026-07-28T16:38:43.155Z  DONE
session-813ca602                      2026-07-28T22:40:32.415Z  DONE
93ec2df2-d5bf-4c36-b7f7-c2a4fb0dc3ce  2026-07-03T05:10:58.015Z  DONE
session-67cd0570                      2026-07-16T08:25:55.474Z  DONE
session-17cc299c                      2026-07-14T14:31:33.649Z  DONE

Oder führen Sie den folgenden Befehl aus, um alle laufenden Sitzungen aufzulisten:

gcloud beta device-run sessions list --filter RUNNING

Wenn Sie laufende Sitzungen haben, sehen Sie Ergebnisse, die in etwa so aussehen:

SESSION_ID        START_TIME  STATE
session-d7ff8b81              RUNNING

Andernfalls erhalten Sie Listed 0 items..

Führen Sie diesen Befehl mit Ihrer Sitzungs-ID aus, um eine laufende Sitzung abzubrechen:

gcloud beta device-run sessions cancel SESSION_ID

Der Befehl wird sofort zurückgegeben, da die Sitzung nur zum Abbrechen markiert ist. Der Abbruch erfolgt asynchron im Backend.

Wenn die Sitzung bereits beendet ist, wird nur der aktuelle Status ausgegeben. Wenn Sie den Abbruch einer abgeschlossenen Sitzung anfordern, ist dies kein Fehler.

Nächste Schritte

Als Nächstes können Sie einen Android-Instrumentierungstest ausführen oder Logs suchen und analysieren.