Narzędzie do weryfikacji rozszerzeń kamery

Narzędzie do sprawdzania poprawności rozszerzeń aparatu umożliwia producentom urządzeń sprawdzenie, czy biblioteka dostawcy OEM rozszerzeń aparatu jest poprawnie zaimplementowana. Narzędzie zawiera automatyczne i ręczne testy walidacyjne.

  • Zautomatyzowane testy walidacyjne: sprawdzają, czy interfejs biblioteki dostawcy jest poprawnie zaimplementowany. Na przykład, jeśli do przechwytywania obrazu wymagany jest CaptureProcessor , testy sprawdzają, czy ImageCaptureExtenderImpl#getCaptureStages() zwraca wymagane instancje CaptureStage do przechwytywania obrazów.

  • Ręczne testy sprawdzające: Sprawdź efekty obrazu oraz jakość podglądu i przechwyconych obrazów. Testy pozwalają na przykład producentom urządzeń ręcznie sprawdzić, czy efekt retuszu twarzy został zastosowany prawidłowo lub czy siła bokeh jest wystarczająca.

Kod źródłowy narzędzia sprawdzającego jest częścią aplikacji testowej rozszerzeń w repozytorium Android Jetpack .

Zbuduj narzędzie do sprawdzania poprawności rozszerzeń aparatu

Aby zbudować narzędzie do sprawdzania poprawności rozszerzeń, wykonaj następujące kroki:

  1. Pobierz kod źródłowy biblioteki Android Jetpack. Aby uzyskać szczegółowe informacje, zobacz sekcję Sprawdzanie kodu w pliku README Android Jetpack .

  2. Zbuduj plik APK extensionstestapp . Pozwala to na uruchomienie ręcznych testów walidacyjnych.

      cd path/to/checkout/frameworks/support/
      ./gradlew camera:integration-tests:camera-testapp-extensions:assembleDebug
    

    Plik APK jest wyprowadzany do następującej ścieżki:

      path/to/checkout/out/androidx/camera/integration-tests/camera-testapp-extensions/build/outputs/apk/debug/camera-testapp-extensions-debug.apk
    
  3. Zbuduj plik APK androidTest . Ten plik APK umożliwia uruchamianie automatycznych testów sprawdzających.

      cd path/to/checkout/frameworks/support/
      ./gradlew camera:integration-tests:camera-testapp-extensions:assembleAndroidTest
    

    Plik APK jest wyprowadzany do następującej ścieżki:

      path/to/checkout/out/androidx/camera/integration-tests/camera-testapp-extensions/build/outputs/apk/androidTest/debug/camera-testapp-extensions-debug-androidTest.apk
    

Uruchom automatyczne testy sprawdzające

Aby uruchomić automatyczne testy sprawdzające, zainstaluj pakiety APK extensionstestapp i androidTest .

  • extensionstestapp APK

      adb install -r path/to/checkout/out/androidx/camera/integration-tests/camera-testapp-extensions/build/outputs/apk/debug/camera-testapp-extensions-debug.apk
    
  • androidTest APK

      adb install -r path/to/checkout/out/androidx/camera/integration-tests/camera-testapp-extensions/build/outputs/apk/androidTest/debug/camera-testapp-extensions-debug-androidTest.apk
    

Uruchom wszystkie testy automatyczne

Po zainstalowaniu plików APK, aby uruchomić wszystkie automatyczne testy w celu sprawdzenia implementacji biblioteki dostawcy, uruchom następujące polecenie:

adb shell am instrument -w -r androidx.camera.integration.extensions.test/androidx.test.runner.AndroidJUnitRunner

Jeśli wszystkie testy zakończą się pomyślnie, zwracany jest wynik OK . W przeciwnym razie końcowy raport z testów wykaże awarie terminala po zakończeniu wszystkich testów.

pass-automat_validation_result-pass

Rysunek 1. Wynik testów automatycznych OK

automatyczne_validation_result-fail

Rysunek 2. Wyniki testów automatycznych z awariami

Uruchom automatyczne testy określonej klasy

Aby uruchomić automatyczne testy określonej klasy, określ nazwę i ścieżkę klasy docelowej. Poniższy przykład ilustruje polecenie uruchamiające testy dla klasy ImageCaptureTest :

adb shell am instrument -w -r -e class **androidx.camera.integration.extensions.ImageCaptureTest** androidx.camera.integration.extensions.test/androidx.test.runner.AndroidJUnitRunner

Uruchom ręczne testy sprawdzające

Ręczne testy sprawdzające można znaleźć w aplikacji testowej rozszerzeń . Po zainstalowaniu i uruchomieniu aplikacji testowej rozszerzeń przejdź do trybu narzędzia sprawdzającego, dotykając elementu menu w prawym górnym rogu.

