Mit dem Validierungstool für Kameraerweiterungen können Gerätehersteller überprüfen, ob die OEM-Anbieterbibliothek für Kameraerweiterungen richtig implementiert ist. Das Tool umfasst automatisierte und manuelle Validierungstests.
Automatisierte Validierungstests:Damit wird geprüft, ob die Schnittstelle der Anbieterbibliothek korrekt implementiert ist. Wenn beispielsweise
CaptureProcessor
für die Aufnahme von Bildern erforderlich ist, wird in den Tests geprüft, obImageCaptureExtenderImpl#getCaptureStages()
die erforderlichenCaptureStage
-Instanzen für die Aufnahme der Bilder zurückgibt.Manuelle Validierungstests:Validieren Sie die Bildeffekte und die Qualität von Vorschau- und aufgenommenen Bildern. So können Gerätehersteller beispielsweise manuell prüfen, ob der Effekt zur Retusche von Gesichtern richtig angewendet wird oder ob die Bokeh-Stärke ausreichend ist.
Der Quellcode des Validierungstools ist Teil der Test-App für Erweiterungen im Android Jetpack-Repository.
Validierungstool für Kameraerweiterungen erstellen
So erstellen Sie das Tool zur Validierung von Erweiterungen:
Laden Sie den Quellcode der Android Jetpack-Bibliothek herunter. Weitere Informationen finden Sie im Abschnitt Checking out the Code (Code auschecken) der README-Datei für Android Jetpack.
Erstellen Sie das APK für
extensionstestapp
. So können manuelle Validierungstests ausgeführt werden.cd path/to/checkout/frameworks/support/
./gradlew camera:integration-tests:camera-testapp-extensions:assembleDebug
Die APK wird im folgenden Pfad ausgegeben:
path/to/checkout/out/androidx/camera/integration-tests/camera-testapp-extensions/build/outputs/apk/debug/camera-testapp-extensions-debug.apk
Erstellen Sie das APK für
androidTest
. Mit diesem APK können automatisierte Validierungstests ausgeführt werden.cd path/to/checkout/frameworks/support/
./gradlew camera:integration-tests:camera-testapp-extensions:assembleAndroidTest
Die 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
Wenn Sie die automatischen Validierungstests ausführen möchten, installieren Sie die APKs extensionstestapp
und androidTest
.
extensionstestapp
APKadb install -r path/to/checkout/out/androidx/camera/integration-tests/camera-testapp-extensions/build/outputs/apk/debug/camera-testapp-extensions-debug.apk
androidTest
APKadb 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 erfolgreich sind, wird das Ergebnis OK zurückgegeben. Andernfalls werden im endgültigen Testbericht nach Abschluss aller Tests Fehler im Terminal angezeigt.
Abbildung 1: Ergebnis „Automatisierte Tests – OK“
Abbildung 2: Automatisierte Tests führen zu Fehlern
Automatisierte Tests einer bestimmten 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 in den Validierungstool-Modus, indem Sie oben rechts auf das Menüelement tippen.
Nachdem Sie in den Modus des Validierungstools gewechselt haben, werden auf der ersten Seite alle Kameras mit der Funktion REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE
aufgeführt. Wenn eine Kamera keinen Erweiterungsmodus unterstützt, ist das entsprechende Listenelement grau.
Abbildung 3: Modus des Validierungstools
Tippen Sie auf eine der Kameras, um die Erweiterungsmodi für Tests aufzurufen. Erweiterungsmodi, die von der ausgewählten Kamera nicht unterstützt werden, werden grau dargestellt.
Abbildung 4: Für eine Kamera verfügbare Erweiterungsmodi
Vorschauergebnisse überprü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. Es wird eine Aktivität zum Aufnehmen von Bildern mit der Vorschau angezeigt.
Abbildung 5: Vorschaubild mit aktiviertem Bokeh-Effekt
Die Aktivität zum Erfassen von Bildern unterstützt die folgenden Funktionen:
- Heran-/Herauszoomen
- Zum Fokussieren tippen
- Schaltfläche zum Wechseln der Blitzmodi
- EV +/-
- Schaltfläche zum Aktivieren/Deaktivieren der Erweiterung
Prüfen Sie, ob die Funktionen zum Ein- und Auszoomen, zum Fokussieren durch Tippen, die Blitzmodi und die Funktionen für die Belichtungskorrektur (+/-) in der Vorschau wie erwartet funktionieren.
Ergebnisse der aufgenommenen Bilder überprüfen
Tippen Sie in der Aktivität zur Bildaufnahme auf die Schaltfläche AUFNEHMEN (die runde Schaltfläche), um das Bild aufzunehmen. Dadurch wird eine Bildvalidierungsaktivität gestartet, in der das aufgenommene Bild angezeigt wird.
Abbildung 6 Aufgenommenes Bild mit aktiviertem Bokeh-Effekt
Die Aktivität zur Bildvalidierung umfasst die folgenden Funktionen:
- Zum Skalieren des Bildes zusammenziehen/auseinanderziehen
- Nach links oder rechts wischen, um zwischen den aufgenommenen Bildern zu wechseln
- Neue Aufnahme
- Menüpunkt „Bild speichern“
Prüfen Sie, ob das aufgenommene Bild korrekt ist und mit den Einstellungen für Ein-/Auszoomen, Tippen zum Fokussieren, 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). Tippen Sie andernfalls links unten auf die Schaltfläche FEHLER (Ausrufezeichen).
Testergebnisse abrufen
Nachdem ein Erweiterungsmodus als „Bestanden“ oder „Nicht bestanden“ bestätigt wurde, wird 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 werden 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 Ergebnis für einen Erweiterungsmodus fehlschlägt.
- Grauer Hintergrund:Diese Funktion ist nicht verfügbar.
Abbildung 7. Farben zur Angabe der Testergebnisse für Kameras und Erweiterungsmodi
Weitere Funktionen des Validierungstools
Nachdem alle Tests abgeschlossen sind, bietet die Aktivität „Kameraleiste“ die folgenden Funktionen:
- Testergebnisse exportieren:Exportiert die Testergebnisse als CSV-Datei in den Ordner
Documents/ExtensionsValidation
. - Zurücksetzen:Löscht alle im Cache gespeicherten Testergebnisse.
- Beispiel-App für Erweiterungen:Wechselt in den Modus der Beispiel-App für Erweiterungen.
Nach Abschluss der Tests können Sie die Testergebnisse exportieren. Wenn Sie ein Problem finden und eine neue Version der Implementierung 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.