The Android Developer Challenge is back! Submit your idea before December 2.

Cómo probar las apps de Android para vehículos

Cuando pruebas tus apps para vehículos, garantizas que los usuarios no encontrarán resultados inesperados ni tendrán experiencias poco satisfactorias. Como se podrá acceder a tu app desde la consola del vehículo y la pantalla del teléfono del usuario, debes probar tus apps para vehículos en ambos tipos de pantallas. Además, los usuarios pueden acceder a tu app de diversas maneras.

En este tema, se muestra cómo probar tu app en cada uno de los modos de acceso del usuario. Además, se proporcionan instrucciones para probar otras funcionalidades requeridas.

Prueba tu app para el SO Android Automotive

Puedes usar Android Emulator para probar cómo se ejecuta la app optimizada para conductores en la pantalla de un vehículo con SO Android Automotive. En esta sección, se describe cómo configurar un dispositivo virtual de Android (AVD) que puedes usar para probar tu app.

Edita las configuraciones de ejecución

Las apps del SO Automotive son diferentes de otras apps de Android. El SO Android Automotive interactúa con tu app utilizando intents explícitos y tu servicio de exploración multimedia.

Para probar tu app, verifica que hayas configurado el módulo automotriz para que no inicie ninguna actividad mediante los siguientes pasos.

  1. En Android Studio, selecciona Run > Edit Configurations.

    El cuadro de diálogo Ejecutar/depurar configuraciones.

  2. Selecciona el módulo automotriz desde la lista de módulos de tu app.

  3. En Launch Options > Launch, selecciona Nothing.

  4. Haz clic en Apply y, luego, haz clic en OK.

Agrega imágenes del sistema

Antes de crear AVD que coincidan con el hardware de fabricantes específicos, debes agregar imágenes del sistema para estos dispositivos mediante el SDK Manager de Android Studio. Luego, cuando crees un AVD, podrás descargar estas imágenes del sistema para usarlas con el AVD.

Para agregar una imagen del sistema para Polestar 2, sigue estos pasos:

  1. En Android Studio, selecciona Tools > SDK Manager.
  2. Haz clic en la pestaña SDK Update Sites.
  3. Haz clic en Add Ícono para agregar elementos.
  4. Ingresa los siguientes valores para Name y URL, y luego haz clic en OK:

    Name: Imagen del sistema Polestar 2

    URL: https://developer.polestar.com/sdk/polestar2-sys-img.xml

  5. Haz clic en Apply y en OK.

Crea un AVD de vehículo y ejecuta el emulador

Sigue estos pasos para crear un Android Virtual Device (AVD) que representa un vehículo con SO Android Automotive y, luego, usa ese AVD para ejecutar el emulador:

  1. En Android Studio, selecciona Tools > AVD Manager.
  2. Haz clic en Create Virtual Device.
  3. En el cuadro de diálogo Select Hardware, selecciona Automotive y, luego, selecciona un dispositivo y haz clic en Next.
  4. Selecciona una imagen del sistema destinada a Automotive, como Android 9.0 (Automotive) y, luego, haz clic en Next.
  5. Asigna el AVD y selecciona otras opciones que quieras personalizar y, luego, haz clic en Finish.
  6. En la barra de la ventana de herramientas, selecciona tu ADV de SO Android Automotive como destino de implementación.
  7. Haz clic en Run Ícono de ejecución.

Prueba tu app para pantallas de vehículos compatibles con Android Auto

La DHU habilita tu máquina de desarrollo para emular una unidad principal de Android Auto, de modo que puedas ejecutar y probar tus apps de Android Auto con facilidad. La DHU se ejecuta en hosts con Windows, macOS y Linux.

En esta sección, se explica cómo instalar y ejecutar la DHU en la máquina de desarrollo para probar tus apps. Después de instalar la DHU, puedes probar tus apps de Android Auto conectando el teléfono y la estación de trabajo mediante USB.

Instala la DHU

