Ta strona zawiera listę wszystkich testów dostępnych do oceny aparatu z Androidem warstwa abstrakcji sprzętowej (HAL). Przeznaczony jest dla oryginalnego sprzętu producenci (OEM) i zastosowania firm obsługujących płatności, dzięki czemu mogą dopilnować prawidłowego wdrożenia kamery. HAL z minimalną liczbą wad. Chociaż jest to dobrowolne uzupełnienie Androida, Compatibility Test Suite (CTS) znacznie zwiększa zasięg testów aparatów z pewnością wykryje potencjalne błędy.
Po przejściu tych testów producenci OEM weryfikują,
czy poprawnie zintegrowali Androida
sprzęt do aparatu
interfejsów w warstwie abstrakcji (HAL) 3. Po spełnieniu wszystkich wymagań
listy kontrolnej, wdrożenie na urządzeniu można uznać za pełne
do interfejsów HAL aparatu na Androida. To z kolei umożliwi urządzeniu
poprawnie obsługują
android.hardware.camera2
pakiet, który
i aplikacji aparatu.
Specyfikacja HAL3 aparatu
Specyfikacja aparatu z Androidem HAL3 jest wiarygodnym źródłem informacje na temat tego, jakie urządzenia muszą spełniać; ta strona zawiera podsumowanie ze wszystkich testów, których można użyć jako listy kontrolnej. Implementatory HAL aparatu (np. AP) dostawców) powinni zapoznać się ze specyfikacją HAL3 kamery i zapewnić spełniają wymagania dotyczące urządzeń.
Obecna specyfikacja HAL jest zdefiniowana w tych plikach w Androidzie Ogólny pakiet Android Platform Development Kit (PDK) w wersji 5.0 i nowszych:
- Interfejs i specyfikacja HAL 3.x aparatu:
hardware/libhardware/include/hardware/camera3.h
,hardware/libhardware/include/hardware/camera_common.h
- Specyfikacja metadanych HAL 3.x aparatu:
system/media/camera/docs/docs.html
- Interfejs i specyfikacja formatu piksela HAL:
system/core/libsystem/include/system/graphics.h
Typy testów aparatu
Oto główne typy testów dostępne w przypadku najnowszej wersji aparatu z Androidem wraz z odnośnikami do powiązanych instrukcji:
- Vendor Test Suite (VTS): testy, które bezpośrednio sprawdzają interfejs HAL kamery
- Compatibility Test Suite (CTS): Standardowy, zautomatyzowany Android aby zapewnić zgodność urządzeń. Więcej informacji: Compatibility Test Suite oraz Federacja handlowa Przegląd.
- Image Test Suite (ITS): uruchamiane ręcznie. aby sprawdzić poprawność obrazów. Więcej informacji: Aparat.
- Ręczne testy kamery TestingCam:
Uruchom ze źródła w:
pdk/apps/TestingCamera/
- Ręczna aktualizacja Cam2.1
testy: uruchom ze źródła w lokalizacji
pdk/apps/TestingCamera2/
Wszystkie te typy testów szczegółowo opisujemy poniżej. Te testy są przedstawiane w kolejności chronologicznej, w której oczekuje się, że OEM .
Na przykład, jeśli urządzenie nie przejdzie natywnego testu, bez wątpienia nie powiedzie się kolejnych testów Compatibility Test Suite (CTS). A jeśli urządzenie ulegnie awarii, jest mało przydatne przy korzystaniu z pakietu Image Test Suite (ITS). Zalecamy naprawienie błędów w każdym typie testu przed przejściem do kolejnego zestawu testów.
Testy Vendor Test Suite (VTS)
Android Vendor Test Suite (VTS) to pakiet testowy, który działa Poziom interfejsu HIDL. Więcej informacji o korzystaniu z VTS znajdziesz w artykule Vendor Test Suite,
Testy Compatibility Test Suite (CTS)
Aparat kompatybilny z aparatem (CTS) testujący zgodność aparatu z Androidem (CTS) testuje skupienie na urządzeniu kompatybilności. Więcej informacji na temat konfigurowania środowiska testowego znajdziesz w artykule Konfigurowanie CTS.
Ścieżka początkowa testów CTS kamery to: platform/cts
.
Po uruchomieniu narzędzia CTS kamery na urządzeniach obsługujących zewnętrzne kamery (takie jak kamer internetowych USB), podczas uruchamiania CTS lub testów musisz podłączyć urządzenie. nie powiedzie się automatycznie. Przykłady kamer zewnętrznych: Kamera internetowa Logitech HD Pro C920 i Microsoft LifeCam HD-3000.
Zobacz CTS [wstęp] i jego podstron, gdzie znajdziesz ogólne instrukcje dotyczące uruchamiania CTS.
Testy CTS:
interfejs API android.hardware.Camera
Poniżej cts/tests/tests/
znajdziesz te testy aparatu:
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
Testy CTS:
interfejs API android.hardware.camera2
Poniżej cts/tests/tests/
znajdziesz te testy aparatu:
hardware/src/android/hardware/camera2/cts/*
permission/src/android/permission/cts/Camera2PermissionTest.java
Testy aparatu do weryfikatora CTS
Wyszukaj te testy aparatu w:
cts/apps/CtsVerifier/src/com/android/cts/verifier/camera/*
Testy Image Test Suite (ITS)
Pakiet Camera Image Test Suite (ITS) testuje prawidłowość zdjęć. Aby przeprowadzić te testy, uruchom skrypty Pythona na stacji roboczej z tagiem Urządzenie z Androidem połączone przez USB.
Infrastruktura ITS i testy znajdują się
cts/apps/CameraITS
.
Każdy test znajduje się w podkatalogu tests/scene#
.
Więcej informacji o konfigurowaniu i przeprowadzaniu testów znajdziesz na stronie Aparat.
Opisy scen i testów znajdziesz w artykule Camera ITS Tests (Testy kamery ITS).
Testy ITS zaliczone lub niezaliczone. Wszystkie wymagane testy w każdym folderze scen muszą zostać zaliczone.
Testy, które nie są wymagane, mogą nie zostać zaliczone i nadal zostaną zaliczone
CtsVerifier
ITS testuje scenariusze, które nie są testowane w narzędziu CTS i mają duże znaczenie do planu testów HAL 3.2.
Testy platformy Media Framework
Zalicz wszystkie testy multimediów związane z aparatem w MediaFrameworkTest. Proszę
Pamiętaj, że te testy wymagają zainstalowania na Androidzie pliku mediaframeworktest.apk
urządzenia. Musisz make mediaframeworktest
, a następnie użyć narzędzia adb
aby zainstalować wynikowy plik .apk. Przykładowe polecenia znajdziesz poniżej.
Ścieżka początkowa testów platformy multimedialnej związanej z aparatem wygląda tak:
platform/frameworks/base
Kod źródłowy testów znajdziesz tutaj:
frameworks/base/media/tests/MediaFrameworkTest
Aby skonfigurować te testy:
make mediaframeworktest
adb install out/target/product/name/data/app/mediaframeworktest.apk
Gdzie zmienna name reprezentuje wartości katalog zawierający produkt dostawcy.
Wszystkie testy znajdziesz w tym katalogu lub jego podkatalogach:
frameworks/base/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest
Każdy podkatalog reprezentuje klasę testów:
functional/
integration/
performance/
power/
stress/
unit/
Przeprowadzanie testów platformy Media Framework
Aby wyświetlić wszystkie dostępne testy:
adb shell pm list instrumentation
Efekty będą podobne do tych:
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)
Zidentyfikuj i wyodrębnij komponent (między instrumentation:
i (target=com.android.mediaframeworktest)
z każdej linii testowej.
Komponent składa się z nazwy pakietu docelowego
(com.android.mediaframeworktest
) i nazwa użytkownika, który wykonał test
(MediaFramework
).
Przykłady:
com.android.mediaframeworktest/.MediaFrameworkIntegrationTestRunner com.android.mediaframeworktest/.MediaRecorderStressTestRunner com.android.mediaframeworktest/.MediaFrameworkPerfTestRunner com.android.mediaframeworktest/.MediaFrameworkPowerTestRunner
Następnie możesz przekazać każdy komponent do adb shell am instrument
w taki sposób,
czyli:
adb shell am instrument -w component.name
Gdzie component.name
równa się wyodrębnionej wartości
powyżej. Dla:
przykład:
adb shell am instrument -w com.android.mediaframeworktest/.MediaFrameworkIntegrationTestRunner
Zwróć uwagę, że chociaż ścieżką klasy jest pakiet Java + nazwa klasy, makro pakiet instrumentacji niekoniecznie jest taki sam jak pakiet Javy. Marka Dopilnuj, aby podczas łączenia komponentu użyć pakietu AndroidManifest.xml. nazwę, a nie pakiet Javy, w którym znajduje się klasa mechanizmu uruchamiania testów.
Aby przeprowadzić pojedynczą klasę testów, przekaż argument -e class
adb shell am instrument -e class com.android.mediaframeworktest.integration.CameraBinderTest -w com.android.mediaframeworktest/.MediaFrameworkIntegrationTestRunner
Aby w klasie testowej uruchomić tylko jedną metodę, dołącz znak (#) oraz
nazwa metody (w tym przypadku testConnectPro
) na nazwę klasy, na przykład:
adb shell am instrument -e class 'com.android.mediaframeworktest.integration.CameraBinderTest#testConnectPro' -w com.android.mediaframeworktest/.MediaFrameworkIntegrationTestRunner
Testy funkcjonalne ustawień multimediów
Oto przykładowe uruchomienie testu funkcjonalnego. W ramach tego testu sprawdzamy podstawowe usługi funkcje różnych kombinacji ustawień aparatu. (np. Flash, ekspozycja, WB, scena, rozmiar zdjęcia i tag geograficzny).
Uruchom polecenie testowe:
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
Testy integracji mediów
Oto przykładowe uruchomienie testu integracji w tym przypadku mediaframeworktest/integration/CameraBinderTest.java i mediaframeworktest/CameraStressTestRunner.java:
adb shell am instrument -e class \ 'com.android.mediaframeworktest.integration.CameraBinderTest' -w \ 'com.android.mediaframeworktest/.CameraStressTestRunner'
Jeśli operacja się uda, dane wyjściowe będą podobne do tych:
----- com.android.mediaframeworktest.integration.CameraBinderTest:........... Test results for CameraStressTestRunner=........... Time: 3.328 OK (11 tests) -----
Testy skuteczności mediów
Ten podgląd pamięci zostanie otwarty i udostępniony podgląd aparatu dla 200 osób razy. W każdych 20 iteracjach jest rejestrowany zrzut serwera mediów ps a po 200 iteracjach porównuje inne wykorzystanie pamięci. Test będzie nie uda się, jeśli różnica jest większa niż 150 kM.
Uruchom polecenie testowe:
adb shell am instrument -w -r -e class com.android.mediaframeworktest.performance.MediaPlayerPerformance#testCameraPreviewMemoryUsage com.android.mediaframeworktest/.MediaFrameworkPerfTestRunner
Bardziej szczegółowe wyniki znajdziesz tutaj:
/sdcard/mediaMemOutput.txt
Testy jednostek multimediów
Polecenia do uruchamiania testów jednostkowych są podobne. Na przykład w przypadku funkcji CameraMetadataTest.java, polecenie będzie wyglądać tak:
adb shell am instrument -e class 'com.android.mediaframeworktest.unit.CameraMetadataTest' -w 'com.android.mediaframeworktest/.CameraStressTestRunner'
Testy wytrzymałościowe w mediach
Ten test ma na celu podkreślenie znaczenia robienia zdjęć i nagrywania wideo za pomocą aparatu.
Uruchom polecenie testowe:
adb shell am instrument -w com.google.android.camera.tests/com.android.camera.stress.CameraStressTestRunner
Wszystkie testy powinny zakończyć się powodzeniem.
Ręczne testy kamery TestingCam
Aplikację TestingCam należy uruchomić ręcznie, wykonując opisane poniżej czynności.
Źródło strony TestingCam znajduje się tutaj: pdk/apps/TestingCamera/
Nieskończona ostrość dzięki przechyleniu kamery
Uruchom TestingCam, włącz podgląd i upewnij się, że tryb autofokus jest ustawiony na nieskończoność. Za pomocą przycisku Zrób zdjęcie możesz zrobić zdjęcia w odległych miejscach (w odległości co najmniej 10 m) z aparatem skierowanym poziomo; w górę (blisko pionu) i w dół (blisko pionu); przykład w górę mogą być na przykład wysokie liście/gałęzie drzewa, Przykładem ujęć w dół może być ulica z dachu budynku. W każdym przypadku odległy obiekt powinien być ostre i ostry. Zapisz i wyświetlać zdjęcia w widoku galerii, co pozwala powiększać o ostrość obrazu.
Pamiętaj, że aby kamera z mechanizmem wykonawczym VCM przeszła ten test, będzie to system sterowania AF typu closed loop lub na podstawie danych z akcelerometru do określenia orientacji aparatu. Wymagana będzie również niezawodna, fabryczna kalibracja pozycji nieskończoności obiektywu.
Testy ręczne TestingCam2
Aplikację TestingCam2 należy uruchomić ręcznie z tymi wskazówkami
przeprowadzonych przez nas działań. Źródło strony TestingCam2 znajdziesz tutaj: pdk/apps/TestingCamera2/
Zapisano JPEG
Rozpocznij TestingCam2 i naciśnij przycisk JPEG. Obraz widoczny po prawej stronie obrazu wizjera powinien wyglądać tak samo wizjer, również w tej samej orientacji.