Validierungstool für Kameraerweiterungen

Mit dem Validierungstool für Kameraerweiterungen können Gerätehersteller prüfen, ob die OEM-Bibliothek der Kameraerweiterungen korrekt implementiert ist. Das Tool umfasst automatisierte und manuelle Validierungstests.

  • Automatisierte Validierungstests: Prüfen, ob die Schnittstelle der Anbieterbibliothek korrekt implementiert ist. Wenn beispielsweise CaptureProcessor für die Bilderfassung erforderlich ist, prüfen die Tests, ob ImageCaptureExtenderImpl#getCaptureStages() die erforderlichen CaptureStage-Instanzen zum Erfassen der Bilder zurückgibt.

  • Manuelle Validierungstests:Hier können Sie die Bildeffekte und die Qualität der Vorschau- und aufgenommenen Bilder prüfen. So können Gerätehersteller beispielsweise manuell prüfen, ob der Effekt für die Gesichtsretusche richtig angewendet wird oder ob die Bokeh-Stärke ausreicht.

Der Quellcode des Validierungstools ist Teil der Testanwendung für Erweiterungen im Android Jetpack-Repository.

Validierungstool für Kameraerweiterungen erstellen

So erstellen Sie das Tool zur Erweiterungsvalidierung:

  1. Laden Sie den Quellcode der Android Jetpack-Bibliothek herunter. Weitere Informationen finden Sie im Abschnitt Code auschecken der Android Jetpack-README.

  2. Erstellen Sie das extensionstestapp-APK. So können manuelle Validierungstests ausgeführt werden.

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

    Das APK wird an den folgenden Pfad ausgegeben:

      path/to/checkout/out/androidx/camera/integration-tests/camera-testapp-extensions/build/outputs/apk/debug/camera-testapp-extensions-debug.apk
    
  3. Erstellen Sie das androidTest-APK. Mit diesem APK können automatisierte Validierungstests ausgeführt werden.

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

    Das APK wird im folgenden Pfad ausgegeben:

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

Automatisierte Validierungstests ausführen

Installieren Sie die APKs extensionstestapp und androidTest, um die automatisierten Validierungstests auszuführen.

  • 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

Alle automatisierten Tests ausführen

Führen Sie nach der Installation der APKs den folgenden Befehl aus, um alle automatisierten Tests zur Validierung der Implementierung der Anbieterbibliothek auszuführen:

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

Wenn alle Tests bestanden werden, wird das Ergebnis OK zurückgegeben. Andernfalls werden im Terminal nach Abschluss aller Tests Fehler im abschließenden Testbericht angezeigt.

automated_validation_result-pass

Abbildung 1. Automatisierte Tests OK-Ergebnis

automatisierte_Validierung_Ergebnis fehlgeschlagen

Abbildung 2. Automatisierte Tests schlagen fehl

Automatisierte Tests für eine bestimmte Klasse ausführen

Wenn Sie automatisierte Tests einer bestimmten Klasse ausführen möchten, geben Sie den Namen und den Pfad der Zielklasse an. Das folgende Beispiel zeigt den Befehl zum Ausführen von Tests für die Klasse ImageCaptureTest:

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

Manuelle Validierungstests ausführen

Die manuellen Validierungstests finden Sie in der Test-App für Erweiterungen. Wechseln Sie nach dem Installieren und Starten der Test-App für Erweiterungen in den Modus des Validierungstools, indem Sie auf den Menüpunkt oben rechts tippen.

Nach dem Wechsel in den Modus des Validierungstools werden auf der ersten Seite alle Kameras aufgeführt, die die REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE-Funktion enthalten. Wenn eine Kamera keinen Erweiterungsmodus unterstützt, ist das entsprechende Listenelement ausgegraut.

camera_validation_result-initial

Abbildung 3 Modus des Validierungstools

Tippen Sie auf eine der Kameras, um die Erweiterungsmodi für den Test zu sehen. Erweiterungsmodi, die von der ausgewählten Kamera nicht unterstützt werden, sind ausgegraut.

extension_mode_validation_result-initial

Abbildung 4: Für eine Kamera verfügbare Erweiterungsmodi

Vorschauergebnisse prüfen

