Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.

Máy ảnh ITS-in-a-Box

Bộ kiểm tra hình ảnh máy ảnh Android (ITS) là một phần của Bộ kiểm tra khả năng tương thích Android (CTS) Verifier và bao gồm các kiểm tra xác minh nội dung hình ảnh. CTS Verifier hỗ trợ tự động kiểm tra ITS với Camera ITS-in-a-box; hỗ trợ kiểm tra thủ công bao gồm tất cả các yếu tố hình thức của thiết bị Android.

ITS-in-a-box bao gồm các lợi ích sau:

  • Tự động hóa. Không cần sự can thiệp của con người trong quá trình thử nghiệm.
  • Xử lý sự cố dễ dàng. Tính nhất quán của môi trường thử nghiệm dẫn đến ít lỗi thiết lập hơn và tăng khả năng lặp lại.
  • Hiệu quả. Khả năng thử lại cho từng camera/cảnh giúp cải thiện hiệu quả thực hiện thử nghiệm.

Bắt đầu

ITS-in-a-box bao gồm một hộp nhựa được cắt bằng tia laser từ các bản vẽ thiết kế có sự hỗ trợ của máy tính (CAD), một bảng biểu đồ và một thiết bị đang thử nghiệm (DUT). Bạn có thể sử dụng ITS-in-a-box có trường nhìn rộng (WFoV), có khả năng kiểm tra cả camera WFoV (foV > 90 độ) và RFoV (foV < 90 độ) hoặc trường thông thường -view (RFoV) ITS-in-a-box.

Để bắt đầu với Camera ITS-in-a-box:

  1. Mua hoặc xây dựng WFoV hoặc RFoV ITS-in-a-box.
  2. Cấu hình máy tính bảng với phần mềm Camera ITS.
  3. Chạy thử nghiệm .
  4. Nhận kết quả từ DUT.

Cấu hình máy tính bảng

Phần này cung cấp hướng dẫn từng bước để thiết lập máy tính bảng để sử dụng với các bài kiểm tra Camera ITS có trong thư CameraITS . Các hướng dẫn này sử dụng Pixel C làm máy tính bảng mẫu. Để biết thông tin về các yêu cầu và đề xuất về máy tính bảng, hãy xem Yêu cầu về máy tính bảng .

