Paquetes de Android APK

Creación de un paquete de APK

Para crear un paquete de APK, utilice el comando package de ADT, estableciendo el tipo de destino en apk para las versiones de lanzamiento, apk-debug para las versiones de prueba o apk-emulator para las versiones en modo de lanzamiento para su ejecución en un emulador.

adt     -package 
                                -target apk 
                                -storetype pkcs12 -keystore ../codesign.p12 
                                myApp.apk 
                                myApp-app.xml 
                                myApp.swf icons

Escriba todo el comando en una sola línea; los saltos de línea del ejemplo anterior solo están presentes para facilitar la lectura. Asimismo, en el ejemplo se da por sentado que la ruta a la herramienta ADT está en la definición de la ruta del shell de la línea de comandos. (Consulte Variables del entorno de ruta para obtener ayuda.)

Se debe ejecutar el comando desde el directorio que contiene los archivos de la aplicación. Los archivos de la aplicación del ejemplo son myApp-app.xml (archivo descriptor de la aplicación), myApp.swf y un directorio de iconos.

Cuando se ejecuta el comando tal y como se muestra, ADT solicitará la contraseña del almacén de claves. (Los caracteres de la contraseña que se escriben no se muestran; simplemente presione Intro cuando termine de introducirlos.)

Nota: De forma predeterminada, todas las aplicaciones de AIR para Android tienen el prefijo air. en el nombre del paquete. Para excluir este comportamiento predeterminado, defina la variable de entorno AIR_NOANDROIDFLAIR en true en el equipo.

Creación de un paquete de APK para una aplicación con extensiones nativas

Para crear un paquete APK para una aplicación que utilice extensiones nativas, añada la opción -extdir además de las opciones habituales de empaquetado. Si varios archivos ANE comparten recursos o bibliotecas, ADT selecciona un solo recurso o biblioteca e ignora otras entradas duplicadas antes de emitir una advertencia. Esta opción especifica el directorio que contiene los archivos ANE empleados por la aplicación. Por ejemplo:

adt     -package 
                                -target apk 
                                -storetype pkcs12 -keystore ../codesign.p12 
                                myApp.apk 
                                myApp-app.xml 
                                -extdir extensionsDir 
                                myApp.swf icons

Creación de un paquete APK que incluye su propia versión del motor de ejecución de AIR

Para crear un paquete APK que contenga tanto la aplicación como una versión de captación del motor de ejecución de AIR, utilice el destino apk-captive-runtime. Esta opción especifica el directorio que contiene los archivos ANE empleados por la aplicación. Por ejemplo:

adt     -package 
                                -target apk-captive-runtime 
                                -storetype pkcs12 -keystore ../codesign.p12 
                                myApp.apk 
                                myApp-app.xml 
                                myApp.swf icons

Inconvenientes posibles de esta técnica son:

  • Las soluciones críticas de seguridad no están disponibles para los usuarios de forma automática cuando Adobe publica parches de seguridad.

  • Huella más grande de la aplicación en la RAM

Nota: cuando se incluye el motor de ejecución, ADT añade los permisos INTERNET y BROADCAST_STICKY a la aplicación. Estos permisos son necesarios para el motor de ejecución de AIR.

Creación de un paquete de depuración de APK

Para crear una versión de la aplicación que se pueda utilizar con un depurador, utilice apk-debug como destino y especifique las opciones de conexión:

adt     -package 
                                -target apk-debug 
                                -connect 192.168.43.45 
                                -storetype pkcs12 -keystore ../codesign.p12 
                                myApp.apk 
                                myApp-app.xml 
                                myApp.swf icons

La etiqueta -connect indica al motor de ejecución de AIR del dispositivo dónde conectarse a un depurador remoto en la red. Para realizar la depuración a través de USB, se debe especificar la etiqueta -listen, especificando el puerto TCP para utilizar en la conexión de depuración:

adt     -package 
                                -target apk-debug 
                                -listen 7936 
                                -storetype pkcs12 -keystore ../codesign.p12 
                                myApp.apk 
                                myApp-app.xml 
                                myApp.swf icons

Para que la mayoría de las funciones de depuración funcionen, también se deben compilar los archivos SWF y SWC de la aplicación con la depuración activada. Consulte Opciones de conexión del depurador para ver una descripción completa de los indicadores -connect y -listen.

Nota: De forma predeterminada, los paquetes ADT son una copia cautiva del motor de ejecución de AIR con su aplicación de Android mientras se empaqueta la aplicación con el destino apk-debug. Para forzar a ADT para que cree un APK que utilice un motor de ejecución externo, defina la variable de entorno AIR_ANDROID_SHARED_RUNTIME como true.

En Android, la aplicación también debe contar con permiso para acceder a Internet con el fin de conectarse al equipo que ejecuta el depurador a través de la red. Consulte Permisos de Android.

Creación de un paquete APK para su uso en un emulador de Android

Se puede utilizar un paquete APK de depuración en un emulador de Android, pero no un paquete de modo de lanzamiento. Para crear un paquete de APK de modo de lanzamiento para su uso en un emulador, utilice el comando package de ADT, estableciendo el tipo de destino en apk-emulator :

adt -package -target apk-emulator -storetype pkcs12 -keystore ../codesign.p12 myApp.apk myApp-app.xml myApp.swf icons

En el ejemplo se da por sentado que la ruta a la herramienta ADT está en la definición de la ruta del shell de la línea de comandos. (Consulte Variables del entorno de ruta para obtener ayuda.)

Creación de un paquete APK a partir de un archivo de AIR o AIRI

Es posible crear un paquete APK directamente desde un archivo existente de AIR o AIRI:

adt -target apk -storetype pkcs12 -keystore ../codesign.p12 myApp.apk myApp.air

El archivo de AIR debe utilizar el espacio de nombres de AIR 2.5 (o posterior) en el archivo descriptor de la aplicación.

Creación de un paquete APK para la plataforma Android x86

A partir de AIR 14, el argumento -arch se puede utilizar para empaquetar un APK para la plataforma Android x86. Por ejemplo:

    adt     -package 
                                -target apk-debug 
                                -listen 7936 
                                -arch x86 
                                -storetype pkcs12 -keystore ../codesign.p12 
                                myApp.apk 
                                myApp-app.xml 
                                myApp.swf icons