Proses debug kamera

Halaman ini menjelaskan alat proses debug di layanan kamera untuk ditampilkan perubahan pada nilai permintaan pengambilan dan hasil yang dikirim ke dan dari HAL kamera Layanan kamera menyertakan perintah watch dan dumpsys. Tersedia di perangkat yang menjalankan Android 13 atau yang lebih baru, Perintah watch memungkinkan kontrol atas waktu tag dipantau dan diakses, live melihat pratinjau dump pemantauan tag dari klien terbuka, dan menampilkan file yang di-cache {i>dump<i} dari klien tertutup. Perintah dumpsys memungkinkan untuk mengakses proses debug tetapi tidak menyediakan dump pemantauan tag dari klien tertutup.

perintah watch

Bagian ini menjelaskan cara menggunakan perintah watch dan memberikan contoh.

Mulai memantau tag

Untuk mulai memantau tag, gunakan:

adb shell cmd media.camera watch start -m <tags> [-c <clients>]

Contoh:

adb shell cmd media.camera watch start \
-m android.control.effectMode,android.control.aeMode \
-c com.google.android.GoogleCamera,com.android.chrome

Argumen:

  • tags: Daftar tag yang dipisahkan dengan koma, yang akan dipantau. Juga menerima singkatan 3a, dengan 3a mengacu pada kumpulan semua android.control.* tag yang terkait dengan AF, AE, dan AWB (untuk daftar lengkap tag, lihat TagMonitor.cpp)
  • clients: Argumen opsional. Daftar paket klien yang dipisahkan koma nama tag yang dipantau. Menonton semua klien jika tidak ada klien diteruskan, atau jika all ada dalam daftar klien.

Perintah ini memulai pemantauan tag pada klien yang terbuka dan klien mana pun yang kemudian dibuka (hingga stop dipanggil). Setelah start dipanggil, Layanan kamera menyimpan cache dump pemantauan tag dari klien saat klien dekat.

Kecuali jika start dipanggil, layanan kamera tidak memantau tag untuk klien, dan tidak meng-cache dump pemantauan tag. Jika all diteruskan di clients, layanan kamera memantau tag dan pemantauan cache {i>dump<i} dari semua klien.

Menghapus informasi pemantauan tag

Untuk membuang informasi pemantauan tag, gunakan:

adb shell cmd media.camera watch dump

Perintah ini membuang informasi pemantauan tag ke {i>output<i} standar, lalu keluar. Solusi ini mencetak dump pemantauan tag yang di-cache dari klien yang telah menutup sejak start (atau clear terakhir) dan dump pemantauan tag terbaru dari dengan klien besar.

Contoh output:

$ adb shell cmd media.camera watch dump
Client: com.android.chrome (active)
1:com.android.chrome  f0:532642803202286ns:             REQ:android.control.aeMode: [ON] output stream ids:  0
1:com.android.chrome  f0:532642803202286ns:             REQ:android.control.afMode: [CONTINUOUS_PICTURE] output stream ids:  0
..
Client: com.google.android.GoogleCamera (cached)
0:com.google.android.GoogleCamera  f0:532601698728552ns:             REQ:android.control.aeMode: [ON] output stream ids:  0  3  1  2
0:com.google.android.GoogleCamera  f0:532601698728552ns:             REQ:android.control.afMode: [CONTINUOUS_PICTURE] output stream ids:  2  1  3  0
0:com.google.android.GoogleCamera  f0:532601698728552ns:             REQ:android.control.awbMode: [AUTO] output stream ids:  0  3  1  2
...

Melihat pratinjau informasi pemantauan tag secara real time

Untuk melihat pratinjau informasi pemantauan tag secara real time, gunakan:

adb shell cmd media.camera watch live [-n refresh_interval_ms]

Contoh:

adb shell cmd media.camera watch live -n 250

Argumen:

  • refresh_interval_ms: Argumen opsional. Interval dalam milidetik hingga menyegarkan informasi di. Jika tidak ada nilai yang diteruskan, setelan defaultnya adalah 1.000.

Perintah ini mencetak informasi pemantauan tag secara real time. Untuk keluar, tekan return/enter.

Contoh output:

$ adb shell cmd media.camera watch live
Press return to exit...

0:com.google.android.GoogleCamera  f0:533016991302201ns:             REQ:android.control.aeMode: [ON] output stream ids:  1  3  0  2
0:com.google.android.GoogleCamera  f0:533016991302201ns:             REQ:android.control.afMode: [CONTINUOUS_PICTURE] output stream ids:  2  0  3  1
...
0:com.google.android.GoogleCamera  f0:533017066793915ns:                            RES:android.control.aeState: [SEARCHING]
0:com.google.android.GoogleCamera  f0:533017066793915ns: 3                          RES:android.control.aeState: [SEARCHING]
0:com.google.android.GoogleCamera  f0:533017066793915ns: 2                          RES:android.control.aeState: [SEARCHING]
0:com.google.android.GoogleCamera  f0:533017066793915ns:                            RES:android.control.afState: [PASSIVE_SCAN]

Menghapus dump yang di-cache

Untuk menghapus semua dump pemantauan tag yang di-cache, gunakan:

adb shell cmd media.camera watch clear

Perintah ini tidak menghentikan pemantauan tag.

Berhenti memantau tag

Untuk berhenti memantau tag di semua klien dan menghapus semua buffer yang disimpan untuk caching dump pemantauan tag, gunakan:

adb shell cmd media.camera watch stop

perintah dumpsys

Perintah dumpsys menyediakan sejumlah informasi proses debug dari kamera layanan. Perintah berikut merekam seluruh dump proses debug dari layanan kamera:

adb shell dumpsys media.camera

Perintah dumpsys juga memungkinkan pengambilan dump pemantauan tag dari open source dengan klien besar. Namun, dumpsys tidak menyediakan dump pemantauan tag dari dump tertutup dengan klien besar. Berikut adalah contoh penggunaan dumpsys untuk pemantauan tag:

  • Catat dump pemantauan tag dari semua klien terbuka:

    adb shell dumpsys media.camera -m 3a | grep -A50 Monitored
    
  • Dapatkan pratinjau langsung informasi pemantauan tag menggunakan Linux Perintah watch:

    watch -n 1 -c 'adb shell dumpsys media.camera -m 3a | grep -A50 Monitored'