Device Run Developer Device Platform untuk Android Executable

Panduan ini menjelaskan cara menjalankan file Android yang dapat dieksekusi secara mandiri menggunakan gcloud beta device-run CLI dan menemukan hasilnya di Google Cloud console. Panduan ini mengasumsikan bahwa Anda memiliki akun dan project Google Cloud .

Jika Anda bermigrasi dari Firebase Test Lab ke Developer Device Platform, lihat panduan migrasi, terjemahan perintah dan flag, serta kemampuan migrasi untuk agen AI.

Untuk menggunakan Google Cloud CLI ini, Anda harus memberikan project ID Google Cloud . Lihat gcloud beta device-run untuk mengetahui ringkasan perintah.

Sebelum memulai

Langkah-langkah ini mengasumsikan bahwa Anda telah:

  1. Membuat project Google Cloud .
  2. Siapkan Developer Device Platform dengan mengikuti Panduan memulai.
  3. Telah diautentikasi dengan gcloud di terminal.
  4. Meninjau Ringkasan Device Run untuk mengetahui informasi umum.
  5. Menyiapkan file Android yang dapat dieksekusi mandiri (seperti biner C++ yang dikompilasi, runner benchmark, atau skrip shell).

Langkah 1. Mengonfigurasi eksekusi yang dapat dieksekusi

