Trang này liệt kê tất cả thử nghiệm hiện có để đánh giá máy ảnh Android tầng trừu tượng phần cứng (HAL). Thiết bị này dành cho thiết bị gốc nhà sản xuất (OEM) và ứng dụng nhà cung cấp bộ xử lý (AP) để họ có thể đảm bảo triển khai máy ảnh đúng cách HAL (Lớp trừu tượng phần cứng) với số lượng sai sót tối thiểu. Mặc dù đây là sự bổ sung tự nguyện vào Android Bộ kiểm tra tính tương thích (CTS), công cụ này giúp tăng đáng kể phạm vi kiểm tra máy ảnh và chắc chắn sẽ xác định các lỗi tiềm ẩn.
Bằng cách vượt qua các bài kiểm thử này, OEM sẽ xác thực
họ đã tích hợp Android đúng cách
phần cứng máy ảnh
giao diện tầng trừu tượng (HAL) 3. Khi tuân thủ tất cả các mục trong
danh sách kiểm tra, việc triển khai thiết bị có thể được coi là đầy đủ theo
với giao diện HAL (Lớp trừu tượng phần cứng) cho máy ảnh của Android. Điều này sẽ cho phép thiết bị
hỗ trợ đúng cách cho
Gói android.hardware.camera2
dựa trên các ứng dụng máy ảnh.
Thông số kỹ thuật HAL3 cho máy ảnh
Thông số kỹ thuật HAL3 cho máy ảnh Android là nguồn thông tin đáng tin cậy thông tin về những thiết bị phải đáp ứng yêu cầu; trang này cung cấp bản tóm tắt về tất cả các thử nghiệm có thể dùng làm danh sách kiểm tra. Trình triển khai lớp trừu tượng phần cứng (HAL) cho máy ảnh (ví dụ: AP nhà cung cấp) phải lần lượt hướng dẫn từng bước thông số kỹ thuật HAL3 cho Máy ảnh và đảm bảo thiết bị của họ sẽ tuân thủ quy tắc đó.
Thông số kỹ thuật HAL hiện tại được xác định trong các tệp này trong Android Bộ phát triển nền tảng Android (PDK) chung 5.0 trở lên:
- Thông số kỹ thuật và giao diện HAL 3.x cho Máy ảnh:
hardware/libhardware/include/hardware/camera3.h
,hardware/libhardware/include/hardware/camera_common.h
- Thông số siêu dữ liệu HAL 3.x cho máy ảnh:
system/media/camera/docs/docs.html
- Thông số và giao diện định dạng pixel HAL:
system/core/libsystem/include/system/graphics.h
Các loại kiểm thử máy ảnh
Dưới đây là các loại kiểm thử chính hiện có đối với máy ảnh Android mới nhất cùng với tham chiếu đến các hướng dẫn có liên quan bên dưới:
- Bộ thử nghiệm dành cho nhà cung cấp (VTS): Các chương trình kiểm thử trực tiếp kiểm tra giao diện HAL của máy ảnh
- Bộ kiểm tra tính tương thích (CTS): Android tiêu chuẩn, tự động để đảm bảo khả năng tương thích của thiết bị. Để biết thêm thông tin, hãy xem Bộ kiểm tra tính tương thích và Liên đoàn Thương mại Tổng quan.
- Bộ kiểm tra hình ảnh (ITS): Chạy theo cách thủ công để đảm bảo tính chính xác của hình ảnh. Để biết thêm thông tin, hãy xem ITS cho máy ảnh.
- Kiểm thử TestingCam theo cách thủ công:
Chạy từ nguồn trong
pdk/apps/TestingCamera/
- Kiểm thử thủ công Cam2.1
kiểm thử: Chạy từ nguồn trong
pdk/apps/TestingCamera2/
Tất cả các loại kiểm thử này được mô tả chi tiết bên dưới. Các kiểm thử này được trình bày theo thứ tự thời gian mà OEM dự kiến sẽ thực thi chúng.
Ví dụ: nếu một thiết bị không vượt qua được các kiểm thử gốc, thì chắc chắn thiết bị đó sẽ không vượt qua được các bài kiểm tra Bộ kiểm tra tính tương thích (CTS) tiếp theo. Và nếu thiết bị không vượt qua được CTS, rất ít khi sử dụng Bộ kiểm tra hình ảnh (ITS). Bạn nên giải quyết các lỗi trong mỗi loại kiểm thử trước khi chuyển sang nhóm kiểm thử.
Các thử nghiệm Bộ thử nghiệm nhà cung cấp (VTS)
Bộ kiểm thử nhà cung cấp Android (VTS) là một bộ kiểm thử hoạt động trên Cấp giao diện HIDL. Để biết thêm thông tin về cách sử dụng VTS, hãy xem Bộ thử nghiệm dành cho nhà cung cấp.
Các bài kiểm tra Bộ kiểm tra tính tương thích (CTS)
Các bài kiểm tra của Bộ kiểm tra tính tương thích với Android (CTS) cho máy ảnh sẽ tập trung vào từng thiết bị khả năng tương thích. Để biết thông tin về cách thiết lập môi trường kiểm thử, hãy xem bài viết Thiết lập CTS.
Đường dẫn bắt đầu cho các bài kiểm thử CTS của máy ảnh là: platform/cts
.
Khi chạy CTS của máy ảnh cho các thiết bị hỗ trợ máy ảnh bên ngoài (chẳng hạn như webcam USB), bạn phải cắm thiết bị vào khi chạy CTS hoặc bài kiểm tra sẽ tự động bị lỗi. Một số ví dụ về máy quay gắn ngoài bao gồm: Webcam Logitech HD Pro C920 và Microsoft LifeCam HD-3000.
Xem CTS giới thiệu và các trang con của tài liệu này để xem hướng dẫn chung về cách chạy CTS.
Bài kiểm tra CTS (Bộ kiểm tra tính tương thích) cho
API android.hardware.Camera
Xem các bài kiểm tra máy ảnh dưới đây trong 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
Bài kiểm tra CTS (Bộ kiểm tra tính tương thích) cho
API android.hardware.camera2
Xem các bài kiểm tra máy ảnh này trong cts/tests/tests/
:
hardware/src/android/hardware/camera2/cts/*
permission/src/android/permission/cts/Camera2PermissionTest.java
Kiểm tra máy ảnh Trình xác minh CTS
Tìm các bài kiểm tra máy ảnh này trong:
cts/apps/CtsVerifier/src/com/android/cts/verifier/camera/*
Các bài kiểm thử Bộ kiểm tra hình ảnh (ITS)
Các bài kiểm tra của Bộ kiểm tra hình ảnh từ máy ảnh (ITS) tập trung vào độ chính xác của hình ảnh. Để thực hiện kiểm thử, hãy chạy các tập lệnh Python trên máy trạm có Thiết bị Android kết nối qua USB.
Các bài kiểm tra và cơ sở hạ tầng ITS cho camera được đặt trong
Thư mục cts/apps/CameraITS
.
Mỗi lượt kiểm thử nằm trong một thư mục con tests/scene#
.
Để biết thêm thông tin về cách thiết lập và chạy kiểm thử, hãy xem ITS cho máy ảnh.
Để biết nội dung mô tả về cảnh và thử nghiệm, vui lòng xem nội dung Kiểm tra ITS cho máy ảnh.
Các bài kiểm thử ITS đạt hoặc không đạt. Tất cả kiểm thử bắt buộc trong mỗi thư mục cảnh đều phải vượt qua.
Các chương trình kiểm thử không bắt buộc có thể không thành công và vẫn được tính là đạt yêu cầu
CtsVerifier
.
ITS kiểm thử các trường hợp kiểm thử không được kiểm thử trong CTS và là một quy tắc quan trọng thành phần của kế hoạch thử nghiệm HAL 3.2.
Kiểm thử Media Framework
Vượt qua tất cả các bài kiểm thử nội dung đa phương tiện liên quan đến máy ảnh trong MediaFrameworkTest. Năn nỉ
lưu ý rằng các bài kiểm thử này yêu cầu phải cài đặt mediaframeworktest.apk trên Android
thiết bị. Bạn sẽ cần make mediaframeworktest
rồi sử dụng adb
để cài đặt tệp .apk thu được. Các lệnh mẫu được bao gồm bên dưới.
Đường dẫn bắt đầu cho các bài kiểm thử khung nội dung đa phương tiện liên quan đến Camera là:
platform/frameworks/base
Tìm mã nguồn cho các bài kiểm thử tại đây:
frameworks/base/media/tests/MediaFrameworkTest
Cách thiết lập các chương trình kiểm thử này:
make mediaframeworktest
adb install out/target/product/name/data/app/mediaframeworktest.apk
Trong đó biến name đại diện cho thư mục chứa sản phẩm của nhà cung cấp.
Tìm tất cả chương trình kiểm thử trong thư mục sau hoặc thư mục con của thư mục đó:
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 thử:
functional/
integration/
performance/
power/
stress/
unit/
Chạy kiểm thử Khung nội dung đa phương tiện
Cách xem tất cả chương trình kiểm thử hiện có:
adb shell pm list instrumentation
Thao tác 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 thành phần (giữa instrumentation:
và (target=com.android.mediaframeworktest)
từ mỗi dòng kiểm thử.
Thành phần này bao gồm tên gói mục tiêu
(com.android.mediaframeworktest
) và tên trình chạy kiểm thử
(MediaFramework
).
Ví dụ:
com.android.mediaframeworktest/.MediaFrameworkIntegrationTestRunner com.android.mediaframeworktest/.MediaRecorderStressTestRunner com.android.mediaframeworktest/.MediaFrameworkPerfTestRunner com.android.mediaframeworktest/.MediaFrameworkPowerTestRunner
Sau đó, bạn có thể truyền từng thành phần đến adb shell am instrument
như
nên:
adb shell am instrument -w component.name
Trong đó component.name
bằng giá trị được trích xuất
ở trên. Ví dụ:
adb shell am instrument -w com.android.mediaframeworktest/.MediaFrameworkIntegrationTestRunner
Xin lưu ý, mặc dù đường dẫn lớp là gói Java + tên lớp, nhưng phương thức Gói đo lường không nhất thiết giống với gói Java. Nhãn hiệu Đảm bảo bạn sẽ sử dụng gói AndroidManifest.xml khi liên kết thành phần này chứ không phải gói Java chứa lớp trình chạy kiểm thử.
Để chạy một lớp kiểm thử, hãy truyền đối số -e class
adb shell am instrument -e class com.android.mediaframeworktest.integration.CameraBinderTest -w com.android.mediaframeworktest/.MediaFrameworkIntegrationTestRunner
Để chỉ chạy một phương thức duy nhất trong lớp kiểm thử, hãy thêm dấu thăng (#) và
tên phương thức (trong trường hợp này là testConnectPro
) thành tên lớp, như sau:
adb shell am instrument -e class 'com.android.mediaframeworktest.integration.CameraBinderTest#testConnectPro' -w com.android.mediaframeworktest/.MediaFrameworkIntegrationTestRunner
Kiểm thử chức năng cài đặt nội dung nghe nhìn
Dưới đây là ví dụ về lần chạy kiểm thử chức năng. Thử nghiệm này xác minh chức năng của nhiều tổ hợp chế độ cài đặt camera. (ví dụ: Flash, độ phơi sáng, WB, cảnh, kích thước hình ảnh và geoTag)
Chạy lệnh kiểm thử:
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
Thử nghiệm tích hợp nội dung nghe nhìn
Dưới đây là ví dụ về lần chạy kiểm thử tích hợp, trong trường hợp này mediaframeworktest/Integration/CameraBinderTest.java và mediaframeworktest/CameraStressTestRunner.java:
adb shell am instrument -e class \ 'com.android.mediaframeworktest.integration.CameraBinderTest' -w \ 'com.android.mediaframeworktest/.CameraStressTestRunner'
Nếu thành công, kết quả sẽ như sau:
----- com.android.mediaframeworktest.integration.CameraBinderTest:........... Test results for CameraStressTestRunner=........... Time: 3.328 OK (11 tests) -----
Kiểm thử hiệu suất nội dung nghe nhìn
Thử nghiệm bộ nhớ xem trước này sẽ mở và phát hành bản xem trước của máy ảnh cho 200 lần. Trong mỗi 20 lần lặp lại, ảnh chụp nhanh của ps mediaserver sẽ được ghi lại và 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 mức chênh lệch lớn hơn 150kM.
Chạy lệnh kiểm thử:
adb shell am instrument -w -r -e class com.android.mediaframeworktest.performance.MediaPlayerPerformance#testCameraPreviewMemoryUsage com.android.mediaframeworktest/.MediaFrameworkPerfTestRunner
Bạn có thể xem kết quả chi tiết hơn trong:
/sdcard/mediaMemOutput.txt
Kiểm thử đơn vị nội dung nghe nhìn
Các lệnh để chạy kiểm thử đơn vị đều tương tự nhau. Ví dụ: đối với CameraMetadataTest.java, thì lệnh sẽ là:
adb shell am instrument -e class 'com.android.mediaframeworktest.unit.CameraMetadataTest' -w 'com.android.mediaframeworktest/.CameraStressTestRunner'
Kiểm thử tình trạng áp lực của nội dung nghe nhìn
Thử nghiệm này nhằm nhấn mạnh quá trình chụp ảnh và quay video của camera.
Chạy lệnh kiểm thử:
adb shell am instrument -w com.google.android.camera.tests/com.android.camera.stress.CameraStressTestRunner
Tất cả các bài kiểm thử đều thành công.
Kiểm thử TestingCam theo cách thủ công
Bạn nên chạy ứng dụng TestingCam theo cách thủ công với các bước kiểm tra sau đây.
Đây là nguồn cho TestingCam: pdk/apps/TestingCamera/
Tiêu điểm vô cực với tính năng nghiêng máy ảnh
Khởi động TestingCam, bật chế độ xem trước và đảm bảo đã đặt chế độ tự động lấy nét thành vô tận. Sử dụng nút Chụp ảnh, chụp ảnh đối tượng ở xa (cách ít nhất 10m) với camera hướng theo chiều ngang, hướng lên (gần thẳng đứng) và hướng xuống (gần với chiều dọc); ví dụ về cảnh quay hướng lên có thể là những cành cây/lá cao từ bên dưới và ví dụ về cảnh quay xuống có thể là đường phố nhìn từ nóc toà nhà tòa nhà. Trong mọi trường hợp, chủ thể ở xa phải sắc nét và rõ nét. Lưu và xem ảnh chụp ở 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 để camera có bộ truyền động VCM vượt qua được bài kiểm tra này, nó sẽ yêu cầu hoặc là hệ thống điều khiển lấy nét tự động theo vòng khép kín hoặc sẽ cần kiểu SW dựa trên việc sử dụng dữ liệu gia tốc kế để xác định hướng của máy ảnh. Bạn cũng cần được hiệu chỉnh vị trí vô cực của ống kính tại nhà máy một cách đáng tin cậy.
Kiểm thử TestingCam2 theo cách thủ công
Bạn phải chạy ứng dụng TestingCam2 theo cách thủ công với các bước kiểm tra sau đây
thực hiện. Đây là nguồn của TestingCam2: pdk/apps/TestingCamera2/
Chụp ảnh JPEG
Khởi động 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 kính ngắm sẽ xuất hiện giống với kính ngắm, bao gồm cả việc có cùng hướng.