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

A ferramenta de validação de extensões de câmera permite que os fabricantes de dispositivos verifiquem se a biblioteca do fornecedor OEM de extensões de 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 está implementada corretamente. Por exemplo, se CaptureProcessor for necessário para captura de imagem, os testes validam que ImageCaptureExtenderImpl#getCaptureStages() retorna as instâncias CaptureStage necessárias para capturar as imagens.

  • Testes de validação manuais: validam os efeitos da imagem e a qualidade das imagens visualizadas e capturadas. Por exemplo, os testes permitem que os fabricantes de dispositivos validem manualmente se o efeito de retoque facial foi aplicado corretamente ou se a intensidade do bokeh é suficiente.

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

Crie a ferramenta de validação de extensões de câmera

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

  1. Baixe o código-fonte da biblioteca Android Jetpack. Para obter detalhes, consulte a seção Verificando 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
    

    O APK é enviado para 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 . Este APK permite a execução de testes de validação automatizados.

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

    O APK é enviado para 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
    

Execute 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
    

Execute todos os testes automatizados

Após 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, um resultado OK será retornado. Caso contrário, o relatório de teste final mostrará falhas no terminal após a conclusão de todos os testes.

passagem_de_resultado_de_validação_automatizada

Figura 1. Resultado OK dos testes automatizados

falha_de_resultado_de_validação_automatizada

Figura 2. Resultado de testes automatizados com falhas

Execute 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

Execute testes de validação manuais

Os testes de validação manual são encontrados no aplicativo de teste de extensões . Depois de instalar e iniciar o aplicativo 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 suportar nenhum modo de extensão, o item da lista correspondente ficará cinza.

camera_validation_result-initial

Figura 3. Modo de ferramenta de validação

Toque em uma das câmeras para ver os modos de extensão para teste. Os modos de extensão não suportados pela câmera selecionada são mostrados em cinza.

extension_mode_validation_result-initial

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

Verifique os resultados da visualização

Para verificar 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 é então mostrada.

visualização-bokeh_enabled

Figura 5. Visualização da imagem com bokeh ativado

A atividade de captura de imagem suporta as seguintes funções:

  • Aumentar/diminuir zoom
  • Toque para focar
  • Botão de mudança de modos de flash
  • VE +/-
  • Botão de comutação de extensão habilitada/desabilitada

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

Verifique os resultados da imagem capturada

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

photo_viewer-bokeh_enabled

Figura 6. Imagem capturada com bokeh ativado

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

  • Aperte para dentro/para fora para dimensionar a imagem
  • Deslize para a esquerda/direita para alternar as imagens capturadas
  • Recaptura
  • Salvar item de menu de imagem

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

Se os resultados capturados estiverem corretos, toque no botão PASSAR (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 resultados de 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 de fundo e um indicador diferentes. Na visualização de lista de todas as câmeras, os itens são exibidos nas seguintes cores:

  • Fundo branco: a câmera suporta pelo menos um modo de extensão e os modos de extensão suportados não são completamente validados.
  • Fundo verde: A câmera suporta pelo menos um modo de extensão. Todos os modos de extensão suportados são validados com a aprovação de todos os resultados.
  • Fundo vermelho: A câmera suporta pelo menos um modo de extensão. Todos os modos de extensão suportados são validados com pelo menos um resultado de modo de extensão com falha.
  • Fundo cinza: este recurso não está disponível.

camera_validation_resultextension_mode_validation_result

Figura 7. Cores que indicam resultados de testes 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 do teste: exporta os resultados do teste como um arquivo CSV para a pasta Documents/ExtensionsValidation .
  • Redefinir: Limpa todos os resultados de testes armazenados em cache.
  • Aplicativo de exemplo de extensões: alterna para o modo de aplicativo de exemplo de extensões.

Depois de concluir o teste, você pode exportar os resultados do teste. 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 dos testes anteriores e execute novamente todos os modos de extensão suportados em todas as câmeras para verificar se os problemas foram corrigidos.