Para instalar la DHU en tu máquina de desarrollo, sigue estos pasos:

  1. Habilita el modo de desarrollador en tu dispositivo móvil, como se describe en Cómo habilitar las opciones de desarrollador en el dispositivo.
  2. Compila tu app en el entorno de desarrollo e instálala en un dispositivo móvil físico que ejecute Android 5.0 (API nivel 21) o una versión posterior. Para verificar la versión de Android en un dispositivo Nexus, accede a Configuración > Acerca del dispositivo (o Acerca de la tablet) > Versión de Android.
  3. Instala la app de Android Auto en el dispositivo móvil. Si ya está instalada, asegúrate de que estás usando la versión más reciente.
  4. Abre SDK Manager y descarga el emulador de Android Auto Desktop Head Unit del paquete de DHU de la pestaña SDK Tools. La DHU se instala en el directorio <sdk>/extras/google/auto/.

Si estás ejecutando la DHU en Linux, también debes instalar las bibliotecas portaudio, libpng, sdl2 y sdl2_ttf. El procedimiento de instalación varía según la distribución de Linux. Por ejemplo, en las distribuciones de Linux derivadas de Debian, puedes instalar las bibliotecas con este comando:

    $ sudo apt-get install libsdl2-2.0-0 libsdl2-ttf-2.0-0 libportaudio2 libpng12-0
    
Menú contextual con opciones para desarrolladores

Figura 1: Menú contextual con opciones de desarrollador

Notificación que indica que el servidor de la unidad principal se está ejecutando

Figura 2: Notificación que indica que el servidor de la unidad principal está en ejecución

Después de instalar la DHU, puedes probar tus apps de Android Auto conectando el teléfono y la estación de trabajo mediante USB.

Ejecuta la DHU

Para ejecutar la DHU, conecta tu dispositivo móvil a una máquina de desarrollo y establece una conexión con el servidor de la unidad principal a través de Android Debug Bridge (ADB). Sigue estos pasos para establecer el efecto túnel e iniciar la DHU:

  1. En la app Android Auto, presiona el menú de navegación y, luego, Configuración.
  2. Desplázate hasta la sección Acerca de, cerca de la parte inferior, y presiona Versión para mostrar toda la información de la versión y los permisos.
  3. Presiona la sección Información de la versión y los permisos 10 veces.

    Se mostrará el cuadro de diálogo Permitir configuración de desarrollo.

  4. Presiona Aceptar.

    Se habilitará el modo de desarrollador y podrás acceder a las opciones de desarrollador en el menú ampliado. Solo deberás habilitar el modo de desarrollador la primera vez que ejecutes la app de Android Auto.

  5. Si aún no se está ejecutando el servidor de la unidad principal, presiona los tres puntos de la esquina superior derecha de la pantalla para abrir el menú ampliado y selecciona Iniciar servidor unidad princ.

    En el dispositivo, se mostrará un servicio en primer plano en el área de notificación.

  6. En la app de Android Auto, para regresar a la pantalla principal, presiona el botón Atrás y abre Configuración > Autos conectados desde el panel lateral de navegación y asegúrate de que la opción "Agregar automóviles nuevos a Android Auto" esté habilitada.
  7. Conecta el dispositivo móvil a la máquina de desarrollo por USB.
  8. Asegúrate de que la pantalla del dispositivo móvil esté desbloqueada; de lo contrario, no se podrá iniciar la DHU.
  9. En la máquina de desarrollo, ejecuta el siguiente comando adb para desviar las conexiones de socket desde el puerto 5277 de la máquina de desarrollo al mismo número de puerto en el dispositivo con Android. Esta configuración permite que la DHU se conecte al servidor de la unidad principal que se ejecuta en el teléfono a través de un socket TCP.
        $ adb forward tcp:5277 tcp:5277
        
  10. Para iniciar la DHU, ejecuta el comando desktop-head-unit.exe (en Windows) o ./desktop-head-unit (en Mac o Linux) desde el directorio <sdk>/extras/google/auto/.
        $ cd <sdk>/extras/google/auto
        $ ./desktop-head-unit
        

    De forma predeterminada, el servidor de la unidad principal se conecta a través del puerto 5277. Para anular el host o el puerto (por ejemplo, para hacer un desvío a través de SSH), usa la marca desktop-head-unit --adb <[localhost:]port>, como se muestra en el siguiente ejemplo:

        $ ./desktop-head-unit --adb 5999
        

    De forma predeterminada, la DHU emula la forma más común de la unidad principal compatible con Android Auto, que utiliza una interfaz de usuario de pantalla táctil. Puedes simular las entradas táctiles de los usuarios haciendo clic en la DHU con un mouse. Para emular las unidades principales que usan un control de entrada rotativa, puedes usar la marca -i controller, como en el siguiente ejemplo:

        $ ./desktop-head-unit -i controller
        

    Cuando la DHU está en modo de control de entrada rotativa, puedes usar combinaciones de teclas para simular las operaciones del control, como se describe en los comandos y vinculaciones de teclas de la DHU. En el modo de control de entrada rotativa, la DHU ignora los clics del mouse y debes operar Android Auto con las operaciones simuladas del control de entrada rotativa.

