Proses debug kamera

Halaman ini menjelaskan alat proses debug di layanan kamera untuk melihat perubahan pada nilai permintaan pengambilan dan hasil yang dikirim ke dan dari HAL kamera. Layanan kamera mencakup perintah watch dan dumpsys. Tersedia di perangkat yang menjalankan Android 13 atau yang lebih tinggi, perintah watch memungkinkan kontrol atas kapan tag dipantau dan diakses, pratinjau langsung dump pemantauan tag dari klien yang terbuka, dan melihat dump yang di-cache dari klien yang tertutup. Perintah dumpsys memungkinkan akses ke informasi debug, tetapi tidak memberikan dump pemantauan tag dari klien yang ditutup.

perintah smartwatch

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 koma untuk dipantau. Juga menerima singkatan 3a, dengan 3a mengacu pada kumpulan semua tag android.control.* yang terkait dengan AF, AE, dan AWB (untuk daftar lengkap tag, lihat TagMonitor.cpp).
  • clients: Argumen opsional. Daftar nama paket klien yang dipisahkan koma yang tagnya dipantau. Memantau semua klien jika tidak ada argumen klien yang diteruskan, atau jika all ada dalam daftar klien.

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

Kecuali start dipanggil, layanan kamera tidak memantau tag untuk klien apa pun, dan tidak menyimpan dump pemantauan tag dalam cache. Jika all diteruskan dalam parameter clients, layanan kamera akan memantau tag dan menyimpan dump pemantauan dalam cache dari semua klien.

Buang informasi pemantauan tag

Untuk menampilkan informasi pemantauan tag, gunakan:

adb shell cmd media.camera watch dump

Perintah ini akan mencetak informasi pemantauan tag ke output standar, lalu keluar. Perintah ini mencetak dump pemantauan tag yang di-cache dari klien yang telah ditutup sejak start (atau clear terakhir) dan dump pemantauan tag terbaru dari klien yang terbuka.

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 untuk memperbarui informasi. Nilai defaultnya adalah 1000 jika tidak ada nilai yang diteruskan.

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.

Menghentikan tag pemantauan

Untuk menghentikan pemantauan tag di semua klien dan menghapus semua buffer yang disimpan untuk penyimpanan sementara hasil dump pemantauan tag, gunakan:

adb shell cmd media.camera watch stop

Perintah dumpsys

Perintah dumpsys memberikan banyak informasi proses debug dari layanan kamera. Perintah berikut merekam seluruh dump debug dari layanan kamera:

adb shell dumpsys media.camera

Perintah dumpsys juga memungkinkan pengambilan dump pemantauan tag dari klien yang terbuka. Namun, dumpsys tidak menyediakan dump pemantauan tag dari klien yang ditutup. Berikut adalah contoh penggunaan dumpsys untuk pemantauan tag:

  • Merekam dump pemantauan tag dari semua klien yang terbuka:

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

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