Bu sayfada, kamera HAL'ına gönderilen ve kamera HAL'ından alınan yakalama isteği ve sonuç değerlerindeki değişiklikleri görüntülemek için kamera hizmetindeki hata ayıklama araçları açıklanmaktadır. Kamera hizmeti watch
ve dumpsys
komutlarını içerir.
Android 13 veya sonraki sürümleri çalıştıran cihazlarda kullanılabilen watch
komutu, etiketlerin ne zaman izleneceğini ve erişileceğini kontrol etmenize, açık istemcilerden etiket izleme dökümlerinin canlı önizlemesini yapmanıza ve kapalı istemcilerden önbelleğe alınmış dökümleri görüntülemenize olanak tanır. dumpsys
komutu, hata ayıklama bilgilerine erişime izin verir ancak kapalı istemcilerden etiket izleme dökümleri sağlamaz.
izleme komutu
Bu bölümde, watch
komutunun nasıl kullanılacağı açıklanmakta ve örnekler verilmektedir.
Etiketleri izlemeye başlama
Etiketleri izlemeye başlamak için şunları kullanın:
adb shell cmd media.camera watch start -m <tags> [-c <clients>]
Örnek:
adb shell cmd media.camera watch start \
-m android.control.effectMode,android.control.aeMode \
-c com.google.android.GoogleCamera,com.android.chrome
Bağımsız değişkenler:
tags
: İzlenecek etiketlerin virgülle ayrılmış listesi. Ayrıca,3a
kısaltması da kabul edilir. Burada3a
, AF, AE ve AWB ile ilgili tümandroid.control.*
etiketleri kümesini ifade eder (Etiketlerin tam listesi içinTagMonitor.cpp
bölümüne bakın).clients
: İsteğe bağlı bağımsız değişken. Etiketlerin izlendiği istemci paketi adlarının virgülle ayrılmış listesi. İstemci bağımsız değişkeni iletilmezse veya istemci listesindeall
varsa tüm istemcileri izler.
Bu komut, açık istemcilerde ve daha sonra açılan tüm istemcilerde (stop
çağrılana kadar) etiket izlemeyi başlatır. start
çağrıldıktan sonra:
Kamera hizmeti, istemciler kapandığında istemcilerden gelen etiket izleme dökümlerini önbelleğe alır.
start
çağrılmadığı sürece kamera hizmeti, hiçbir istemci için etiketleri izlemez ve etiket izleme dökümlerini önbelleğe almaz. all
, clients
parametresinde iletilirse kamera hizmeti etiketleri izler ve tüm istemcilerden izleme dökümlerini önbelleğe alır.
Etiket izleme bilgilerini döküm olarak alma
Etiket izleme bilgilerini boşaltmak için şunu kullanın:
adb shell cmd media.camera watch dump
Bu komut, etiket izleme bilgilerini standart çıkışa boşaltır ve ardından çıkar. start
(veya son clear
) tarihinden beri kapatılmış istemcilerden alınan, etiket izleme ile ilgili önbelleğe alınmış dökümleri ve açık istemcilerden alınan en son etiket izleme dökümünü yazdırır.
Örnek çıktı:
$ 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
...
Etiket izleme bilgilerini gerçek zamanlı olarak önizleme
Etiket izleme bilgilerini gerçek zamanlı olarak önizlemek için şunları kullanın:
adb shell cmd media.camera watch live [-n refresh_interval_ms]
Örnek:
adb shell cmd media.camera watch live -n 250
Bağımsız değişkenler:
refresh_interval_ms
: İsteğe bağlı bağımsız değişken. Bilgilerin yenileneceği milisaniye cinsinden aralık. Değer iletilmezse varsayılan olarak 1.000'dir.
Bu komut, etiket izleme bilgilerini gerçek zamanlı olarak yazdırır. Çıkmak için return/enter tuşuna basın.
Örnek çıktı:
$ 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]
Önbelleğe alınan dökümleri temizleme
Önbelleğe alınmış tüm etiket izleme dökümlerini temizlemek için şunu kullanın:
adb shell cmd media.camera watch clear
Bu komut, etiket izlemeyi durdurmaz.
Etiket izlemeyi durdurma
Tüm istemcilerdeki etiketlerin izlenmesini durdurmak ve önbelleğe alma için tutulan tüm arabellekleri temizlemek etiket izleme dökümlerini kullanmak için:
adb shell cmd media.camera watch stop
dumpsys komutu
dumpsys
komutu, kamera hizmetinden bir dizi hata ayıklama bilgisi sağlar. Aşağıdaki komut, kamera hizmetinden tüm hata ayıklama dökümünü yakalar:
adb shell dumpsys media.camera
dumpsys
komutu, açık istemcilerden etiket izleme dökümleri yakalamaya da olanak tanır. Ancak dumpsys
, kapalı istemcilerden etiket izleme dökümleri sağlamaz. Aşağıda, etiket izleme için dumpsys
kullanma örnekleri verilmiştir:
Tüm açık istemcilerden etiket izleme dökümlerini yakalama:
adb shell dumpsys media.camera -m 3a | grep -A50 Monitored
Linux
watch
komutunu kullanarak etiket izleme bilgilerinin canlı önizlemesini alın:watch -n 1 -c 'adb shell dumpsys media.camera -m 3a | grep -A50 Monitored'