Saltar a contenido

Tutorial 5 – Movilidad: Android

Ahora, vamos a tomar nuestra aplicación, y desplegarla como una aplicación Android.

El proceso de despliegue de una aplicación en Android es muy similar al proceso de despliegue como aplicación de escritorio. Briefcase se encarga de instalar las dependencias para Android, incluyendo el SDK de Android, el emulador de Android y un compilador de Java.

Crear una aplicación Android y compilarla

Primero, ejecuta el comando create. Esto descarga una plantilla de aplicación Android y le añade tu código Python.

(beeware-venv) $ briefcase create android

[helloworld] Generando plantilla de aplicación...
Usando la plantilla de aplicación: https://github.com/beeware/briefcase-android-gradle-template.git, rama v0.3.18
...

[helloworld] Instalando el paquete de soporte...
No se requiere ningún paquete de soporte.

[helloworld] Instalando el código de la aplicación...
Instalando src/helloworld... hecho

[helloworld] Instalando los requisitos...
Escribiendo el archivo de requisitos... hecho

[helloworld] Instalando los recursos de la aplicación...
...

[helloworld] Eliminando contenido innecesario de la aplicación...
Eliminando contenido innecesario del paquete de la aplicación... hecho

[helloworld] Creado build/helloworld/android/gradle
(beeware-venv) $ briefcase create android

[helloworld] Generando plantilla de aplicación...
Usando la plantilla de aplicación: https://github.com/beeware/briefcase-android-gradle-template.git, rama v0.3.18
...

[helloworld] Instalando el paquete de soporte...
No se requiere ningún paquete de soporte.

[helloworld] Instalando el código de la aplicación...
Instalando src/helloworld... hecho

[helloworld] Instalando los requisitos...
Escribiendo el archivo de requisitos... hecho

[helloworld] Instalando los recursos de la aplicación...
...

[helloworld] Eliminando contenido innecesario de la aplicación...
Eliminando contenido innecesario del paquete de la aplicación... hecho

[helloworld] Creado build/helloworld/android/gradle
(beeware-venv) C:\...>briefcase create android

[helloworld] Generando plantilla de aplicación...
Usando la plantilla de aplicación: https://github.com/beeware/briefcase-android-gradle-template.git, rama v0.3.18
...

[helloworld] Instalando el paquete de soporte...
No se requiere paquete de soporte.

[helloworld] Instalando el código de la aplicación...
Instalando src/helloworld... hecho

[helloworld] Instalando requisitos...
Escribiendo el archivo de requisitos... hecho

[helloworld] Instalando los recursos de la aplicación...
...

[helloworld] Eliminando contenido innecesario de la aplicación...
Eliminando contenido innecesario del paquete de la aplicación... hecho

[helloworld] Creado build\helloworld\android\gradle

Cuando ejecutas briefcase create android por primera vez, Briefcase descarga un JDK de Java, y el SDK de Android. El tamaño de los archivos y el tiempo de descarga pueden ser considerables; esto puede llevar un tiempo (10 minutos o más, dependiendo de la velocidad de tu conexión a Internet). Una vez finalizada la descarga, se le pedirá que acepte la licencia del SDK Android de Google. También hay un número de licencias que necesitará aceptar —mantenga pulsando y en la solicitud para revisar y aceptar cada uno de los acuerdos de la licencia necesaria.

Una vez completado esto, tendremos un directorio build\helloworld\android\gradle en nuestro proyecto, que contendrá un proyecto Android con una configuración de construcción Gradle. Este proyecto contendrá el código de la aplicación, y un paquete de soporte que contiene el intérprete de Python.

A continuación, podemos utilizar el comando build de Briefcase para compilar esto en un archivo de aplicación Android APK.

(beeware-venv) $ briefcase build android

[helloworld] Actualizando los metadatos de la aplicación...
Configurando el módulo principal... hecho

[helloworld] Compilando el APK de Android...
Iniciando un demonio de Gradle
...
COMPILACIÓN CORRECTA en 1m 1s
28 tareas ejecutables: 17 ejecutadas, 11 actualizadas
Compilando... hecho

[helloworld] Compilado build/helloworld/android/gradle/app/build/outputs/apk/debug/app-debug.apk
(beeware-venv) $ briefcase build android

[helloworld] Actualizando los metadatos de la aplicación...
Configurando el módulo principal... hecho

[helloworld] Compilando el APK de Android...
Iniciando un demonio de Gradle
...
COMPILACIÓN CORRECTA en 1m 1s
28 tareas ejecutables: 17 ejecutadas, 11 actualizadas
Compilando... hecho

[helloworld] Compilado build/helloworld/android/gradle/app/build/outputs/apk/debug/app-debug.apk
(beeware-venv) C:\...>briefcase build android

[helloworld] Actualizando los metadatos de la aplicación...
Configurando el módulo principal... hecho

[helloworld] Compilando el APK de Android...
Iniciando un demonio de Gradle
...
COMPILACIÓN CORRECTA en 1m 1s
28 tareas ejecutables: 17 ejecutadas, 11 actualizadas
Compilando... hecho

[helloworld] Compilado build\helloworld\android\gradle\app\build\outputs\apk\debug\app-debug.apk

Gradle puede parecer atascado

Durante el paso briefcase build android, Gradle (la herramienta de compilación de la plataforma Android) imprimirá CONFIGURING: 100%, y parecerá que no está haciendo nada. No te preocupes, no está atascado - está descargando más componentes del SDK de Android. Dependiendo de la velocidad de su conexión a Internet, esto puede tardar otros 10 minutos (o más). Este retraso sólo debería ocurrir la primera vez que ejecutes build; las herramientas se almacenan en caché, y en tu próxima compilación, se utilizarán las versiones almacenadas en caché.

