Gỡ lỗi camera

Trang này mô tả các công cụ gỡ lỗi trong dịch vụ máy ảnh để xem những thay đổi trong yêu cầu chụp và giá trị kết quả được gửi đến và đi từ lớp trừu tượng phần cứng (HAL) cho máy ảnh. Dịch vụ camera bao gồm các lệnh watchdumpsys. Có trên các thiết bị chạy Android 13 trở lên, Lệnh watch cho phép kiểm soát thời điểm thẻ được giám sát và truy cập, trực tiếp xem trước tệp kết xuất theo dõi thẻ từ ứng dụng mở và xem tệp được lưu vào bộ nhớ đệm tệp kết xuất từ các ứng dụng đã đóng. Lệnh dumpsys cho phép truy cập vào tính năng gỡ lỗi nhưng không cung cấp tệp kết xuất giám sát thẻ từ ứng dụng đã đóng.

lệnh đồng hồ

Phần này mô tả cách sử dụng lệnh watch và đưa ra ví dụ.

Bắt đầu giám sát các thẻ

Để bắt đầu giám sát thẻ, hãy sử dụng:

adb shell cmd media.camera watch start -m <tags> [-c <clients>]

Ví dụ:

adb shell cmd media.camera watch start \
-m android.control.effectMode,android.control.aeMode \
-c com.google.android.GoogleCamera,com.android.chrome

Đối số:

  • tags: Danh sách các thẻ được phân tách bằng dấu phẩy cần theo dõi. Cũng chấp nhận viết tắt 3a, trong đó 3a là tập hợp mọi android.control.* các thẻ liên quan đến AF, AE và AWB (để biết danh sách đầy đủ các thẻ, hãy xem TagMonitor.cpp).
  • clients: Đối số không bắt buộc. Danh sách gói ứng dụng được phân tách bằng dấu phẩy các tên thẻ được giám sát. Theo dõi tất cả khách hàng nếu không có khách hàng nào được truyền đối số hoặc nếu all có trong danh sách ứng dụng.

Lệnh này bắt đầu theo dõi thẻ trong các ứng dụng đang mở và trong bất kỳ ứng dụng nào được mở sau đó (cho đến khi gọi stop). Sau khi gọi start, Dịch vụ máy ảnh lưu các tệp kết xuất giám sát thẻ từ ứng dụng vào bộ nhớ đệm khi các ứng dụng đó đóng.

Trừ phi start được gọi, dịch vụ máy ảnh sẽ không giám sát thẻ để tìm và không lưu tệp kết xuất theo dõi thẻ vào bộ nhớ đệm. Nếu all được truyền vào trường clients, thì dịch vụ máy ảnh sẽ giám sát thẻ và bộ nhớ đệm tệp kết xuất từ tất cả ứng dụng.

Thông tin giám sát thẻ kết xuất

Để kết xuất thông tin theo dõi thẻ, hãy sử dụng:

adb shell cmd media.camera watch dump

Lệnh này kết xuất thông tin theo dõi thẻ vào đầu ra chuẩn, sau đó thoát. Hệ thống sẽ in các tệp kết xuất theo dõi thẻ được lưu vào bộ nhớ đệm từ các ứng dụng đã đóng kể từ start (hoặc clear gần đây nhất) và tệp kết xuất theo dõi thẻ mới nhất từ mở khách hàng.

Kết quả mẫu:

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

Xem trước thông tin theo dõi thẻ theo thời gian thực

Để xem trước thông tin theo dõi thẻ theo thời gian thực, hãy sử dụng:

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

Ví dụ:

adb shell cmd media.camera watch live -n 250

Đối số:

  • refresh_interval_ms: Đối số không bắt buộc. Khoảng thời gian tính bằng mili giây đến hãy làm mới thông tin tại. Giá trị mặc định là 1000 nếu không có giá trị nào được truyền.

Lệnh này in thông tin theo dõi thẻ theo thời gian thực. Để thoát, hãy nhấn trả lại/nhập.

Kết quả mẫu:

$ 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]

Xoá tệp kết xuất đã lưu vào bộ nhớ đệm

Để xoá tất cả tệp kết xuất theo dõi thẻ đã lưu vào bộ nhớ đệm, hãy sử dụng:

adb shell cmd media.camera watch clear

Lệnh này không dừng tính năng theo dõi thẻ.

Ngừng giám sát thẻ

Để ngừng giám sát các thẻ trong tất cả ứng dụng và xoá tất cả các vùng đệm được giữ lại để lưu vào bộ nhớ đệm tệp kết xuất giám sát thẻ, hãy sử dụng:

adb shell cmd media.camera watch stop

lệnh dumpsys

Lệnh dumpsys cung cấp một loạt thông tin gỡ lỗi từ máy ảnh . Lệnh sau đây ghi lại toàn bộ tệp kết xuất gỡ lỗi từ dịch vụ camera:

adb shell dumpsys media.camera

Lệnh dumpsys cũng cho phép ghi lại các tệp kết xuất theo dõi thẻ đang mở khách hàng. Tuy nhiên, dumpsys không cung cấp tệp kết xuất giám sát thẻ từ trạng thái đã đóng khách hàng. Sau đây là ví dụ về cách sử dụng dumpsys để theo dõi thẻ:

  • Ghi lại tệp kết xuất giám sát thẻ từ tất cả ứng dụng mở:

    adb shell dumpsys media.camera -m 3a | grep -A50 Monitored
    
  • Dùng Linux để xem trước trực tiếp thông tin giám sát thẻ Lệnh watch:

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