Cómo probar imágenes de la cámara en dispositivos plegables

A partir de Android 13, el ITS de la cámara incluye compatibilidad con pruebas para dispositivos plegables. Los dispositivos plegables tienen cámaras que están disponibles o no según si el dispositivo está plegado o desplegado.

Los IDs de la cámara cambian según el tipo, el modelo y la marca del dispositivo, y la disponibilidad de las cámaras frontales físicas cambia según el estado. Por este motivo, el ITS de la cámara determina de forma dinámica las combinaciones de escena y cámara que se usarán para las pruebas. Como las cámaras deben probarse tanto en el estado plegado como desplegado, las pruebas de dispositivos plegables requieren que se vuelva a montar el DUT durante el proceso de prueba.

Pruebas de las cámaras frontal y posterior

Los sensores de la cámara disponibles en un dispositivo plegable varían según si el dispositivo está plegado o desplegado. En el caso de los dispositivos plegables, la disponibilidad de la cámara frontal cambia según el estado. Por ejemplo, la cámara frontal no está disponible cuando el teléfono está plegado. Debido a este cambio en la disponibilidad de la cámara frontal, se debe probar la cámara frontal en los estados plegado y desplegado. El ITS de la cámara supone que la disponibilidad de la cámara posterior sigue siendo la misma, ya sea que el dispositivo esté plegado o desplegado, por lo que las cámaras posteriores solo deben probarse una vez.

Según el estado del dispositivo, Camera ITS filtra los dispositivos de cámara no disponibles, y estos no aparecen en la lista de combinaciones de cámara y escena.

En la siguiente tabla, se describe el comportamiento de las pruebas de ITS de la cámara para cada orientación de la cámara.

Orientación de la cámara Comportamiento de las pruebas de ITS de la cámara
Cámara posterior Prueba la cámara una vez en el estado plegado o desplegado.
Cámara frontal principal Prueba la cámara una vez en el estado plegado y otra en el estado desplegado.
Cámara frontal física Solo prueba la cámara en los estados en los que está disponible.

Procedimiento de prueba

En esta sección, se describen los pasos para probar las cámaras de dispositivos plegables.

Configurar dispositivo

Para obtener información sobre la configuración, consulta Configuración.

Cómo otorgar acceso a la API de prueba

Para que el ITS de la cámara determine si el dispositivo es plegable o no, debes otorgar acceso a la API de prueba antes de invocar las pruebas. Si no se otorga el acceso, se producirá una falla en la app cuando se ejecuten las pruebas de ITS de la cámara.

Para otorgar acceso, ejecuta el siguiente comando de ADB. Este comando debe ejecutarse una vez para un solo dispositivo. Si se reinstala CTS Verifier con una versión diferente, debes volver a ejecutar el comando.

adb shell am compat enable ALLOW_TEST_API_ACCESS com.android.cts.verifier

Archivo de configuración

Para especificar que el dispositivo es plegable, agrega el parámetro foldable_device en los bancos de pruebas tablet y sensor_fusion del archivo config.yml. El ITS de la cámara usa este parámetro para determinar las combinaciones de camera_id y escenas para los estados plegado y desplegado.

El siguiente es un ejemplo de un archivo config.yml para un dispositivo plegable.

TestBeds:
  - Name: TABLET_SCENES
    # Test configuration for scenes[0:4, 6]
    Controllers:
        AndroidDevice:
          - serial: 8A9X0NS5Z
            label: dut
          - serial: 5B16001229
            label: tablet

    TestParams:
      brightness: 192
      chart_distance: 22.0
      debug_mode: "False"     # "quotes" needed
      chart_loc_arg: ""
      camera: 0
      scene: scene2_a
  lighting_cntl: arduino    # can be "arduino" or "None"
  lighting_ch: 1
  foldable_device: "True"     # "False" for non-foldable DUTs

Cómo ejecutar pruebas

Para ejecutar las pruebas de ITS en un dispositivo plegable, ejecuta el comando run_all_tests.py. Para obtener más información, consulta Cómo invocar pruebas.

Cuando se ejecuta el ITS de la cámara en un dispositivo plegable, la cámara frontal principal se prueba en ambos estados, plegado y desplegado. Si el dispositivo está plegado, los resultados se muestran en la opción camera1_SCENE_NAME_folded de la app de CTS Verifier. Según el estado del dispositivo, ciertos IDs de cámara física frontal no están disponibles y no se prueban. La cámara trasera solo debe probarse en un estado, preferentemente el estado plegado, y los resultados de la cámara trasera no tienen el sufijo _folded.

Para asegurarte de que las escenas plegadas se ejecuten con el dispositivo plegado y verificar el estado del DUT plegable, ejecuta el siguiente comando.

adb shell cmd device_state state

Cuando se ejecutan pruebas en un estado plegado, Camera ITS muestra un mensaje en la terminal para solicitar al usuario que configure el dispositivo correctamente en la caja de ITS. Para seguir ejecutando la prueba después del mensaje, presiona Intro.

Si ejecutas todas las escenas en los estados plegado y desplegado, las escenas plegadas se ejecutan primero, seguidas de las escenas desplegadas. Esto minimiza la cantidad de veces que se debe volver a montar durante las pruebas.

El ITS de la cámara también agrega el sufijo folded al directorio tmp creado para las escenas en estado plegado.

Comandos de muestra

A continuación, se muestran ejemplos de comandos para la ejecución de pruebas en dispositivos plegables.

Comando Descripción
python tools/run_all_tests.py Ejecuta todas las escenas.
python tools/run_all_tests.py scenes=scene0 Ejecuta scene0. Si el dispositivo está plegado y el usuario está probando la cámara frontal principal, la secuencia de comandos determina el estado del dispositivo y agrega el sufijo _folded al nombre de la escena. Los usuarios no tienen que agregar el sufijo para ejecutar las escenas plegadas.
python tests/scene0/ -c config.yml Ejecuta una prueba específica.