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.chromeBağımsız değişkenler:
tags: İzlenecek etiketlerin virgülle ayrılmış listesi. Ayrıca,3akısaltması da kabul edilir. Burada3a, AF, AE ve AWB ile ilgili tümandroid.control.*etiketleri kümesini ifade eder (Etiketlerin tam listesi içinTagMonitor.cppbö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 listesindeallvarsa 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 dumpBu 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 250Bağı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 clearBu 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 stopdumpsys 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.cameradumpsys 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 MonitoredLinux
watchkomutunu kullanarak etiket izleme bilgilerinin canlı önizlemesini alın:watch -n 1 -c 'adb shell dumpsys media.camera -m 3a | grep -A50 Monitored'