A ferramenta de validação de extensões de câmera permite que os fabricantes de dispositivos verifiquem se a biblioteca de fornecedores 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 de fornecedores está implementada corretamente. Por exemplo, se
CaptureProcessorfor necessário para a captura de imagens, os testes vão validar seImageCaptureExtenderImpl#getCaptureStages()retorna as instânciasCaptureStagenecessárias para capturar as imagens.Testes de validação manual: validam os efeitos de imagem 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 facial é 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 de extensões de câmera
Para criar a ferramenta de validação de extensões, siga estas etapas:
Faça o download do código-fonte da biblioteca do Android Jetpack. Para mais detalhes, consulte a seção Checking out the Code do README do Android Jetpack.
Crie o
extensionstestappAPK. Isso permite a execução de testes de validação manual.cd path/to/checkout/frameworks/support/./gradlew camera:integration-tests:camera-testapp-extensions:assembleDebugO APK é gerado no seguinte caminho:
path/to/checkout/out/androidx/camera/integration-tests/camera-testapp-extensions/build/outputs/apk/debug/camera-testapp-extensions-debug.apkCrie o
androidTestAPK. Esse APK permite a execução de testes de validação automatizados.cd path/to/checkout/frameworks/support/./gradlew camera:integration-tests:camera-testapp-extensions:assembleAndroidTestO APK é gerado no 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.
APK
extensionstestappadb install -r path/to/checkout/out/androidx/camera/integration-tests/camera-testapp-extensions/build/outputs/apk/debug/camera-testapp-extensions-debug.apkAPK
androidTestadb 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 de fornecedores, execute o seguinte comando:
adb shell am instrument -w -r androidx.camera.integration.extensions.test/androidx.test.runner.AndroidJUnitRunnerSe todos os testes forem aprovados, um resultado OK será retornado. Caso contrário, o relatório de teste final mostra falhas no terminal após a conclusão de todos os testes.
Figura 1. Resultado OK de testes automatizados
Figura 2. Resultado de testes automatizados com 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 da classe ImageCaptureTest:
adb shell am instrument -w -r -e class **androidx.camera.integration.extensions.ImageCaptureTest** androidx.camera.integration.extensions.test/androidx.test.runner.AndroidJUnitRunnerExecutar testes de validação manual
Os testes de validação manual são encontrados 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
REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE
recurso. Se uma câmera não oferece suporte a nenhum modo de extensão, o item de lista correspondente fica cinza.
Figura 3. Modo de ferramenta de validação
Toque em uma das câmeras para conferir os modos de extensão para teste. Os modos de extensão indisponíveis para a câmera selecionada são mostrados em cinza.
Figura 4. Modos de extensão disponíveis para uma câmera
Verificar 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 será mostrada.
Figura 5. Visualizar imagem com bokeh ativado
A atividade de captura de imagem oferece suporte às seguintes funções:
- Aumentar/diminuir zoom
- Toque para focar
- Botão de alternância de modos de flash
- EV +/-
- Botão de alternância de extensão ativada/desativada
Verifique se as funções de zoom in/out, toque para focar, modos de flash e EV +/- funcionam conforme o 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.
Figura 6. Imagem capturada com bokeh ativado
A atividade de validação de imagem inclui as seguintes funções:
- Faça um gesto de pinça para aumentar/diminuir o zoom da imagem
- Deslize para a esquerda/direita para alternar as imagens capturadas
- Recapturar
- Item de menu "Salvar imagem"
Verifique se a imagem capturada está correta e corresponde às configurações de zoom in/out, toque para focar, modos de flash e EV +/- 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 de lista do modo de extensão mostra uma cor de plano de fundo e um indicador diferentes. Na visualização de lista de todas as câmeras, os itens são mostrados nas seguintes cores:
- Plano de 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 com suporte são validados com todos os resultados aprovados.
- Plano de 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.
Figura 7. Cores que indicam resultados de testes para câmeras e modos de extensão
Outras funções da ferramenta de validação
Depois que todos os testes forem concluídos, a atividade da lista de câmeras vai fornecer as seguintes funções:
- Exportar resultados de testes: exporta os resultados dos testes como um arquivo CSV para a
Documents/ExtensionsValidationpasta. - Redefinir:limpa todos os resultados de testes armazenados em cache.
- App de exemplo de extensões: muda para o modo de app de exemplo de extensões.
Depois de concluir o teste, você pode exportar os resultados. Se você encontrar um problema e uma nova versão da implementação da biblioteca de fornecedores com as soluções precisar ser verificada novamente, redefina os resultados de testes anteriores e execute novamente todos os modos de extensão com suporte em todas as câmeras para verificar se os problemas foram corrigidos.