Lưu ý: Tập lệnh Camera ITS Python tự động đặt các tùy chọn sau trên máy tính bảng cho bạn:
Cài đặt > Hiển thị > Ngủ > Sau 30 phút không hoạt động
Độ sáng thích ứng > TẮT

  1. Sạc máy tính bảng và bật nguồn. Nếu được nhắc thiết lập tài khoản, hãy bỏ qua (Camera ITS không yêu cầu bất kỳ tài khoản nào được ghép nối với máy tính bảng).
  2. Cập nhật máy tính bảng lên Android 7.0 trở lên. Android 6.x và các phiên bản thấp hơn không hỗ trợ Camera ITS.
  3. Kích hoạt chế độ nhà phát triển .
  4. Quay lại Cài đặt và chọn Tùy chọn nhà phát triển.
    Bật tùy chọn
    • Trên
    • Tỉnh táo
    • Gỡ lỗi USB (Điều này cho phép máy chủ chạy máy tính bảng ở chế độ gỡ lỗi. Khi bạn kết nối máy tính bảng với máy chủ lần đầu tiên, máy tính bảng sẽ nhắc Cho phép gỡ lỗi USB? Nếu máy tính bảng không hiển thị lời nhắc gỡ lỗi, hãy ngắt kết nối rồi kết nối lại viên thuốc.)
    Vô hiệu hóa tùy chọn
    • Cập nhật hệ thống tự động
    • Xác minh ứng dụng qua USB
  5. Xác định DUT và ID biểu đồ bằng cách chạy $ adb devices để liệt kê các thiết bị khả dụng. Để xác định device_idchart_id , hãy cắm và rút phích cắm các thiết bị, đồng thời quan sát các thiết bị kết nối và ngắt kết nối.
  6. Thực hiện ba lần chạy thử để loại bỏ các gợi ý và lời nhắc của người dùng có thể che khuất các biểu đồ trên màn hình máy tính bảng.
    1. Đặt máy tính bảng ngửa lên trên bàn (không gắn máy tính bảng vào mặt sau của hộp).
    2. Chạy lệnh sau:
      python tools/run_all_tests.py device=$device_id camera=0 chart=$chart_id scenes=2,3
      
      Cảnh 2 và 3 yêu cầu máy tính bảng hiển thị hình ảnh, vì vậy máy tính bảng sẽ nhắc Cho phép Drive truy cập ảnh, phương tiện và tệp trên thiết bị của bạn? . Xóa lời nhắc này (và ngăn các lời nhắc trong tương lai) bằng cách nhấn Cho phép.
    3. Chạy lại lệnh. Máy tính bảng nhắc Giữ một bản sao của tệp này? và đề xuất Google Drive. Xóa lời nhắc này (và ngăn các lời nhắc trong tương lai) bằng cách nhấn vào biểu tượng Drive, sau đó nhấn Hủy để tải lên drive.
    4. Cuối cùng, hãy chạy tools/run_all_tests.py và xác nhận rằng các cảnh thay đổi tự động khi tập lệnh quay vòng qua các cảnh khác nhau. Mặc dù hầu hết các thử nghiệm đều không thành công (vì máy ảnh không hướng vào biểu đồ), bạn có thể xác minh rằng máy tính bảng quay vòng chính xác qua các cảnh mà không hiển thị bất kỳ lời nhắc hoặc cửa sổ bật lên nào khác trên màn hình.

chạy thử nghiệm

Trước khi chạy ITS-in-a-box, hãy đảm bảo rằng thiết lập thử nghiệm của bạn bao gồm phần cứng và phần mềm sau:

  • Một (1) ITS-in-a-box
  • Một (1) máy tính bảng 10" độ phân giải cao để hiển thị cảnh, S/N: 5811000011
  • Một (1) DUT đã cài đặt ứng dụng CTS Verifier 7.0_8+. Ví dụ DUT:
    • Một (1) Pixel NOF26W để thử nghiệm camera sau (0), S/N: FA6BM0305016. Để cài đặt ứng dụng CTS Verifier, hãy giải nén android-cts-verifier.zip sau đó chạy
      adb -s FA6BM0305016 install -r -g android-cts-verifier/CtsVerifier.apk
      

Chạy các cảnh dựa trên máy tính bảng

Để chạy cảnh 0 đến 4, 6 và cảnh_change trên camera sau:

cd android-cts-verifier/CameraITS
. build/envsetup.sh
python tools/run_all_tests.py camera=0

Thí dụ:

Máy ảnh 0 S/N: FA6BM0305016
Hình 1. Camera 0 S/N: FA6BM0305016

thử lại cảnh

Bạn có thể thử lại các cảnh cho một camera:

  • Để thử lại cảnh trên một camera:
    python tools/run_all_tests.py device=FA6BM0305016 camera=0 scenes=3,4
    

Chạy cảnh 5

Cảnh 5 yêu cầu thiết lập đặc biệt với ánh sáng cụ thể (để biết chi tiết, hãy tham khảo CameraITS.pdf trong CTS Verifier, mà bạn có thể tải xuống tại Tải xuống Bộ kiểm tra khả năng tương thích ). Bạn phải chạy riêng cảnh 5 (bên ngoài hộp).

máy ảnh cảnh 5
Hình 2. Cảnh camera 5

Để chạy cảnh 5 cho camera trước và sau trên một thiết bị:

python tools/run_all_tests.py device=FA6BM0305016 camera=0 scenes=5
python tools/run_all_tests.py device=FA6BM0305016 camera=1 scenes=5

