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.

Danh sách kiểm tra kiểm tra HAL của máy ảnh

Tài liệu này liệt kê tất cả các bài kiểm tra có sẵn để đánh giá lớp trừu tượng phần cứng máy ảnh Android (HAL). Nó dành cho các nhà sản xuất thiết bị gốc (OEM) và các nhà cung cấp bộ xử lý ứng dụng (AP) để họ có thể đảm bảo triển khai đúng cách HAL của máy ảnh với các khuyết tật tối thiểu. Mặc dù đây là sự bổ sung tự nguyện cho Bộ kiểm tra khả năng tương thích Android (CTS), nó làm tăng đáng kể phạm vi kiểm tra máy ảnh và chắc chắn sẽ xác định được các lỗi tiềm ẩn.

Bằng cách vượt qua các bài kiểm tra này, OEM sẽ xác nhận xem họ đã tích hợp đúng giao diện lớp trừu tượng phần cứng máy ảnh Android (HAL) 3 hay chưa. Khi phù hợp với tất cả các mục trong danh sách kiểm tra, việc thực hiện thiết bị có thể được coi là đầy đủ đối với các giao diện máy ảnh của Android HAL với. Điều này sẽ lần lượt cho phép một thiết bị để hỗ trợ đúng android.hardware.camera2 gói camera ứng dụng xây dựng trên.

Đặc điểm kỹ thuật máy ảnh HAL3

Các máy ảnh của Android HAL3 đặc điểm kỹ thuật là nguồn có thẩm quyền thông tin về những gì các thiết bị phải đáp ứng; trang này cung cấp một bản tóm tắt của tất cả các bài kiểm tra có thể được sử dụng như một danh sách kiểm tra. Những người triển khai Camera HAL (ví dụ: nhà cung cấp AP) nên xem qua từng dòng đặc điểm kỹ thuật của Camera HAL3 và đảm bảo thiết bị của họ tuân theo quy định đó.

Đặc tả HAL hiện tại được xác định trong các tệp này trong Bộ phát triển nền tảng Android 5.0 trở lên (PDK):

Các loại kiểm tra camera

Dưới đây là các loại kiểm tra chính có sẵn cho máy ảnh Android mới nhất cùng với tham chiếu đến các hướng dẫn liên quan bên dưới:

Tất cả các loại kiểm tra này được mô tả chi tiết bên dưới. Các bài kiểm tra này được trình bày theo thứ tự thời gian mà OEM dự kiến ​​sẽ thực hiện chúng.

Ví dụ: nếu một thiết bị không đạt các bài kiểm tra gốc, nó chắc chắn sẽ không đạt các bài kiểm tra Bộ kiểm tra tương thích (CTS) tiếp theo. Và nếu một thiết bị bị lỗi CTS, thì việc chuyển sang Bộ kiểm tra hình ảnh (ITS) sẽ rất ít được sử dụng. Chúng tôi khuyên bạn nên giải quyết các lỗi trong từng loại thử nghiệm trước khi tiếp tục tập hợp các thử nghiệm tiếp theo.

Các bài kiểm tra Bộ kiểm tra nhà cung cấp (VTS)

Bộ kiểm tra nhà cung cấp Android (VTS) là bộ kiểm tra hoạt động ở cấp giao diện HIDL. Để biết thêm thông tin về việc sử dụng VTS, thấy người bán hàng thử nghiệm Suite .

Các bài kiểm tra Bộ kiểm tra khả năng tương thích (CTS)

Bộ kiểm tra tính tương thích với máy ảnh Android (CTS) tập trung vào khả năng tương thích của thiết bị. Để biết thông tin về việc thành lập một môi trường thử nghiệm, xem Thiết lập CTS .

Con đường bắt đầu cho camera kiểm tra CTS là: platform/cts .

Khi chạy CTS camera cho các thiết bị hỗ trợ camera ngoài (chẳng hạn như webcam USB), bạn phải cắm thiết bị khi chạy CTS nếu không các bài kiểm tra sẽ tự động thất bại. Ví dụ về các máy ảnh bên ngoài bao gồm: Logitech HD Pro Webcam C920Microsoft LifeCam HD-3000 .

Xem giới thiệu CTS và trang con của nó để được hướng dẫn chung về chạy CTS.

CTS kiểm tra cho android.hardware.Camera API

Tìm các bài kiểm tra camera dưới cts/tests/tests/ :

  • hardware/src/android/hardware/cts/CameraTest.java
  • hardware/src/android/hardware/cts/CameraGLTest.java
  • hardware/src/android/hardware/cts/Camera_SizeTest.java
  • permission/src/android/permission/cts/CameraPermissionTest.java

