Kamera Hata Ayıklama

Bu sayfada, kamera HAL'sine gönderilen ve kamera HAL'sinden gönderilen 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 üstünü çalıştıran cihazlarda bulunan watch komutu, etiketlerin ne zaman izleneceği ve erişileceği üzerinde kontrole, açık istemcilerden gelen etiket izleme dökümlerinin canlı önizlenmesine ve kapalı istemcilerden önbelleğe alınmış dökümlerin görüntülenmesine olanak tanır. dumpsys komutu, hata ayıklama bilgilerine erişime izin verir ancak kapalı istemcilerden etiket izleme dökümleri sağlamaz.

izle komutu

Bu bölümde watch komutunun nasıl kullanılacağı açıklanmakta ve örnekler verilmektedir.

Etiketleri izlemeye başlayın

Etiketleri izlemeye başlamak için şunu 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

Argümanlar:

  • tags : İzlenecek etiketlerin virgülle ayrılmış listesi. Ayrıca 3a kısaltmasını da kabul eder; burada 3a AF, AE ve AWB ile ilgili tüm android.control.* etiketlerinin kümesini ifade eder (etiketlerin tam listesi için bkz TagMonitor.cpp ).
  • clients : İsteğe bağlı argüman. Etiketlerin izlendiği istemci paketi adlarının virgülle ayrılmış listesi. Hiçbir istemci argümanı iletilmezse veya all istemciler listesinde mevcutsa tüm istemcileri izler.

Bu komut, açık istemcilerde ve sonradan açılan tüm istemcilerde ( stop çağrılana kadar) etiket izlemeyi başlatır. start çağrıldıktan sonra, kamera hizmeti, istemciler kapatıldığında istemcilerden gelen etiket izleme dökümlerini önbelleğe alır.

start çağrılmadığı sürece, kamera hizmeti herhangi bir istemcinin etiketlerini izlemez ve etiket izleme dökümlerini önbelleğe almaz. all clients parametresinde iletilirse, kamera hizmeti etiketleri izler ve tüm istemcilerden gelen dökümleri izleyerek önbelleğe alır.

Etiket izleme bilgilerini dök

Etiket izleme bilgilerini boşaltmak için şunu kullanın:

adb shell cmd media.camera watch dump

Bu komut, etiket izleme bilgilerini standart çıktıya aktarır ve ardından çıkar. start (veya son clear ) bu yana kapanan istemcilerden önbelleğe alınmış etiket izleme dökümlerini ve açık istemcilerden gelen 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 önizleyin

Etiket izleme bilgilerini gerçek zamanlı olarak önizlemek için şunu kullanın:

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

Örnek:

adb shell cmd media.camera watch live -n 250

Argümanlar:

  • refresh_interval_ms : İsteğe bağlı bağımsız değişken. Bilgilerin yenileneceği milisaniye cinsinden aralık. Hiçbir değer aktarılmazsa varsayılan olarak 1000 olur.

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ınmış dökümleri temizle

Ö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.

Etiketleri izlemeyi durdur

Tüm istemcilerdeki etiketleri izlemeyi durdurmak ve etiket izleme dökümlerini önbelleğe almak için tutulan tüm arabellekleri temizlemek için şunu kullanın:

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 hizmetindeki hata ayıklama dökümünün tamamını yakalar:

adb shell dumpsys media.camera

dumpsys komutu ayrıca açık istemcilerden etiket izleme dökümlerinin yakalanmasına 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 yakalayın:

    adb shell dumpsys media.camera -m 3a | grep -A50 Monitored
    
  • Linux watch komutunu kullanarak etiket izleme bilgilerinin canlı ön izlemesini alın:

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