Lista kontrolna testów HAL aparatu

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:

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:

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 (MediaFrameworkTestRunner).

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 , taki jak więc:

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.