Po przełączeniu do trybu narzędzia sprawdzającego, na pierwszej stronie znajdują się wszystkie kamery posiadające funkcję REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE . Jeśli kamera nie obsługuje żadnego trybu rozszerzenia, odpowiadająca jej pozycja na liście jest szara.

Camera_validation_result-initial

Rysunek 3. Tryb narzędzia walidacyjnego

Stuknij jedną z kamer, aby zobaczyć tryby rozszerzeń do przetestowania. Tryby rozszerzeń nieobsługiwane przez wybraną kamerę są wyświetlane w kolorze szarym.

rozszerzenie_mode_validation_result-initial

Rysunek 4. Tryby rozszerzeń dostępne dla kamery

Sprawdź wyniki podglądu

Aby zweryfikować wyniki podglądu, rozpocznij test ręczny, dotykając trybu rozszerzenia dla wybranej kamery. Następnie wyświetlana jest czynność przechwytywania obrazu zawierająca podgląd.

podgląd-bokeh_enabled

Rysunek 5. Podgląd obrazu z włączonym efektem bokeh

Działanie przechwytywania obrazu obsługuje następujące funkcje:

  • Powiększ/oddal
  • Dotknij, aby ustawić ostrość
  • Przycisk przełączania trybów lampy błyskowej
  • EV +/-
  • Przycisk włączania/wyłączania rozszerzenia

Sprawdź, czy funkcje przybliżania/oddalania, ustawiania ostrości przez dotknięcie, tryby lampy błyskowej i funkcje EV +/- działają zgodnie z oczekiwaniami na podglądzie.

Sprawdź wyniki przechwyconego obrazu

Aby przechwycić obraz, dotknij przycisku PRZECHWYĆ (okrągły przycisk) w działaniu przechwytywania obrazu. Spowoduje to uruchomienie działania sprawdzającego obraz, które pokaże przechwycony obraz.

photo_viewer-bokeh_enabled

Rysunek 6. Zrobione zdjęcie z włączonym efektem bokeh

Działanie walidacji obrazu obejmuje następujące funkcje:

  • Rozsuń/zsuń, aby przeskalować obraz
  • Przesuń w lewo/w prawo, aby przełączyć przechwycone obrazy
  • Odzyskanie
  • Zapisz element menu obrazu

Sprawdź, czy przechwycony obraz jest prawidłowy i odpowiada ustawieniom przybliżania/oddalania, ustawiania ostrości przez dotknięcie, trybom lampy błyskowej i ustawieniom EV +/- ustawionym podczas przechwytywania obrazu.

Jeśli zarejestrowane wyniki są prawidłowe, naciśnij przycisk PASS (znacznik) w prawym dolnym rogu. W przeciwnym razie naciśnij przycisk FAIL (wykrzyknik) w lewym dolnym rogu.

Zobacz wyniki testu

Po sprawdzeniu, czy tryb rozszerzenia został pomyślnie zrealizowany, czy nie, element listy trybu rozszerzenia wyświetla inny kolor tła i inny wskaźnik. Na liście wszystkich kamer elementy są wyświetlane w następujących kolorach:

  • Białe tło: kamera obsługuje co najmniej jeden tryb rozszerzeń, a obsługiwane tryby rozszerzeń nie zostały w pełni sprawdzone.
  • Zielone tło: Kamera obsługuje co najmniej jeden tryb rozszerzenia. Wszystkie obsługiwane tryby rozszerzeń są sprawdzane i wszystkie wyniki są sprawdzane.
  • Czerwone tło: Kamera obsługuje co najmniej jeden tryb rozszerzenia. Wszystkie obsługiwane tryby rozszerzeń są sprawdzane i co najmniej jeden wynik trybu rozszerzeń kończy się niepowodzeniem.
  • Szare tło: ta funkcja jest niedostępna.

wynik_weryfikacji_kameryExtension_mode_validation_result

Rysunek 7. Kolory wskazujące wyniki testów kamer i trybów rozszerzeń

Inne funkcje narzędzia do sprawdzania poprawności

Po zakończeniu wszystkich testów działanie listy kamer udostępnia następujące funkcje:

  • Eksportuj wyniki testu: Eksportuje wyniki testu jako plik CSV do folderu Documents/ExtensionsValidation .
  • Resetuj: Czyści wszystkie wyniki testów zapisane w pamięci podręcznej.
  • Przykładowa aplikacja rozszerzeń: przełącza do trybu przykładowej aplikacji rozszerzeń.

Po zakończeniu testów możesz wyeksportować wyniki testów. Jeśli znajdziesz problem i konieczne będzie ponowne zweryfikowanie nowej wersji biblioteki dostawcy z rozwiązaniami, zresetuj wyniki poprzednich testów i ponownie uruchom wszystkie obsługiwane tryby rozszerzeń na wszystkich kamerach, aby sprawdzić, czy problemy zostały rozwiązane.