Ferramenta de validação das extensões de câmera

A ferramenta de validação de extensões da câmera permite que os fabricantes de dispositivos verifiquem se a biblioteca OEM de extensões da câmera está implementada corretamente. A ferramenta inclui testes de validação automatizados e manuais.

  • Testes de validação automatizados: validam se a interface da biblioteca do fornecedor foi implementada corretamente. Por exemplo, se CaptureProcessor for obrigatório para a captura de imagem, os testes validarão que ImageCaptureExtenderImpl#getCaptureStages() retorne as instâncias CaptureStage necessárias para capturar as imagens.

  • Testes de validação manual:valide os efeitos e a qualidade das imagens de visualização e capturadas. Por exemplo, os testes permitem que os fabricantes de dispositivos validem manualmente se o efeito de retoque de rosto foi aplicado corretamente ou se a intensidade do bokeh é suficiente.

O código-fonte da ferramenta de validação faz parte do app de teste de extensões no repositório do Android Jetpack.

Criar a ferramenta de validação das extensões da câmera

Para criar a ferramenta de validação de extensões, siga estas etapas:

  1. Faça o download do código-fonte da biblioteca do Android Jetpack. Para mais detalhes, consulte a seção Como conferir o código do README do Android Jetpack.

  2. Crie o APK extensionstestapp. Isso permite a execução de testes de validação manuais.

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

    A saída do APK é o seguinte caminho:

      path/to/checkout/out/androidx/camera/integration-tests/camera-testapp-extensions/build/outputs/apk/debug/camera-testapp-extensions-debug.apk
    
  3. Crie o APK androidTest. Esse APK permite executar testes de validação automatizados.

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

    A saída do APK é o seguinte caminho:

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

Executar testes de validação automatizados

Para executar os testes de validação automatizados, instale os APKs extensionstestapp e 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

Executar todos os testes automatizados

Depois de instalar os APKs, para executar todos os testes automatizados para validar a implementação da biblioteca do fornecedor, execute o seguinte comando:

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

Se todos os testes forem aprovados, o resultado OK será retornado. Caso contrário, o relatório de teste final vai mostrar falhas no terminal após a conclusão de todos os testes.

automated_validation_result-pass

Figura 1. Resultado OK dos testes automatizados

automated_validation_result-fail

Figura 2. Os testes automatizados resultam em falhas

Executar testes automatizados de uma classe específica

Para executar testes automatizados de uma classe específica, especifique o nome e o caminho da classe de destino. O exemplo a seguir mostra o comando para executar testes para a classe ImageCaptureTest:

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

Executar testes de validação manuais

Os testes de validação manual estão disponíveis no app de teste de extensões. Depois de instalar e iniciar o app de teste de extensões, mude para o modo de ferramenta de validação tocando no item de menu no canto superior direito.

Depois de mudar para o modo de ferramenta de validação, a primeira página lista todas as câmeras que contêm o recurso REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE. Se uma câmera não oferecer suporte a nenhum modo de extensão, o item de lista correspondente ficará acinzentado.

camera_validation_result-initial

Figura 3. Modo da ferramenta de validação

Toque em uma das câmeras para conferir os modos de extensão para teste. Os modos de extensão que não têm suporte da câmera selecionada são mostrados em cinza.

modo_de_validação_da_extensão_de_resultado

Figura 4. Modos de extensão disponíveis para uma câmera

Verificar os resultados da visualização

Para conferir os resultados da visualização, inicie um teste manual tocando em um modo de extensão para a câmera selecionada. Uma atividade de captura de imagem contendo a visualização é mostrada.

pré-visualização-bokeh_ativada

Figura 5. Visualizar imagem com bokeh ativado

A atividade de captura de imagem é compatível com as seguintes funções:

  • Aumentar/diminuir zoom
  • Toque para focar
  • Botão de alternância dos modos de flash
  • EV +/-
  • Botão de ativação/desativação da extensão

Confira se as funções de aumentar/diminuir zoom, toque para focar, modos de flash e funções EV +/- funcionam como esperado na visualização.

Verificar os resultados da imagem capturada

Para capturar a imagem, toque no botão CAPTURE (o botão redondo) na atividade de captura de imagem. Isso inicia uma atividade de validação de imagem que mostra a imagem capturada.

photo_viewer-bokeh_enabled

Figura 6. Imagem capturada com o efeito bokeh ativado

A atividade de validação de imagem inclui as seguintes funções:

  • Faça gesto de pinça para redimensionar a imagem
  • Deslize para a esquerda/direita para alternar entre as imagens capturadas
  • Recuperação
  • Item de menu "Salvar imagem"

Verifique se a imagem capturada está correta e corresponde ao zoom in/out, toque para focar, modos de flash e configurações de EV +/- que foram definidas ao capturar a imagem.

Se os resultados capturados estiverem corretos, toque no botão PASS (marca de seleção) no canto inferior direito. Caso contrário, toque no botão FAIL (ponto de exclamação) no canto inferior esquerdo.

Ver os resultados dos testes

Depois que um modo de extensão é verificado como aprovado ou reprovado, o item da lista do modo de extensão mostra uma cor e um indicador de plano de fundo diferentes. Na visualização de lista de todas as câmeras, os itens são mostrados nas seguintes cores:

  • Fundo branco:a câmera oferece suporte a pelo menos um modo de extensão, e os modos de extensão com suporte não são validados completamente.
  • Plano de fundo verde:a câmera oferece suporte a pelo menos um modo de extensão. Todos os modos de extensão compatíveis são validados após a transmissão de todos os resultados.
  • Fundo vermelho:a câmera oferece suporte a pelo menos um modo de extensão. Todos os modos de extensão com suporte são validados com pelo menos um resultado de modo de extensão com falha.
  • Plano de fundo cinza:esse recurso não está disponível.

camera_validation_result extension_mode_validation_result

Figura 7. Cores que indicam os resultados do teste para câmeras e modos de extensão

Outras funções da ferramenta de validação

Após a conclusão de todos os testes, a atividade da lista de câmeras fornece as seguintes funções:

  • Exportar resultados de teste:exporta os resultados do teste como um arquivo CSV para a pasta Documents/ExtensionsValidation.
  • Redefinir:limpa todos os resultados de teste armazenados em cache.
  • App de exemplo de extensões:muda para o modo de app de exemplo de extensões.

Depois de concluir os testes, você pode exportar os resultados. Se você encontrar um problema e uma nova versão da implementação da biblioteca do fornecedor com as soluções precisar ser verificada novamente, redefina os resultados do teste anterior e execute todos os modos de extensão compatíveis em todas as câmeras para verificar se os problemas foram corrigidos.