本頁說明相機服務中的偵錯工具以供查看
擷取要求以及傳送到
相機 HAL相機服務包含 watch
和 dumpsys
指令。
適用於搭載 Android 13 以上版本的裝置,
watch
指令可讓您控管標記何時受到監控及存取、上線
預覽來自開放式用戶端的代碼監控傾印,以及查看快取
。dumpsys
指令允許存取偵錯
但不提供已關閉用戶端的標記監控傾印。
手錶指令
本節說明如何使用 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
是指所有android.control.*
的組合 與 AF、AE 和 AWB 相關的代碼 (如需完整的代碼清單,請參閱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
:選用引數。以毫秒為單位至 重新整理資訊。如果未傳遞任何值,則預設值為 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
指令會提供相機的偵錯資訊
課程中也會快速介紹 Memorystore
這是 Google Cloud 的全代管 Redis 服務下列指令會從
相機服務:
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'