Nhận kết quả

Bạn có thể xem kết quả trong quá trình thử nghiệm và lưu kết quả đã hoàn thành dưới dạng báo cáo.

  • Xem Kết quả. Để lưu kết quả Camera ITS dưới dạng báo cáo:
    1. Nhấn Pass và lưu báo cáo.
      máy ảnh báo cáo ITS
      Hình 3. Báo cáo ITS của máy ảnh
    2. Kéo báo cáo từ thiết bị:
      adb -s FA6BM0305016 pull /sdcard/verifierReports
      
    3. Giải nén tệp báo cáo và xem test_result.xml .
      máy ảnh báo cáo ITS
      Hình 4. Báo cáo ITS của máy ảnh

Yêu cầu máy tính bảng

Máy tính bảng phải có kích thước màn hình khoảng 10 inch với độ phân giải màn hình lớn hơn 1920 x 1200 pixel. Giá trị brightness phải được đặt trong config.yml theo kiểu máy tính bảng. Bảng bên dưới liệt kê các máy tính bảng được đề xuất để thử nghiệm ITS cùng với các phiên bản phát hành Android cho DUT mà các máy tính bảng này hoạt động cùng.

Thiết bị kích thước hiển thị
(inch)
kích thước hiển thị
(điểm ảnh)
Kích thước máy tính bảng
(inch)
Trưng bày
độ sáng
Trưng bày
chút ít
được hỗ trợ
hệ điều hành DUT
SAMSUNG
Galaxy Tab A8
10,5 1920 x 1200 9,72 x 6,37 x 0,27 192 số 8 Android13+
Xiaomi
Phần 5
11 2560 x 1600 10,03 x 6,55 x 0,27 1536 11 Android12+
lenovo
Tab M10 Plus
10.3 1920 x 1200 9,61 x 6,03 x 0,32 192 số 8 Android12+
SAMSUNG
Galaxy Tab A7
10.4 2000 x 1200 9,75 x 6,2 x 0,28 192 số 8 Android12+
chuwi
Hi9 Air 10.1
10.1 2560 x 1600 9,52 x 6,77 x 0,31 192 số 8 Android 7+
asus
ZenPad 3
9,7 2048 x 1536 9,47 x 6,44 x 0,28 192 số 8 Android 7+
Huawei
MediaPad m5
10.8 2560 x 1600 10,18 x 6,76 x 0,29 192 số 8 Android 7+
Google
điểm ảnh C
10.2 2560 x 1800 9,53 x 7,05 x 0,28 96 số 8 Android 7+
sony
xperia Z4
10.1 2560 x 1600 10 x 6,57 x 0,24 192 số 8 Android 7+

Câu hỏi thường gặp (FAQ)

Câu hỏi 1: Làm cách nào để xác định thiết bị kiểm tra nào tôi cần cho thiết bị của mình?

Bản sửa đổi RFoV ITS-in-a-box 1 kiểm tra camera RFoV cho các kiểm tra cảnh 0 đến cảnh 4 trong thư mục CameraITS/tests . RFoV được định nghĩa là 60° < foV < 90° . Đối với máy ảnh foV lớn hơn, đèn có thể xuất hiện trong ảnh hoặc biểu đồ có thể bao phủ một khu vực quá nhỏ trong foV, ảnh hưởng đến kết quả kiểm tra.

Phiên bản WFoV ITS-in-a-box 2 kiểm tra camera WFoV cho các kiểm tra cảnh 0 đến cảnh 4 trong thư mục CameraITS/tests . WFoV được định nghĩa là foV >= 90° . Nó có chức năng giống với phiên bản 1, nhưng lớn hơn. Giàn thử nghiệm phiên bản 2 có thể kiểm tra cả máy ảnh RFoV và WFoV trong Android 9 trở lên.