Android Auto se inicia en el dispositivo móvil

Figura 3: Android Auto se inicia en el dispositivo móvil

La DHU se inicia en la máquina de desarrollo

Figura 4: La DHU se inicia en la máquina de desarrollo

Nota: También puedes probar tus integraciones multimedia usando la app del control multimedia.

Después de configurar y de iniciar la DHU, puedes ejecutar comandos de la DHU desde la línea de comandos para ejecutar y probar tu app desde la terminal. También puedes ejecutarlos mediante combinaciones de teclas.

Ejecuta comandos de la DHU

Los comandos de la DHU te permiten probar tu app con las funciones de Android Auto, como la reproducción de entradas de voz o el cambio entre los modos de visualización diurno y nocturno. Puedes ejecutar comandos de la DHU desde la ventana del terminal donde iniciaste la DHU. Para ejecutar comandos, también puedes seleccionar la ventana de la DHU y usar las combinaciones de teclas. Los comandos de la DHU y las vinculaciones de teclas de todos los controles se enumeran en los comandos y las vinculaciones de teclas de la DHU.

Cambia entre los modos diurno y nocturno

Android Auto admite diferentes esquemas de colores para el día y la noche. Debes probar tu app tanto en modo diurno como nocturno. Puedes cambiar entre el modo diurno y nocturno de cualquiera de las siguientes maneras:

  • Ejecuta el comando daynight en la terminal donde iniciaste la DHU.
  • Selecciona la ventana de la DHU y presiona la tecla N.

Prueba el micrófono

La DHU admite el uso de un micrófono para la entrada de voz. También puedes indicarle a la DHU que trate una pista de voz pregrabada como entrada, como si la DHU hubiera escuchado la pista a través del micrófono.

Para usar un archivo de sonido pregrabado como entrada, ingresa el siguiente comando:

    $ mic play <sound_file_path>/<sound_file>.wav
    

Te proporcionamos los siguientes archivos de sonido para los comandos de voz comunes. Estos archivos de sonido se instalan en el directorio <sdk>/extras/google/auto/voice/.

exitnav.wav
"Salir de la navegación"
navgoogle.wav
"Conducir hasta 1600 Amphitheatre Parkway, Mountain View"
navsoh.wav
"Navegar hasta la Ópera de Sídney"
nextturn.wav
"¿Cuándo es el próximo giro?"
showalternateroute.wav
"Mostrar rutas alternativas"
howlong.wav
"¿Cuánto tardaré en llegar?"
navhome.wav
"Navegar a casa"
navwork.wav
"Ir al trabajo"
pause.wav
"Pausar la música"
showtraffic.wav
"Mostrar tráfico"

Comandos y vinculaciones de teclas de la DHU

La DHU admite los siguientes comandos.

Tabla 1: Comandos y vinculaciones de teclas

