Outil de validation des extensions de caméra

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

L'outil de validation des extensions de caméra permet aux fabricants d'appareils de vérifier que la bibliothèque du fournisseur OEM d'extensions de caméra est correctement implémentée. L'outil comprend des tests de validation automatisés et manuels.

  • Tests de validation automatisés : validez que l'interface de la bibliothèque du fournisseur est correctement implémentée. Par exemple, si CaptureProcessor est requis pour la capture d'images, les tests valident que ImageCaptureExtenderImpl#getCaptureStages() renvoie les instances CaptureStage requises pour capturer les images.

  • Tests de validation manuels : validez les effets d'image et la qualité de l'aperçu et des images capturées. Par exemple, les tests permettent aux fabricants d'appareils de valider manuellement si l'effet de retouche du visage est appliqué correctement ou si la force du bokeh est suffisante.

Le code source de l'outil de validation fait partie de l' application de test des extensions dans le référentiel Android Jetpack .

Créer l'outil de validation des extensions de caméra

Pour créer l'outil de validation des extensions, procédez comme suit :

  1. Téléchargez le code source de la bibliothèque Android Jetpack. Pour plus de détails, consultez la section Checking out the Code du fichier README Android Jetpack .

  2. Créez l'APK extensionstestapp . Cela permet d'exécuter des tests de validation manuels.

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

    L'APK est généré dans le chemin suivant :

      path/to/checkout/out/androidx/camera/integration-tests/camera-testapp-extensions/build/outputs/apk/debug/camera-testapp-extensions-debug.apk
    
  3. Construisez l'APK androidTest . Cet APK permet d'exécuter des tests de validation automatisés.

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

    L'APK est généré dans le chemin suivant :

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

Exécutez des tests de validation automatisés

Pour exécuter les tests de validation automatisés, installez les APK extensionstestapp et 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
    

Exécutez tous les tests automatisés

Après avoir installé les APK, exécutez la commande suivante pour exécuter tous les tests automatisés afin de valider la mise en œuvre de la bibliothèque fournisseur :

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

Si tous les tests réussissent, un résultat OK est renvoyé. Sinon, le rapport de test final montre des échecs dans le terminal une fois tous les tests terminés.

automatic_validation_result-pass

Figure 1. Résultat OK des tests automatisés

automatic_validation_result-fail

Figure 2. Résultat des tests automatisés avec échecs

Exécuter des tests automatisés d'une classe spécifique

Pour exécuter des tests automatisés d'une classe spécifique, spécifiez le nom et le chemin de la classe cible. L'exemple suivant montre la commande pour exécuter des tests pour la classe ImageCaptureTest :

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

Exécutez des tests de validation manuels

Les tests de validation manuels se trouvent dans l' application de test des extensions . Après avoir installé et lancé l'application de test des extensions, passez en mode outil de validation en appuyant sur l'élément de menu en haut à droite.

Après être passé en mode outil de validation, la première page répertorie toutes les caméras qui contiennent la capacité REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE . Si une caméra ne prend en charge aucun mode d'extension, son élément de liste correspondant est grisé.

camera_validation_result-initial

Figure 3. Mode outil de validation

Appuyez sur l'une des caméras pour voir les modes d'extension à tester. Les modes d'extension non pris en charge par la caméra sélectionnée sont affichés en gris.

extension_mode_validation_result-initial

Figure 4. Modes d'extension disponibles pour une caméra

Vérifier les résultats de l'aperçu

Pour vérifier les résultats de l'aperçu, démarrez un test manuel en appuyant sur un mode d'extension pour la caméra sélectionnée. Une activité de capture d'image contenant l'aperçu est alors affichée.

aperçu-bokeh_enabled

Figure 5. Aperçu de l'image avec bokeh activé

L'activité de capture d'image prend en charge les fonctions suivantes :

  • Zoom avant/arrière
  • Appuyez pour faire la mise au point
  • Bouton de commutation des modes de flash
  • EV +/-
  • Bouton de commutation d'extension activé/désactivé

Vérifiez que le zoom avant/arrière, la mise au point par pression, les modes flash et les fonctions EV +/- fonctionnent comme prévu dans l'aperçu.

Vérifier les résultats de l'image capturée

Pour capturer l'image, appuyez sur le bouton CAPTURE (le bouton rond) dans l'activité de capture d'image. Cela lance une activité de validation d'image qui affiche l'image capturée.

photo_viewer-bokeh_enabled

Figure 6. Image capturée avec bokeh activé

L'activité de validation d'image comprend les fonctions suivantes :

  • Pincez pour redimensionner l'image
  • Faites glisser vers la gauche/droite pour changer les images capturées
  • Reprise
  • Élément de menu Enregistrer l'image

Vérifiez si l'image capturée est correcte et correspond au zoom avant/arrière, à la mise au point par pression, aux modes de flash et aux paramètres EV +/- qui ont été définis lors de la capture de l'image.

Si les résultats capturés sont corrects, appuyez sur le bouton PASS (coche) dans le coin inférieur droit. Sinon, appuyez sur le bouton FAIL (point d'exclamation) dans le coin inférieur gauche.

Afficher les résultats des tests

Une fois qu'un mode d'extension a été vérifié comme réussi ou échoué, l'élément de liste du mode d'extension affiche une couleur d'arrière-plan et un indicateur différents. Dans la vue liste de toutes les caméras, les éléments sont affichés dans les couleurs suivantes :

  • Fond blanc : la caméra prend en charge au moins un mode d'extension et les modes d'extension pris en charge ne sont pas complètement validés.
  • Arrière-plan vert : la caméra prend en charge au moins un mode d'extension. Tous les modes d'extension pris en charge sont validés avec tous les résultats réussis.
  • Fond rouge : la caméra prend en charge au moins un mode d'extension. Tous les modes d'extension pris en charge sont validés avec au moins un résultat de mode d'extension en échec.
  • Fond gris : cette fonctionnalité n'est pas disponible.

camera_validation_resultextension_mode_validation_result

Figure 7. Couleurs indiquant les résultats des tests pour les caméras et les modes d'extension

Autres fonctions de l'outil de validation

Une fois tous les tests terminés, l'activité de liste de caméras fournit les fonctions suivantes :

  • Exporter les résultats du test : exporte les résultats du test sous forme de fichier CSV dans le dossier Documents/ExtensionsValidation .
  • Réinitialiser : efface tous les résultats de test mis en cache.
  • Exemple d'application d' extensions : bascule vers le mode d'application d'exemple d'extensions.

Une fois le test terminé, vous pouvez exporter les résultats du test. Si vous trouvez un problème et qu'une nouvelle version de l'implémentation de la bibliothèque du fournisseur avec les solutions doit être vérifiée à nouveau, réinitialisez les résultats des tests précédents et réexécutez tous les modes d'extension pris en charge sur toutes les caméras pour vérifier que les problèmes sont résolus.