Ejecutar la aplicación en un dispositivo virtual

Ahora estamos listos para ejecutar nuestra aplicación. Puedes utilizar el comando run de Briefcase para ejecutar la aplicación en un dispositivo Android. Empecemos ejecutando en un emulador de Android.

Para ejecutar tu aplicación, ejecuta briefcase run android. Al hacerlo, se te pedirá una lista de dispositivos en los que podrías ejecutar la aplicación. El último elemento será siempre una opción para crear un nuevo emulador de Android.

(beeware-venv) $ briefcase run android

Selecciona un dispositivo:

  1) Crear un nuevo emulador de Android

>
(beeware-venv) $ briefcase run android

Selecciona un dispositivo:

  1) Crear un nuevo emulador de Android

>
(beeware-venv) C:\...>briefcase run android

Selecciona dispositivo:

  1) Crear un nuevo emulador de Android

>

Ahora podemos elegir el dispositivo deseado. Selecciona la opción "Crear un nuevo emulador de Android", y acepta la opción por defecto para el nombre del dispositivo (beePhone).

Briefcase run arrancará automáticamente el dispositivo virtual. Cuando el dispositivo esté arrancando, verás el logo de Android:

Arranque en dispositivo virtual
Android

/// subtítulo

Arranque del dispositivo virtual Android

///

Una vez que el dispositivo haya terminado de arrancar, Briefcase instalará tu aplicación en el dispositivo. Verás brevemente una pantalla de inicio:

Dispositivo virtual Android completamente iniciado, en la pantalla del
lanzador

/// subtítulo

Dispositivo virtual Android totalmente iniciado, en la pantalla del lanzador

///

La aplicación se iniciará. Verás una pantalla de bienvenida mientras se inicia la aplicación:

Pantalla de inicio de la aplicación

/// subtítulo

Pantalla de inicio de la aplicación

///

¡El emulador no arranca!

El emulador de Android es un software complejo que depende de una serie de prestaciones del hardware y del sistema operativo, —prestaciones que pueden no estar disponibles o habilitadas en máquinas más antiguas. Si tiene dificultades para iniciar el emulador de Android, consulte la sección Requerimientos y recomendaciones de la documentación para desarrollador de Android.

La primera vez que se inicia la aplicación, tiene que desempaquetarse en el dispositivo. Esto puede tardar unos segundos. Una vez desempaquetada, verás la versión para Android de nuestra aplicación de escritorio:

(../../images/android/tutorial-5-launched.png)Demo completo de app lanzado

/// subtítulo

Aplicación de demostración completamente lanzada

///

Si no ves que tu aplicación se inicia, es posible que tengas que comprobar el terminal donde ejecutaste briefcase run y buscar cualquier mensaje de error.

Mientras se ejecuta la aplicación, verás un montón de mensajes que se transmiten en la consola. Se trata de un flujo de los registros de la aplicación desde el emulador. Si tecleas Ctrl+C en el terminal, se detendrá el flujo de información en la consola, pero no se cerrará el emulador. Esto es para que puedas probar nuevos cambios sin reiniciar el emulador.

En el futuro, si deseas ejecutar en este dispositivo sin usar el menú, puedes proporcionar el nombre del emulador a Briefcase, usando briefcase run android -d "@beePhone" para ejecutar en el dispositivo virtual directamente.

Ejecutar la aplicación en un dispositivo físico

Si tienes un teléfono o tableta Android físicos, puedes conectarlos a tu ordenador con un cable USB y, a continuación, utilizar el Maletín para apuntar a tu dispositivo físico.

Android requiere que prepares tu dispositivo antes de que pueda ser utilizado para el desarrollo. Tendrás que realizar 2 cambios en las opciones de tu dispositivo:

  • Activar opciones de desarrollador
  • Activar la depuración USB

Los detalles sobre cómo realizar estos cambios se pueden encontrar en la documentación para desarrolladores de Android.

Una vez completados estos pasos, tu dispositivo debería aparecer en la lista de dispositivos disponibles cuando ejecutes briefcase run android.

(beeware-venv) $ briefcase run android

Selecciona dispositivo:

  1) Pixel 3a (94ZZY0LNE8)
  2) @beePhone (emulador)
  3) Crear un nuevo emulador de Android

>
(beeware-venv) $ briefcase run android

Selecciona dispositivo:

  1) Pixel 3a (94ZZY0LNE8)
  2) @beePhone (emulador)
  3) Crear un nuevo emulador de Android

>
(beeware-venv) C:\...>briefcase run android

Selecciona dispositivo:

  1) Pixel 3a (94ZZY0LNE8)
  2) @beePhone (emulador)
  3) Crear un nuevo emulador de Android

>

Aquí podemos ver un nuevo dispositivo físico con su número de serie en la lista de despliegue - en este caso, un Pixel 3a. En el futuro, si desea ejecutar en este dispositivo sin utilizar el menú, puede proporcionar el número de serie del teléfono a Briefcase (en este caso, briefcase run android -d 94ZZY0LNE8). Esto se ejecutará en el dispositivo directamente, sin preguntar.

Mi dispositivo no aparece.

Si tu dispositivo no aparece en esta lista, significa que no has activado la depuración USB (o que el dispositivo no está conectado).

Si su dispositivo aparece, pero aparece como "Dispositivo desconocido (no autorizado para el desarrollo)", el modo de desarrollador no se ha habilitado correctamente. Vuelve a ejecutar los pasos para habilitar las opciones de desarrollador, y vuelve a ejecutar briefcase run android.

Siguientes pasos

¡Ya tenemos una aplicación en nuestro teléfono! ¿Hay algún otro lugar donde podamos desplegar una aplicación BeeWare? Consulta el Tutorial 6 para averiguarlo…