Cómo generar un Android App Bundle con Delphi


Android App Bundle es el nuevo formato oficial de publicación de archivos de Android.
Al utilizar este formato Google Play lo que hace es optimizar el archivo apk que se envía al usuario cuando quiere descargar nuestra app desde la tienda de Google, reduciendo su tamaño y enviando al usuario sólo los recursos que necesita para que funcione en su dispositivo, con lo que su descarga es mucho más rápida.
En pruebas que he estado haciendo un apk de 20 Mb se me reduce hasta los 11 Mb.
El sistema que utiliza se llama Dynamic Delivery y permite aumentar el tamaño del apk hasta los 150 Mb sin tener que usar archivos de expansión.
El Android App Bundle es un archivo con extensión ".aab" que se sube a Google Play para dar compatibilidad con Dynamic Delivery.

El formato es el siguiente:
Los directorios de color azul, como drawable/, values/ y lib/, representan el código y los recursos que usa Google Play cuando crea un apk de configuración para cada módulo.

Los paquetes de aplicaciones organizan tu app en directorios, y cada directorio representa un módulo. Dentro de cada directorio de módulo, el código y los recursos se organizan de manera similar al contenido de un APK típico. 

Cómo generar un Android app bundle desde RAD STUDIO

Todo lo siguiente está realizado con RAD STUDIO Tokyo 10.3 Update 3
Primero hay que comprobar que se puede generar un apk de 32 bits y de 64 bits y que funciona correctamente.
Después accedemos al menú Project - Options - Building -Delphi Compiler - Compiling



En target marcamos All configurations - Android 64 bit platform

En el apartado Other options marcamos el check:
Generate Android App Bundle file (arm + arm64)

Si posteriormente ejecutamos nuestra app, nos aparecerá un aviso diciendo que se ha creado el archivo con extensión .aab en la carpeta Android64-Release--Bin

Para comprobar que esta apk la pueden abrir usuarios que tengan dispositivos de 32 y de 64 bits lo que hay que hacer es cambiar la extensión "aab" a "zip", después se descomprime el zip y se verifica que existen las siguientes carpetas armeabi-v7a y arm64-v8a en la ruta:

-base-lib


Dentro de cada de una de ellas tienen que encontrarse los archivos con extensión ".so" que son las bibliotecas que utiliza nuestra app y que se descargarán automáticamente según el tipo de dispositivo del usuario.

Hasta ahora lo que hacíamos los desarrolladores es crear una app de 32 o 64 bits y subirla a Google Play para que lo ejecutasen los usuarios, pero después de la prohibición de Google de subir a su tienda apps de 32 bits,  es imprescindible usar los Android App Bundle si se requiere que los usuarios con dispositivos antiguos de 32 bits puedan ejecutar las actualizaciones de las apps.

Como ven de nuevo Embarcadero con Delphi, Rad Studio, Firemonkey nos ponen las cosas muy fáciles, simplemente activando un check conseguimos solucionarlo.

















1 comentario:

  1. No sabes la cantidad de tiempo que me has ahorrado con esta información.
    Estaba intentando de alguna forma que los usuarios con móviles antiguos se instalen las últimas versiones de las app y no había manera.
    ¡¡Muchísimas gracias por compartir!!

    ResponderEliminar