このページではカメラサービスのデバッグツールについて説明します。キャプチャ リクエストでの変更や、カメラ 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 が呼び出されない限り、カメラサービスはクライアントのタグをモニタリングすることも、タグ モニタリング ダンプをキャッシュに保存することもありません。all が clients パラメータに渡されると、カメラサービスはタグをモニタリングし、すべてのクライアントからのモニタリング ダンプをキャッシュに保存します。
タグ モニタリング情報をダンプする
タグ モニタリング情報をダンプするには、次のコマンドを使用します。
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: 省略可能な引数。情報を更新する間隔(ミリ秒単位)。値が渡されない場合、デフォルトの 1,000 になります。
このコマンドは、タグ モニタリング情報をリアルタイムで出力します。終了するには、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 stopdumpsys コマンド
dumpsys コマンドは、カメラサービスからのデバッグ情報を多数提供します。次のコマンドは、カメラサービスからのデバッグダンプ全体をキャプチャします。
adb shell dumpsys media.cameradumpsys コマンドを使用すると、開いているクライアントからタグ モニタリング ダンプをキャプチャすることもできます。ただし、dumpsys では、閉じたクライアントからのタグ モニタリング ダンプは提供されません。タグ モニタリングに dumpsys を使用する例を以下に示します。
開いているすべてのクライアントからタグ モニタリング ダンプをキャプチャする:
adb shell dumpsys media.camera -m 3a | grep -A50 MonitoredLinux の
watchコマンドを使用して、タグ モニタリング情報のライブ プレビューを取得する:watch -n 1 -c 'adb shell dumpsys media.camera -m 3a | grep -A50 Monitored'