Wenn Sie die Vorschauergebnisse überprüfen möchten, starten Sie einen manuellen Test, indem Sie auf einen Erweiterungsmodus für die ausgewählte Kamera tippen. Daraufhin wird eine Aktivität zur Bildaufnahme mit der Vorschau angezeigt.

preview-bokeh_enabled

Abbildung 5. Vorschaubild mit aktiviertem Bokeh

Die Aktivität „Bilder aufnehmen“ unterstützt die folgenden Funktionen:

  • Heran-/Herauszoomen
  • Zum Fokussieren tippen
  • Schaltfläche zum Wechseln des Blitzmodus
  • LW +/-
  • Ein-/Aus-Schalter für die Erweiterung

Prüfen Sie, ob das Heranzoomen und Herauszoomen, das Fokussieren durch Tippen, die Blitzmodi und die Funktionen für die Belichtungskorrektur +/- in der Vorschau wie erwartet funktionieren.

Erfasste Bildergebnisse überprüfen

Tippen Sie dazu bei der Bildaufnahme auf die runde Schaltfläche AUFNAHME. Dadurch wird eine Bildvalidierungsaktivität gestartet, in der das aufgenommene Bild angezeigt wird.

photo_viewer-bokeh_enabled

Abbildung 6 Aufgenommenes Bild mit aktiviertem Bokeh

Die Aktivität zur Bildvalidierung umfasst die folgenden Funktionen:

  • Bild zusammen-/auseinanderziehen, um es zu skalieren
  • Wischen Sie nach links oder rechts, um zwischen den aufgenommenen Bildern zu wechseln.
  • Recapture
  • Menüpunkt „Bild speichern“

Prüfen Sie, ob das aufgenommene Bild korrekt ist und den Einstellungen für Heran- und Herauszoomen, Tippen für Fokussieren, Blitzmodi und Lichtwert +/− entspricht, die bei der Aufnahme des Bildes festgelegt wurden.

Wenn die erfassten Ergebnisse korrekt sind, tippen Sie rechts unten auf die Schaltfläche PASS (Häkchen). Andernfalls tippen Sie links unten auf die Schaltfläche FEHLER (Ausrufezeichen).

Testergebnisse abrufen

Nachdem ein Erweiterungsmodus als bestanden oder nicht bestanden bestätigt wurde, werden für das Listenelement des Erweiterungsmodus eine andere Hintergrundfarbe und ein anderer Indikator angezeigt. In der Listenansicht aller Kameras werden die Elemente in den folgenden Farben angezeigt:

  • Weißer Hintergrund:Die Kamera unterstützt mindestens einen Erweiterungsmodus und die unterstützten Erweiterungsmodi wurden nicht vollständig validiert.
  • Grüner Hintergrund:Die Kamera unterstützt mindestens einen Erweiterungsmodus. Alle unterstützten Erweiterungsmodi werden validiert und alle Ergebnisse sind erfolgreich.
  • Roter Hintergrund:Die Kamera unterstützt mindestens einen Erweiterungsmodus. Alle unterstützten Erweiterungsmodi werden validiert, wobei mindestens ein Erweiterungsmodus fehlschlägt.
  • Grauer Hintergrund:Diese Funktion ist nicht verfügbar.

Camera_validation_result extension_mode_validation_result

Abbildung 7. Farben für Testergebnisse für Kameras und Erweiterungsmodi

Weitere Funktionen des Validierungstools

Nach Abschluss aller Tests bietet die Kameralistenaktivität die folgenden Funktionen:

  • Testergebnisse exportieren:Die Testergebnisse werden als CSV-Datei in den Ordner Documents/ExtensionsValidation exportiert.
  • Zurücksetzen:Alle im Cache gespeicherten Testergebnisse werden gelöscht.
  • Beispielanwendung für Erweiterungen:Hiermit wird der Modus der Beispielanwendung für Erweiterungen aktiviert.

Nach Abschluss des Tests können Sie die Testergebnisse exportieren. Wenn Sie ein Problem finden und eine neue Version der Anbieterbibliothek mit den Lösungen noch einmal überprüft werden muss, setzen Sie die vorherigen Testergebnisse zurück und führen Sie alle unterstützten Erweiterungsmodi auf allen Kameras noch einmal aus, um zu prüfen, ob die Probleme behoben wurden.