Validierungstool für Kameraerweiterungen

Mit dem Tool zur Validierung von Kameraerweiterungen können Gerätehersteller prüfen, ob die OEM-Anbieterbibliothek für Kameraerweiterungen richtig 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 Bildaufnahme erforderlich ist, wird in den Tests geprüft, ob ImageCaptureExtenderImpl#getCaptureStages() die erforderlichen CaptureStage-Instanzen für die Aufnahme 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 Validierung von Erweiterungen:

  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 an den 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 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 – Ergebnis „OK“

automated_validation_result-fail

Abbildung 2. Automatisierte Tests schlagen fehl

Automatisierte Tests für eine bestimmte Klasse ausführen

Wenn Sie automatisierte Tests für eine bestimmte 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. Nachdem Sie die Test-App für Erweiterungen installiert und gestartet haben, wechseln Sie zum Modus „Validierungstool“, indem Sie oben rechts auf den Menüpunkt tippen.

Nachdem Sie zum Modus des Validierungstools gewechselt haben, werden auf der ersten Seite alle Kameras aufgeführt, die die Funktion REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE unterstützen. 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 der Blitzmodi
  • EV +/-
  • 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

Wenn Sie das Bild aufnehmen möchten, tippen Sie in der Aktivität „Bilder aufnehmen“ auf die Schaltfläche AUFNEHMEN (die runde Schaltfläche). 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 mit den Einstellungen für Zoomen, „Zum Fokussieren tippen“, Blitzmodi und EV +/- übereinstimmt, die beim Aufnehmen des Bilds 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

Nachdem alle Tests abgeschlossen sind, 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 der 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.