Hộp kết hợp cảm biến kiểm tra độ lệch thời gian của camera/con quay hồi chuyển và đồng bộ hóa khung của hệ thống nhiều camera với các thử nghiệm trong scenes=sensor_fusion . Cần có độ lệch thời gian của máy ảnh/con quay hồi chuyển dưới 1 ms cho cờ tính năng REALTIME và các ứng dụng VR/AR.

Có thể kiểm tra thiết bị nhiều camera bằng một thiết bị duy nhất để kiểm tra ITS tĩnh và thiết bị kết hợp cảm biến nếu máy ảnh có cờ tính năng REALTIME .

Một tập hợp các cấu hình ví dụ được cung cấp trong bảng bên dưới.

Thí dụ Camera foV THỜI GIAN THỰC? Giàn khoan được đề xuất ghi chú
1 75° Không tái hiện 1 Android 7.0 trở lên
2 75° Đúng Rev 1 + kết hợp cảm biến Android 9 trở lên
3 75° + 95° Đúng Rev 2 + kết hợp cảm biến Android 9 trở lên

Câu hỏi 2: Làm cách nào để chỉ định thiết bị kiểm tra nào đang được sử dụng?

Để chỉ định thiết bị kiểm tra chính xác, hãy đảm bảo rằng thông số khoảng cách biểu đồ là chính xác. Giàn thử nghiệm rev1 (RFoV) có khoảng cách biểu đồ là 31 cm và giàn thử nghiệm rev2 (WFoV) có khoảng cách biểu đồ là 22 cm. Theo mặc định, khoảng cách biểu đồ được đặt thành 31 cm.

Android 10 lên Android 11

Để xác định thiết bị thử nghiệm chính xác trong Android 10 đến 11, hãy thêm cờ dist vào dòng lệnh. Giá trị mặc định cho dist31 . Chạy lệnh sau để thay đổi tham số chart_distance .
python tools/run_all_tests.py ... chart=# dist=22

Android 12

Để xác định giàn thử nghiệm chính xác trong Android 12, bạn có thể chỉnh sửa tệp config.yml để thay đổi tham số chart_distance .
edit config.yml
chart_distance: 31.0 → chart_distance: 22.0

Q3: Làm cách nào để kiểm soát độ sáng của máy tính bảng?

Theo mặc định, độ sáng của máy tính bảng được đặt thành 96.

Để thay đổi độ sáng trên máy tính bảng chạy Android 7.0 đến Android 9, hãy chạy:

edit tools/wake_up_screen.py
DISPLAY_LEVEL=96 → DISPLAY_LEVEL=192

Để thay đổi độ sáng trên máy tính bảng chạy Android 10 đến 11, giá trị có thể được thay đổi tại dòng lệnh bằng cách thêm cờ brightness :

python tools/run_all_tests.py device=# camera=# chart=# brightness=192

Để thay đổi độ sáng trên máy tính bảng chạy Android 12, hãy chạy:

edit config.yml
brightness: 96 → brightness: 192

Câu hỏi 4: Làm cách nào để gỡ lỗi một bài kiểm tra?

Các thử nghiệm có thể được chạy riêng lẻ cho mục đích gỡ lỗi, nhưng kết quả không được báo cáo cho CtsVerifier.apk trừ khi toàn bộ cảnh được chạy.

Để chạy một cảnh riêng lẻ trong Android 11 trở xuống:

  1. Tải một cảnh bằng cách thêm cờ scenes vào tools/run_all_tests.py :
    python tools/run_all_tests.py device=# camera=# chart=# scenes=#
    
  2. Nhấn Control+C để tạm dừng kiểm tra sau khi cảnh được ghi là đã tải vào stdout .

    Nếu cảnh chính xác đã có trên màn hình, hãy đánh thức màn hình:

    python tools/wake_up_screen.py screen=#
    
  3. Chạy thử nghiệm cá nhân.

    python tests/scene#/test_*.py device=# camera=#

    Sau đó, các ô được tạo trong thư mục cục bộ và stdout và thiết bị xuất stderr được in ra màn hình.

    Để có thêm thông tin cho việc gỡ lỗi, hãy thêm các câu lệnh print vào tập lệnh. Để tăng đầu ra thử nghiệm để gỡ lỗi, hãy thêm cờ debug=True .

    python tests/scene#/test_*.py device=# camera=# debug=True