CTS kiểm tra cho android.hardware.camera2 API

Tìm các bài kiểm tra camera dưới cts/tests/tests/ :

  • hardware/src/android/hardware/camera2/cts/*
  • permission/src/android/permission/cts/Camera2PermissionTest.java

Kiểm tra camera của CTS Verifier

Tìm các bài kiểm tra camera theo: cts/apps/CtsVerifier/src/com/android/cts/verifier/camera/*

Các bài kiểm tra Bộ kiểm tra hình ảnh (ITS)

Các bài kiểm tra Camera Image Image Test Suite (ITS) tập trung vào độ chính xác của hình ảnh. Để thực hiện các bài kiểm tra, hãy chạy các tập lệnh Python trên máy trạm có thiết bị Android được kết nối qua USB.

Máy ảnh cơ sở hạ tầng và các xét nghiệm NÓ nằm trong cts/apps/CameraITS thư mục. Mỗi cư trú thử nghiệm trong một tests/scene # thư mục con.

Để thiết lập môi trường thử nghiệm, chạy:
extract root/out/host/linux-x86/cts-verfier/android-cts-verifier.zip
cd android-cts-verifier
adb install -r CtsVerifier.apk
cd CameraITS
source build/envsetup.sh

Để biết thêm thông tin về cách thiết lập và chạy các bài kiểm tra, xem CameraITS tập tin PDF trong cts/apps/CameraITS . Xem tutorial.py trong tests thư mục con cho một hướng dẫn về cách sử dụng các kịch bản.

Các bài kiểm tra tĩnh ITS (cảnh 0-5) có thể chạy với bất kỳ hệ điều hành nào có môi trường Python 2.7 được yêu cầu. Tuy nhiên, sensor_fusion thử nghiệm với Sensor Fusion Box phải được chạy với hệ điều hành Linux.

Quá trình cài đặt được đề nghị cho những cảnh 0-4 được mô tả trong Máy ảnh ITS-trong-một-box . Quá trình cài đặt được đề nghị cho cảnh sensor_fusion được mô tả trong Sensor Fusion Box Quick Start Guide .

Để chạy ITS theo cách thủ công, hãy chuẩn bị một môi trường vật lý đơn giản với mục tiêu cụ thể, có thể tái sử dụng như bức tường trắng, thẻ xám và đèn bàn. Gắn thiết bị Android lên giá ba chân và chạy các tập lệnh để kiểm tra các chức năng của máy ảnh. Hầu hết các bài kiểm tra đều đạt hoặc không đạt nhưng một số bài kiểm tra cung cấp các chỉ số.

Các kịch bản này kiểm tra các kịch bản không được kiểm tra trong CTS và là một thành phần quan trọng của kế hoạch kiểm tra HAL 3.2.

Các bài kiểm tra ITS đạt hoặc không đạt. Tất cả các bài kiểm tra bắt buộc trong mỗi thư mục cảnh phải vượt qua. Bài kiểm tra mà không bắt buộc có thể thất bại và vẫn được tính là một đường chuyền ở CtsVerifier .

Cảnh 0 đến cảnh 4 kiểm tra

Những cảnh đại diện cho một phần lớn các thử nghiệm NÓ và được bao gồm dưới dạng file PDF trong scene thư mục. Để tự động những thử nghiệm, sử dụng máy ảnh-trong-một-box NÓ hệ thống.

  • Cảnh 0: Không cần thiết lập.
  • Cảnh 1: Yêu cầu thẻ xám.
  • Cảnh 2: Yêu cầu cảnh quay mặt.
  • Cảnh 3: Biểu đồ ISO12233.
  • Cảnh 4: Cảnh tùy chỉnh với hình tròn bên trong hình vuông.

Cảnh 5 kiểm tra

Thử nghiệm cảnh 5 yêu cầu một bộ khuếch tán được đặt trên đầu máy ảnh.

Kiểm tra tổng hợp cảm biến

Các bài kiểm tra kết hợp cảm biến yêu cầu chuyển động máy ảnh cụ thể để kiểm tra sự khác biệt về dấu thời gian giữa máy ảnh và con quay hồi chuyển cho các ứng dụng AR và VR. Xét nghiệm này được bỏ qua nếu không có con quay hồi chuyển được bao gồm hoặc nếu REALTIME tham số không được kích hoạt. Các sensor_fusion thử nghiệm có thể được tự động với cảm biến Fusion Box .

Kiểm tra Khung phương tiện

Vượt qua tất cả các bài kiểm tra phương tiện liên quan đến máy ảnh trong MediaFrameworkTest. Xin lưu ý, các bài kiểm tra này yêu cầu phải cài đặt mediaframeworktest.apk trên thiết bị Android. Bạn sẽ cần phải make mediaframeworktest và sau đó sử dụng adb cài đặt .apk kết quả. Các lệnh ví dụ được bao gồm bên dưới.

Con đường bắt đầu cho thử nghiệm khuôn khổ phương tiện truyền thông máy ảnh liên quan đến là: platform/frameworks/base

Tìm các mã nguồn cho các bài kiểm tra ở đây: frameworks/base/media/tests/MediaFrameworkTest

Để thiết lập các thử nghiệm này:

make mediaframeworktest
adb install out/target/product/name/data/app/mediaframeworktest.apk

Trong trường hợp các name biến đại diện cho thư mục chứa sản phẩm của nhà cung cấp.

Tìm tất cả các bài kiểm tra trong thư mục sau hoặc các thư mục con của nó:

frameworks/base/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest

Mỗi thư mục con đại diện cho một lớp kiểm tra:

  • functional/
  • integration/
  • performance/
  • power/
  • stress/
  • unit/

Chạy thử nghiệm Khung phương tiện

Để xem tất cả các bài kiểm tra có sẵn ::

adb shell pm list instrumentation

Điều này sẽ mang lại kết quả tương tự như:

instrumentation:com.android.mediaframeworktest/.MediaFrameworkIntegrationTestRunner
(target=com.android.mediaframeworktest)
instrumentation:com.android.mediaframeworktest/.MediaRecorderStressTestRunner
(target=com.android.mediaframeworktest)
instrumentation:com.android.mediaframeworktest/.MediaFrameworkPerfTestRunner
(target=com.android.mediaframeworktest)
instrumentation:com.android.mediaframeworktest/.MediaFrameworkPowerTestRunner
(target=com.android.mediaframeworktest)

Xác định và trích xuất các thành phần (giữa instrumentation:(target=com.android.mediaframeworktest) từ mỗi dòng thử nghiệm Thành phần bao gồm tên gói mục tiêu (. com.android.mediaframeworktest ) và tên Test Runner ( MediaFramework TestRunner MediaFramework TestRunner ).

Ví dụ:

com.android.mediaframeworktest/.MediaFrameworkIntegrationTestRunner
com.android.mediaframeworktest/.MediaRecorderStressTestRunner
com.android.mediaframeworktest/.MediaFrameworkPerfTestRunner
com.android.mediaframeworktest/.MediaFrameworkPowerTestRunner

Sau đó, bạn có thể vượt qua từng thành phần để adb shell am instrument như vậy:

adb shell am instrument -w component.name

Nơi component.name bằng với giá trị chiết xuất ở trên. Ví dụ:

adb shell am instrument -w com.android.mediaframeworktest/.MediaFrameworkIntegrationTestRunner

Xin lưu ý, trong khi đường dẫn lớp là gói Java + tên lớp, gói thiết bị đo đạc không nhất thiết phải giống với gói Java. Đảm bảo rằng bạn sử dụng gói AndroidManifest.xml khi nối tên thành phần, không phải gói Java chứa lớp chạy thử nghiệm.

Để chạy một lớp kiểm tra, hãy vượt qua lớp -e đối số, như vậy:

adb shell am instrument -e class com.android.mediaframeworktest.integration.CameraBinderTest -w com.android.mediaframeworktest/.MediaFrameworkIntegrationTestRunner

Để chạy chỉ có một phương pháp duy nhất trong một lớp học kiểm tra, append một pound (#) dấu hiệu và tên phương pháp (trong trường hợp này, testConnectPro ) để tên lớp, như vậy:

adb shell am instrument -e class 'com.android.mediaframeworktest.integration.CameraBinderTest#testConnectPro' -w com.android.mediaframeworktest/.MediaFrameworkIntegrationTestRunner

Kiểm tra chức năng cài đặt phương tiện

Đây là một ví dụ về chạy thử nghiệm chức năng. Thử nghiệm này xác minh chức năng cơ bản của các kết hợp cài đặt máy ảnh khác nhau. (ví dụ: Flash, độ phơi sáng, WB, cảnh, kích thước hình ảnh và thẻ địa lý)

Chạy lệnh kiểm tra:

adb shell am instrument -w -r  -e delay_msec 15 -e log true -e class com.android.mediaframeworktest.functional.camera.CameraPairwiseTest com.android.mediaframeworktest/com.android.mediaframeworktest.CameraStressTestRunner

Kiểm tra tích hợp phương tiện

Đây là một ví dụ về chạy thử nghiệm tích hợp, trong trường hợp này là mediaframeworktest / integration / CameraBinderTest.java và mediaframeworktest / CameraS StressTestRunner.java:

adb  shell am instrument -e class \ 'com.android.mediaframeworktest.integration.CameraBinderTest' -w \ 'com.android.mediaframeworktest/.CameraStressTestRunner'

Nếu thành công, điều này dẫn đến đầu ra giống như sau:

-----

com.android.mediaframeworktest.integration.CameraBinderTest:...........
Test results for CameraStressTestRunner=...........
Time: 3.328

OK (11 tests)

-----

Kiểm tra hiệu suất phương tiện

Kiểm tra bộ nhớ xem trước này sẽ mở và phát hành bản xem trước của máy ảnh trong 200 lần. Trong mỗi 20 lần lặp, ảnh chụp nhanh của máy chủ ps sẽ được ghi lại và nó sẽ so sánh mức sử dụng bộ nhớ khác nhau sau 200 lần lặp. Thử nghiệm sẽ không thành công nếu chênh lệch lớn hơn 150kM.

Chạy lệnh kiểm tra:

adb shell am instrument -w -r  -e class com.android.mediaframeworktest.performance.MediaPlayerPerformance#testCameraPreviewMemoryUsage com.android.mediaframeworktest/.MediaFrameworkPerfTestRunner

Nhiều đầu ra chi tiết có thể được tìm thấy trong: /sdcard/mediaMemOutput.txt

Kiểm tra đơn vị phương tiện

Các lệnh để chạy các bài kiểm tra đơn vị đều tương tự nhau. Ví dụ: đối với CameraMetadataTest.java, lệnh sẽ là:

adb shell am instrument -e class 'com.android.mediaframeworktest.unit.CameraMetadataTest' -w 'com.android.mediaframeworktest/.CameraStressTestRunner'

Kiểm tra căng thẳng phương tiện

Bài kiểm tra này nhằm tăng cường khả năng chụp ảnh và quay video của máy ảnh.

Chạy lệnh kiểm tra:

adb shell am instrument -w com.google.android.camera.tests/com.android.camera.stress.CameraStressTestRunner

Tất cả các bài kiểm tra sẽ vượt qua.

Kiểm tra thử nghiệm thủ công

Ứng dụng TestingCam phải được chạy theo cách thủ công với các bước kiểm tra sau được thực hiện. Nguồn tin cho TestingCam là ở đây: pdk/apps/TestingCamera/

Lấy nét vô cực với độ nghiêng máy ảnh

Khởi động TestingCam, bật xem trước và đảm bảo rằng chế độ lấy nét tự động được đặt thành vô cực. Sử dụng nút chụp hình, chụp bức ảnh của các đối tượng ở xa (ít nhất là 10m đi) với máy ảnh chỉ theo chiều ngang, lên (gần thẳng đứng), và xuống dưới (gần thẳng đứng); ví dụ về ảnh chụp từ trên cao có thể là những chiếc lá / cành cây cao từ bên dưới và ví dụ về ảnh chụp từ dưới lên có thể là đường phố khi nhìn từ mái của một tòa nhà. Trong mọi trường hợp, chủ thể ở xa phải sắc nét và được lấy nét. Lưu và xem ảnh chụp trong chế độ xem thư viện để bạn có thể phóng to và kiểm tra độ sắc nét dễ dàng hơn.

Lưu ý rằng để một máy ảnh có bộ truyền động VCM vượt qua bài kiểm tra này, nó sẽ yêu cầu hệ thống điều khiển AF vòng kín hoặc nó sẽ cần một số loại hiệu chỉnh SW dựa trên việc sử dụng dữ liệu gia tốc kế để xác định hướng máy ảnh. Cũng sẽ cần hiệu chuẩn nhà máy đáng tin cậy đối với vị trí vô cực của ống kính.

Kiểm tra thủ côngCam2 kiểm tra

Ứng dụng TestingCam2 phải được chạy theo cách thủ công, với các bước kiểm tra sau được thực hiện. Nguồn tin cho TestingCam2 là ở đây: pdk/apps/TestingCamera2/

Chụp ảnh JPEG

Bắt đầu TestingCam2, và nhấn vào nút JPEG. Hình ảnh xuất hiện ở bên phải của hình ảnh trong khung ngắm phải giống với khung ngắm, bao gồm cả việc có cùng hướng.