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] Generating application template...
Using app template: https://github.com/beeware/briefcase-android-gradle-template.git, branch v0.3.18
...

[helloworld] Installing support package...
No support package required.

[helloworld] Installing application code...
Installing src/helloworld... done

[helloworld] Installing requirements...
Writing requirements file... done

[helloworld] Installing application resources...
...

[helloworld] Removing unneeded app content...
Removing unneeded app bundle content... done

[helloworld] Created 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 de Android de Google.

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] Updating app metadata...
Setting main module... done

[helloworld] Building Android APK...
Starting a Gradle Daemon
...
BUILD SUCCESSFUL in 1m 1s
28 actionable tasks: 17 executed, 11 up-to-date
Building... done

[helloworld] Built 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

Select device:

  1) Create a new Android emulator

>

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 del dispositivo virtual Android

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 totalmente iniciado, en la pantalla del lanzador

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

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 características del hardware y del sistema operativo, características 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 desarrolladores 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:

Aplicación del Tutorial 2, totalmente lanzada

Lanzamiento completo de la aplicación de demostración

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.

En el futuro, si desea ejecutar en este dispositivo sin utilizar el menú, puede proporcionar el nombre del emulador a Briefcase, utilizando 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

Select device:

  1) Pixel 3a (94ZZY0LNE8)
  2) @beePhone (emulator)
  3) Create a new Android emulator

>

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? Visita Tutorial 6 para averiguarlo…