Kết quả được in ra màn hình cục bộ và hình ảnh được lưu trong thư mục cục bộ thay vì /tmp/tmp### được tạo khi chạy tools/run_all_tests.py .

Để chạy một cảnh riêng lẻ trong Android 12:

  1. Chỉnh sửa tệp config.yml .

    edit config.yml
    camera: <camera-id> → camera:  0
    scene: <scene-name> → scene: scene1_1
  2. Chạy thử nghiệm cá nhân.

    python tools/run_all_tests.py -c config.yml --test_bed TEST_BED_TABLET_SCENES
    

Kết quả được in trong /tmp/logs/mobly/TEST_BED_TABLET_SCENES/ được sắp xếp theo thời gian chạy.

Câu hỏi 5: Tại sao tôi cần chạy thử nghiệm không thành công trong toàn bộ cảnh thay vì chạy lại thử nghiệm riêng lẻ?

Các thử nghiệm có thể được chạy riêng lẻ cho mục đích gỡ lỗi, nhưng kết quả không được báo cáo cho CtsVerifier.apk trừ khi toàn bộ cảnh được chạy.

Camera ITS đảm bảo rằng các ứng dụng của bên thứ ba có giao diện camera tương thích. Tương tự như kiểm tra đơn vị , mỗi kiểm tra nhấn mạnh một thông số kỹ thuật duy nhất trong máy ảnh. Để nắm bắt hành vi không đáng tin cậy, các thử nghiệm này phải được thực hiện theo nhóm cho toàn bộ cảnh. Ví dụ: mặc dù một bài kiểm tra không đáng tin cậy duy nhất có thể vượt qua lần chạy lại toàn bộ cảnh, nhưng rất khó để nhiều bài kiểm tra không đáng tin cậy vượt qua.

Như một ví dụ điển hình, hãy xem xét trường hợp có 10 bài kiểm tra trong một cảnh mà mỗi bài kiểm tra có xác suất trả về PASS là 50%. Bằng cách chạy từng bài kiểm tra riêng lẻ, có nhiều khả năng người vận hành có thể giúp máy ảnh vượt qua Camera ITS. Tuy nhiên, nếu các thử nghiệm được chạy tổng hợp dưới dạng một cảnh, thì chỉ có 0,1% khả năng cảnh đó sẽ vượt qua.

Q6: Làm cách nào để chạy một cảnh hoặc sắp xếp lại các cảnh đã chạy?

Theo mặc định, script tools/run_all_tests.py chạy tất cả các cảnh theo thứ tự. Tuy nhiên, các cảnh có thể được chạy riêng lẻ hoặc theo một thứ tự cụ thể và được báo cáo cho CtsVerifier.apk .

Để chạy một cảnh riêng lẻ (ví dụ: cảnh 2) hoặc chạy nhiều cảnh theo một thứ tự cụ thể trong Android 11 trở xuống:

python tools/run_all_tests.py device=# camera=# chart=# scenes=2
python tools/run_all_tests.py device=# camera=# chart=# scenes=3,2

Để chạy một cảnh riêng lẻ hoặc chạy nhiều cảnh theo một thứ tự cụ thể trong Android 12:

python tools/run_all_tests.py scenes=2
python tools/run_all_tests.py scenes=3,2

Các tham số bổ sung được đặt trong tệp config.yml .

Q7: Một số bài kiểm tra cảnh 1 không thành công với thiết lập máy tính bảng nhưng lại vượt qua với biểu đồ giấy. Chuyện gì vậy?

