이 페이지에서는 카메라 HAL과 주고받는 캡처 요청 및 결과 값의 변경사항을 볼 수 있는 카메라 서비스의 디버깅 도구를 설명합니다. 카메라 서비스에는 watch
및 dumpsys
명령어가 포함됩니다.
Android 13 이상을 실행하는 기기에서 사용할 수 있는 watch
명령어를 사용해 태그 모니터링 및 액세스 시점, 열려 있는 클라이언트의 태그 모니터링 덤프 실시간 미리보기, 닫혀 있는 클라이언트에서 캐시된 덤프 보기를 제어할 수 있습니다. dumpsys
명령어를 사용하면 디버깅 정보에 액세스할 수 있지만 닫혀 있는 클라이언트의 태그 모니터링 덤프는 제공되지 않습니다.
watch 명령어
이 섹션에서는 watch
명령어를 사용하는 방법을 설명하고 예를 제공합니다.
태그 모니터링 시작
태그 모니터링을 시작하려면 다음 명령어를 사용하세요.
adb shell cmd media.camera watch start -m <tags> [-c <clients>]
예:
adb shell cmd media.camera watch start \
-m android.control.effectMode,android.control.aeMode \
-c com.google.android.GoogleCamera,com.android.chrome
인수:
tags
: 모니터링할 태그 목록으로 쉼표로 구분되어 있습니다. 약식3a
도 사용할 수 있습니다. 여기서3a
는 AF, AE, AWB와 관련된 모든android.control.*
태그 집합을 나타냅니다. 전체 태그 목록은TagMonitor.cpp
에서 확인하세요.clients
: 선택적 인수입니다. 태그가 모니터링되는 클라이언트 패키지 이름 목록으로 쉼표로 구분되어 있습니다. 클라이언트 인수가 전달되지 않거나 클라이언트 목록에all
이 있으면 모든 클라이언트를 감시합니다.
이 명령어는 열려 있는 클라이언트 및 이후 열리는 모든 클라이언트에서 태그 모니터링을 시작합니다(stop
이 호출될 때까지). start
가 호출되면 클라이언트가 닫힐 때 카메라 서비스에서 클라이언트의 태그 모니터링 덤프를 캐시합니다.
start
가 호출되지 않는 한 카메라 서비스는 어떤 클라이언트의 태그도 모니터링하지 않으며, 태그 모니터링 덤프도 캐시하지 않습니다. clients
매개변수에 all
이 전달되면 카메라 서비스가 태그를 모니터링하고 모든 클라이언트의 모니터링 덤프를 캐시합니다.
태그 모니터링 정보 덤프
태그 모니터링 정보를 덤프하려면 다음 명령어를 사용하세요.
adb shell cmd media.camera watch dump
이 명령어는 태그 모니터링 정보를 표준 출력에 덤프한 다음 종료합니다. start
(또는 마지막 clear
) 이후 닫힌 클라이언트로부터 캐시된 태그 모니터링 덤프와 열려 있는 클라이언트의 최신 태그 모니터링 덤프를 출력합니다.
샘플 출력:
$ 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
...
태그 모니터링 정보 실시간 미리보기
태그 모니터링 정보를 실시간으로 미리 보려면 다음을 사용하세요.
adb shell cmd media.camera watch live [-n refresh_interval_ms]
예:
adb shell cmd media.camera watch live -n 250
인수:
refresh_interval_ms
: 선택적 인수입니다. 정보를 새로고침할 간격(밀리초)입니다. 값을 전달하지 않으면 기본값은 1000입니다.
이 명령어는 태그 모니터링 정보를 실시간으로 출력합니다. 종료하려면 return/enter를 누릅니다.
샘플 출력:
$ 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]
캐시된 덤프 삭제
캐시된 태그 모니터링 덤프를 모두 삭제하려면 다음 명령어를 사용하세요.
adb shell cmd media.camera watch clear
이 명령어는 태그 모니터링을 중지하지 않습니다.
태그 모니터링 중지
모든 클라이언트의 태그 모니터링을 중지하고 태그 모니터링 덤프 캐싱을 위해 저장된 모든 버퍼를 지우려면 다음 명령어를 사용하세요.
adb shell cmd media.camera watch stop
dumpsys 명령어
dumpsys
명령어는 카메라 서비스의 다양한 디버깅 정보를 제공합니다. 다음 명령어는 카메라 서비스의 모든 디버깅 덤프를 캡처합니다.
adb shell dumpsys media.camera
dumpsys
명령어를 사용하면 열려 있는 클라이언트의 태그 모니터링 덤프를 캡처할 수도 있습니다. 그러나 dumpsys
는 닫힌 클라이언트의 태그 모니터링 덤프를 제공하지 않습니다. 다음은 태그 모니터링에 dumpsys
를 사용하는 예입니다.
열려 있는 모든 클라이언트의 태그 모니터링 덤프 캡처:
adb shell dumpsys media.camera -m 3a | grep -A50 Monitored
Linux
watch
명령어를 사용하여 태그 모니터링 정보의 실시간 미리보기를 가져옵니다.watch -n 1 -c 'adb shell dumpsys media.camera -m 3a | grep -A50 Monitored'