Categoría Comando Subcomando Argumentos Combinaciones de teclas Descripción
Sistema help [command] Muestra el conjunto de comandos completo. Si especificas un nombre de comando (por ejemplo, help day) el sistema muestra la ayuda para ese comando.
quit Alt+q Sale de la unidad principal.
sleep [seconds] Suspende la unidad durante un segundo. Si especificas un argumento (por ejemplo, sleep 30), el sistema suspende el número específico de segundos. Este comando es útil si escribes scripts para la DHU.Puedes ejecutar un script usando el redireccionamiento de I/O desde la línea de comandos: ./desktop-head-unit < script.txt carga comandos del archivo script.txt).
screenshot filename.png Guarda una captura de pantalla en filename.png.
Micrófono mic begin m Activa el micrófono (equivalente a presionar el botón de micrófono en el volante) y espera la entrada del micrófono de la computadora.
play filename.wav Hace que la DHU trate a filename.wav como una entrada de voz, como si ese sonido se retransmitiera a través del micrófono. No se escucha el archivo de sonido que se está reproduciendo, pero sí la respuesta de Android Auto.
repeat Repite el último comando de mic play como si hubieras llamado a mic play de nuevo con el mismo parámetro de archivo de sonido.
Entrada dpad up
down
left
right
Teclas de flecha Simula el movimiento del control rotativo.
soft left
soft right
Mayúscula + teclas de flecha Simula la presión de los botones laterales disponibles en algunos controles rotativos.
click Intro Simula la presión del control rotativo.
back Retroceso Simula la presión del botón atrás disponible en algunos controles rotativos.
rotate left
rotate right
1
2
Simula la rotación del control rotativo hacia la izquierda (en sentido antihorario) o hacia la derecha (en sentido horario).
flick left
flick right
Mayúscula + 1
Mayúscula + 2
Simula un giro rápido del control rotativo hacia la izquierda (en sentido antihorario) o hacia la derecha (sentido horario).
tap x y Simula un evento táctil en las coordenadas especificadas. Por ejemplo, tap 50 100.
Día/Noche day Mayúscula + N Activa el modo día (brillo alto, a todo color).
night Control + N Activa el modo nocturno (brillo bajo, contraste alto).
daynight n Activa o desactiva el modo diurno/nocturno.

Prueba tu app en pantallas de teléfonos

Sigue estos pasos para transferir tu app a un teléfono y probarla.

Paso 1: En la app Android Auto, habilita el modo de desarrollador y las fuentes desconocidas

  1. Instala la app Android Auto en el teléfono, que está disponible en Google Play. Si ya está instalada, asegúrate de que estás usando la versión más reciente.
  2. En la app Android Auto, presiona el menú de navegación y, luego, Configuración.
  3. Desplázate hasta la sección Acerca de, cerca de la parte inferior, y presiona Versión para mostrar toda la información de la versión y los permisos.
  4. Presiona la sección Información de la versión y los permisos 10 veces.

    Se mostrará el cuadro de diálogo Permitir configuración de desarrollo.

  5. Presiona Aceptar.
  6. Presiona los tres puntos de la esquina superior derecha de la pantalla para abrir el menú ampliado, luego presiona Configuración para desarrolladores.
  7. Presiona Modo de aplicación y selecciona Desarrollador.

    La app mostrará la lista de opciones de configuración del desarrollador.

  8. Desplázate hacia abajo hasta Fuentes desconocidas y presiona la casilla de verificación.
  9. Reinicia Android Auto.

Paso 2: En tu teléfono, habilita la depuración de USB

  1. En Configuración > Acerca del dispositivo, presiona Número de compilación siete veces para habilitar las Opciones para desarrolladores.
  2. Regresa a Configuración > Opciones para desarrolladores y habilita Depuración por USB.

Paso 3: Instala tu app en el teléfono y pruébala

  1. Conecta el teléfono a tu máquina a través de un puerto USB para poder instalar las apps directamente durante el desarrollo. Usa el comando adb devices para asegurarte de que tu computadora de desarrollo pueda detectar el dispositivo cuando esté conectada a través de USB.
  2. Una vez que el dispositivo esté configurado y conectado a través de USB, navega al directorio platform-tools/ del SDK e instala el .apk en el dispositivo ejecutando el siguiente comando:

    adb -d install path/to/your/app.apk
        

    Ahora puedes probar tu app y verificar que todo funciona correctamente.

Otros requisitos de prueba

Además de probar tu app para cada uno de los modos de acceso de usuario mencionados en este tema, debes probar tu app para asegurarte de que pueda realizar la siguiente función.

Prueba el "inicio en frío" de la app multimedia

Las apps multimedia de Android Auto deben funcionar incluso si nunca se abrió ninguna actividad. Tu app debe responder de forma adecuada en las siguientes condiciones:

  • MediaBrowserService se ejecuta antes de que se abra cualquier actividad.
  • El usuario no inició sesión.
  • No se puede mostrar ninguna actividad.

Además, prueba las siguientes situaciones:

  • Fuerza la detención de la app multimedia y, luego, inicia Android Auto.
  • Borra los datos de la app multimedia y, luego, inicia Android Auto.

Si la app no puede realizar el comportamiento solicitado, establece un mensaje de error apropiado.