Đảm bảo rằng máy tính bảng và môi trường thử nghiệm đáp ứng các thông số kỹ thuật sau.

thông số kỹ thuật máy tính bảng

Đảm bảo rằng máy tính bảng đáp ứng các thông số kỹ thuật sau:

  • Kích thước màn hình (inch): 10 inch
  • Kích thước hiển thị (pixel): lớn hơn 1920 x 1200 pixel

Để biết thêm chi tiết, hãy xem Yêu cầu về máy tính bảng .

độ sáng của máy tính bảng

Các thử nghiệm có thể không thu được kết quả chính xác nếu độ sáng màn hình của máy tính bảng quá thấp.

Để biết thêm chi tiết, hãy xem Làm cách nào để kiểm soát độ sáng của máy tính bảng?

Mức chiếu sáng hộp (yêu cầu máy đo lux)

Đảm bảo rằng giá trị lux mục tiêu khi mở máy tính bảng nằm trong khoảng từ 100 đến 300.

Nếu mức lux quá cao, scene1/test_param_flash_mode.py trả về FAIL . Nếu mức lux quá thấp, nhiều lần kiểm tra sẽ không thành công.

Câu hỏi 8: Làm cách nào để gỡ lỗi các bài kiểm tra kết hợp cảm biến?

  1. Đảm bảo rằng bạn đang ở trong một nhóm dialout số.

    groups | egrep ‘dialout'
  2. Đảm bảo rằng bộ điều khiển nhiệt hạch cảm biến được kết nối bằng cách xác định xem Công nghệ Microchip có được kết nối với cổng USB hay không.

    lsusb
    …
    Bus 003 Device 004: ID 04d8:fc73 Microchip Technology, Inc.
    …
    
  3. Chạy thử nghiệm nhiều lần để phân phối các lần thử bằng các lệnh sau.

    Trong Android 11 trở xuống:

    python tools/run_sensor_fusion_box.py device=A camera=0 num_runs=10 rotator=default
    

    Trong Android 12:

    python tools/run_sensor_fusion_box.py num_runs=10
    

    Các tham số bổ sung được đặt trong tệp config.yml .

    Đầu ra của lần chạy nằm trong /tmp/tmp### được tạo trong các thư mục sensor_fusion_# , trong đó # là số lần chạy. Những lý do phổ biến cho sự thất bại là:

    1. Điện thoại không được căn giữa đúng cách.
    2. Không tìm thấy đủ các tính năng trong hình ảnh (thường là vấn đề về foV hoặc ánh sáng).
    3. FAIL được trả về là hợp lệ và độ lệch thời gian giữa máy ảnh và con quay hồi chuyển phải được sửa.

Q9: Tôi nên bao gồm thông tin gì khi báo cáo lỗi thử nghiệm?

Khi báo cáo lỗi thử nghiệm, hãy bao gồm các tệp và hình ảnh được tạo cho thử nghiệm.

  1. Nếu bạn chạy thử nghiệm qua tools/run_all_tests.py , hãy đính kèm /tmp/ đã nén vào lỗi.
  2. Nếu bạn tự chạy thử nghiệm, hãy đính kèm tất cả kết quả đầu ra trên màn hình và hình ảnh đã tạo vào lỗi.

Cũng bao gồm một báo cáo lỗi. Sau khi thử nghiệm được đề cập không thành công, hãy sử dụng lệnh sau để tạo báo cáo lỗi và đính kèm tệp zip đã tạo vào lỗi.

adb -s device_id bugreport

Q10: Làm cách nào để xóa thanh điều hướng trên máy tính bảng 16:10 che khuất cảnh?

Đối với máy tính bảng có tỷ lệ khung hình 16:10 (hoặc cao hơn), thanh điều hướng có thể che khuất một phần cảnh. Để ẩn thanh điều hướng, hãy sử dụng lệnh adb sau cho máy tính bảng.

adb -s device_id shell settings put global policy_control immersive.full=*