Opsi untuk file Android yang dapat dieksekusi

  • Beberapa perangkat: Untuk menjalankan file yang dapat dieksekusi yang sama di beberapa perangkat, berikan flag --device dengan beberapa ID perangkat yang dipisahkan dengan koma, seperti --device shiba-34,tokay-36, atau dengan beberapa flag --device, masing-masing menentukan ID perangkat yang berbeda (misalnya, --device shiba-34 --device tokay-36).
  • Kirim file ke perangkat: Kirim file tambahan (seperti bobot model ML, input pengujian, atau pustaka bersama .so) ke perangkat sebelum eksekusi menggunakan --other-files-to-push=SOURCE=DEST,.... SOURCE mendukung jalur lokal dan jalur Cloud Storage (gs://...), dan DEST adalah jalur tujuan di perangkat.
  • Ambil file dari perangkat: Ambil file atau direktori yang dihasilkan dari perangkat setelah eksekusi selesai menggunakan --paths-to-pull=DEVICE_PATH,....
  • Bucket Cloud Storage kustom: Tentukan nama bucket Cloud Storage yang ada (tanpa skema atau jalur gs://) menggunakan --bucket-name=. Jika Anda tidak menentukan bucket, Google Cloud CLI akan menggunakan atau membuat bucket default bernama PROJECT_ID-devicerun.
  • Flaky test retries: Tetapkan jumlah maksimum upaya per tugas atau shard untuk menangani uji tidak stabil: --flaky-test-attempts=3 (defaultnya adalah 1 upaya).
  • Lingkungan dan diagnostik perangkat: Mengonfigurasi orientasi perangkat (--orientation=portrait atau landscape), lokalitas (--locale=en-US), lokasi GPS tiruan (--coordinates=LATITUDE,LONGITUDE), perekaman video layar (--video=always atau on-failure), pengumpulan dumpsys (--dumpsys=always atau on-failure), atau pengumpulan bugreport (--bugreport=always atau on-failure).
  • Label: Lampirkan label nilai kunci yang ditentukan pengguna ke sesi menggunakan --labels=KEY=VALUE,....
  • Argumen yang dapat dieksekusi: Teruskan argumen command line ke file yang dapat dieksekusi menggunakan --executable-args=ARG,... sebagai daftar yang dipisahkan koma atau dengan mengulangi flag. Setiap elemen menjadi satu argumen, jadi tulis ulang command line yang dipisahkan spasi dalam bentuk yang dipisahkan koma (misalnya, --executable-args="--input=a.file,--threads=4"). Untuk meneruskan argumen yang berisi koma, awali nilai dengan ^SEP^ untuk menentukan pemisah yang berbeda (misalnya, --executable-args="^;^--shape=1,224,224,3;--threads=4").
  • Variabel lingkungan: Tetapkan variabel lingkungan untuk proses yang dapat dieksekusi di perangkat menggunakan --executable-env-vars=KEY=VALUE,... (misalnya, --executable-env-vars=LD_LIBRARY_PATH=/data/local/tmp/lib).
  • Waktu tunggu yang dapat dieksekusi: Batasi durasi eksekusi yang dapat dieksekusi: --executable-timeout=10m (rentang yang valid adalah 1m hingga 3h dan ditetapkan secara default ke 5m, tidak termasuk waktu persiapan dan pembersihan perangkat).

Operasi sinkron dan asinkron

Secara default, perintah kirim bersifat memblokir (sinkron). Skrip ini akan menunggu file yang dapat dieksekusi selesai dan mencetak tabel ringkasan hasilnya.

Untuk mengirimkan sesi dan segera kembali setelah mengupload file ke Cloud Storage, tambahkan flag --async:

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

Tindakan ini akan langsung menampilkan ID sesi. Kemudian, Anda dapat menunggunya menggunakan perintah sessions wait:

gcloud beta device-run sessions wait SESSION_ID

Perintah akan diblokir hingga tugas selesai.

Beberapa perangkat

Untuk menjalankan file yang dapat dieksekusi yang sama di beberapa perangkat, berikan flag --device dengan beberapa ID perangkat yang dipisahkan dengan koma atau dengan beberapa flag --device, yang masing-masing menentukan ID perangkat yang berbeda.

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

Atau:

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

Waktu tunggu yang dapat dieksekusi

Batasi durasi eksekusi file yang dapat dieksekusi:

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

Rentang yang valid adalah 1m hingga 3h untuk operasi dan ditetapkan secara default ke 5m.

Langkah 2. Pilih perangkat

Dengan device-run CLI, file Android yang dapat dieksekusi dapat dijalankan di berbagai perangkat fisik dan perangkat virtual yang tersedia. Untuk melihat daftar lengkap perangkat yang tersedia, buka Katalog Perangkat interaktif atau jalankan:

gcloud beta device-run devices list

Contoh output:

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

Lihat Katalog Perangkat untuk mempelajari cara memfilter daftar ini. Untuk menargetkan perangkat tertentu untuk eksekusi Anda, gunakan ID yang sesuai (misalnya, tegu-35) dalam perintah pengiriman.

Langkah 3. Jalankan file yang dapat dieksekusi

Mengirimkan file Android yang dapat dieksekusi secara mandiri.

Untuk menjalankan file yang dapat dieksekusi mandiri (seperti biner C++ yang dikompilasi, runner benchmark machine learning di perangkat seperti LiteRT, atau skrip shell) langsung di perangkat Android tanpa mengemasnya ke dalam APK, gunakan perintah sessions submit android-executable.

Flag ini diperlukan untuk file yang dapat dieksekusi Android:

  • Perangkat: Tentukan perangkat menggunakan --device: --device shiba-35
  • Executable: Tentukan jalur lokal atau Cloud Storage ke file yang dapat dieksekusi menggunakan --executable: --executable /path/to/my_executable

Untuk menjalankan file yang dapat dieksekusi, berikan perintah yang mirip dengan berikut ini, menggunakan ID perangkat dan jalur file yang dapat dieksekusi Anda sendiri:

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

Folder laporan hasil tugas dapat ditemukan di jalur Cloud Storage seperti gs://BUCKET_NAME/automation/sessions/SESSION_ID/. Lihat output perintah untuk link, yang menyerupai: https://console.cloud.google.com/storage/browser/BUCKET_NAME/automation/sessions/SESSION_ID/.

Langkah 4. Menjelajahi dan mengelola eksekusi yang dapat dijalankan

Untuk mode asinkron dan sinkron dari perintah sessions submit android-executable, Anda dapat menggunakan perintah sessions describe untuk mengkueri status tugas selama eksekusi, atau mendapatkan hasilnya setelah selesai:

gcloud beta device-run sessions describe SESSION_ID

Output ini merangkum hasil eksekusi dan link ke hasil di konsolGoogle Cloud . Contoh:

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

Gunakan perintah berikut untuk mencantumkan semua sesi yang sedang berjalan dan yang telah selesai:

gcloud beta device-run sessions list

Terima output yang berisi daftar sesi dalam project Anda, yang menyerupai:

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

Perintah daftar sessions mendukung semua opsi flag Google Cloud CLI standar. Contoh:

gcloud beta device-run sessions list --limit 5

Yang memberikan hasil yang mirip dengan:

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

Atau, untuk menemukan semua sesi yang sedang berjalan, jalankan:

gcloud beta device-run sessions list --filter RUNNING

Dengan asumsi Anda memiliki sesi yang berjalan, Anda akan melihat hasil yang mirip dengan:

SESSION_ID        START_TIME  STATE
session-d7ff8b81              RUNNING

Jika tidak, Anda akan menerima Listed 0 items.

Untuk membatalkan sesi yang sedang berjalan, jalankan perintah ini dengan ID sesi Anda:

gcloud beta device-run sessions cancel SESSION_ID

Perintah akan segera ditampilkan, karena sesi hanya ditandai untuk dibatalkan. Pembatalan terjadi secara asinkron di backend.

Jika sesi sudah selesai, hanya status saat ini yang dicetak. Meminta pembatalan untuk sesi yang telah selesai bukanlah suatu error.

Langkah berikutnya

Selanjutnya, jalankan uji instrumentasi Android atau temukan dan analisis log.