Configuración común

Varias opciones de configuración del descriptor de la aplicación son importantes para todas las aplicaciones de dispositivo móvil.

Versión necesaria del motor de ejecución de AIR

Especifique la versión del motor de ejecución de AIR que necesita la aplicación utilizando el espacio de nombres del archivo descriptor de la aplicación.

El espacio de nombres, asignado en el elemento application , determina, en gran parte, qué funciones puede utilizar la aplicación. Por ejemplo, si la aplicación utiliza el espacio de nombres de AIR 2.7 y el usuario tiene alguna versión posterior instalada, la aplicación aún verá el comportamiento de AIR 2.7 (aunque el comportamiento haya cambiado en la versión posterior). Solo cuando se cambia el espacio de nombres y se publica una actualización, la aplicación tendrá acceso a las nuevas funciones y características. Las soluciones de seguridad son una excepción importante a esta regla.

En los dispositivos que utilizan un motor de ejecución independiente de la aplicación, como Android en AIR 3.6 y anterior, al usuario se le pedirá que instale o actualice AIR si no dispone de la versión necesaria. En los dispositivos que incorporan el motor de ejecución, como iPhone, no se produce esta situación (debido a que la versión necesaria se empaqueta con la aplicación en primer lugar).

Nota: (AIR 3.7 y posterior) de forma predeterminada, ADT empaqueta el tiempo d ejecución con las aplicaciones de Android.

Especifique el espacio de nombres utilizando el atributo xmlns del elemento raíz application : Los siguientes espacios de nombres se pueden utilizar para las aplicaciones móviles (dependiendo de la plataforma móvil):

iOS 4+ and iPhone 3Gs+ or Android: 
                            <application xmlns="http://ns.adobe.com/air/application/2.7"> 
                            iOS only: 
                            <application xmlns="http://ns.adobe.com/air/application/2.0">
Nota: la compatibilidad con los dispositivos de iOS 3 se proporciona en el SDK de Packager for iPhone SDK, basada en el SDK de AIR 2.0. Para obtener información sobre la creación de aplicaciones de AIR para iOS 3, consulte Creación de aplicaciones para iPhone . El SDK de AIR 2.6 (y versiones posteriores) admite iOS 4 y versiones más recientes en dispositivos iPhone 3Gs, iPhone 4 e iPad.

Identidad de la aplicación

Las distintas configuraciones deben ser exclusivas para cada aplicación que se publique. Entre los valores de configuración se incluyen el ID, el nombre y el nombre del archivo.

ID de la aplicación Android

En Android, el ID se convierte en el nombre del paquete de Android, indicando como prefijo “air.” en el ID de AIR. De este modo, si el ID de la aplicación es com.example.MyApp , el nombre del paquete de Android será air.com.example.MyApp .

<id>com.example.MyApp</id> 
                                <name>My Application</name> 
                                <filename>MyApplication</filename>

Asimismo, si el ID no es un nombre de paquete válido en el sistema operativo Android, es convierte a un nombre válido. Los guiones cambian a caracteres de subrayado y los primeros dígitos de cualquier componente de ID van precedidos de una letra “A” mayúscula. Por ejemplo, el ID: 3-goats.1-boat , se transforma en el nombre de paquete: air.A3_goats.A1_boat .

Nota: el prefijo añadido al ID de la aplicación se puede utilizar para identificar las aplicaciones de AIR en Android Market. Si no desea que su aplicación se identifique como aplicación de AIR por el prefijo, debe desempaquetar el archivo APK, cambiar el ID de aplicación y volver a empaquetarlo tal y como se describe en Opt-out of AIR application analytics for Android (Cancelación voluntaria de la analítica de la aplicación de AIR para Android; en inglés).

ID de la aplicación iOS

Establezca el ID de la aplicación de AIR para que coincida con el ID de la aplicación creado en Apple iOS Provisioning Portal.

Los ID de las aplicaciones de iOS contienen un ID de raíz del paquete seguido de un identificador del paquete. El ID de raíz del paquete es una cadena de caracteres, por ejemplo 5RM86Z4DJM, que Apple asigna al ID de aplicación. El identificador del paquete contiene un nombre de estilo de dominio inverso que puede escoger. El identificador del paquete puede terminar con un asterisco (*), lo que indica que se trata de un ID de aplicación comodín. Si el identificador del paquete termina con un carácter comodín, este se puede reemplazar con cualquier cadena válida.

Por ejemplo:

  • Si el ID de la aplicación de Apple es 5RM86Z4DJM.com.example.helloWorld , se debe usar com.example.helloWorld en el descriptor de la aplicación.

  • Si su ID de aplicación de Apple es 96LPVWEASL.com.example.* (ID de la aplicación comodín), se puede utilizar com.example.helloWorld , or com.example.anotherApp o algún otro ID que comience con com.example .

  • Finalmente, si el ID de la aplicación de Apple es solo la raíz del paquete y un comodín como, por ejemplo: 38JE93KJL.* , se puede emplear cualquier ID de la aplicación en AIR.

Cuando especifique el ID de aplicación, omita la parte del ID de raíz del paquete en el ID de aplicación.

Versión de la aplicación

En AIR 2.5 y posterior, especifique la versión de la aplicación en el elemento versionNumber . El elemento version ya no puede volver a utilizarse. Cuando se especifica un valor para versionNumber , se debe utilizar una secuencia de hasta tres nombres separados por puntos; por ejemplo, “0.1.2”. Cada segmento del número de versión puede tener hasta tres dígitos. (Es decir, “999.999.999” es el mayor número de versión permitido.) No es necesario incluir los tres segmentos en el número; “1” y “1.0” son también números de la versión legal.

También se puede especificar una etiqueta para la versión utilizando el elemento versionLabel . Cuando se añade una etiqueta de versión, se muestra en lugar del número de versión en estos lugares como cuadros de diálogo del instalador de aplicaciones de Android. Se debe especificar una etiqueta de la versión para las aplicaciones que se distribuyen utilizando Android Market. Si no se especifica ningún valor versionLabel en el descriptor de la aplicación de AIR, el valor versionNumber se asigna al campo de etiqueta de la versión de Android.

<!-- AIR 2.5 and later --> 
                            <versionNumber>1.23.7<versionNumber> 
                            <versionLabel>1.23 Beta 7</versionLabel>

En Android, versionNumber de AIR se traduce en el entero de Android versionCode con la fórmula: a*1000000 + b*1000 + c , siendo a, b y c componentes del número de versión de AIR: a.b.c .

Archivo SWF de la aplicación principal

Especifique el archivo SWF de la aplicación principal en el elemento secundario content del elemento initialWindow . Cuando se centre en dispositivos en el perfil móvil, se debe utilizar un archivo SWF (las aplicaciones basadas en HTML no se admiten).

<initialWindow> 
                            <content>MyApplication.swf</content> 
                            </initialWindow>

El archivo se debe incluir en el paquete de AIR (utilizando ADT o su IDE). Simplemente hacer referencia al nombre en el descriptor de la aplicación no hace que el archivo se incluya en el paquete automáticamente.

Propiedades de la pantalla principal

Diversos elementos secundarios del elemento initialWindow controlan el comportamiento y la apariencia inicial de la pantalla de la aplicación principal.

  • aspectRatio : especifica si la aplicación debe visualizar inicialmente el contenido en formato vertical ( portrait ) (mayor altura que anchura), en formato horizontal ( landscape ) (menor altura que anchura) o en cualquier formato ( any ) (el escenario se orienta automáticamente en todas las orientaciones).

    <aspectRatio>landscape</aspectRatio>
  • autoOrients : especifica si el escenario debe cambiar automáticamente la orientación conforme el usuario gira el dispositivo o realiza otro gesto relacionado con la orientación como, por ejemplo, apertura o cierre de un teclado deslizante. Si el valor es false (predeterminado), el escenario no cambiará la orientación con el dispositivo.

    <autoOrients>true</autoOrients>
  • depthAndStencil : especifica el uso del búfer de esténcil o de profundidad. Normalmente estos búferes se utilizan al trabajar con contenido en 3D.

    <depthAndStencil>true</depthAndStencil>
  • fullScreen : especifica si la aplicación debe abarcar toda la pantalla del dispositivo, o bien, compartir la pantalla con el fondo cromático del sistema operativo normal como, por ejemplo, una barra de estado del sistema.

    <fullScreen>true</fullScreen>
  • renderMode : especifica si el motor de ejecución debe procesar la aplicación con la unidad de procesamiento de gráficos (GPU) o la unidad de procesamiento central principal (CPU). En general, el procesamiento con GPU aumentará la velocidad del proceso, pero algunas funciones, como determinados modos de fusión y filtros de PixelBender, no están disponibles en este modo. Asimismo, diferente dispositivos y controladores de dispositivo cuentan con limitaciones y capacidades de GPU que varían. Siempre se debe probar la aplicación en una amplia variedad de dispositivos, especialmente cuando se utilice el modo de GPU.

    Puede establecer el modo de procesamiento como gpu , cpu , direct o auto . El valor predeterminado es auto , que actualmente vuelve al modo de cpu.

    Nota: para poder aprovechar la aceleración de GPU del contenido de Flash con plataformas de AIR para móviles, Adobe recomienda utilizar renderMode="direct" (es decir, Stage3D) en vez de renderMode="gpu". Adobe oficialmente admite y recomienda las siguientes arquitecturas basadas en Stage3D: Starling (2D) y Away3D (3D). Para obtener más información sobre Stage3D y Starling/Away3D, consulte http://gaming.adobe.com/getstarted/ .
    <renderMode>direct</renderMode>
    Nota: No se puede utilizar renderMode=”direct” para aplicaciones ejecutadas en segundo plano.

    Entre las limitaciones del modo GPU se encuentran:

    • La arquitectura de Flex no admite el modo de procesamiento de GPU.

    • No se admite el uso de filtros

    • No se admiten los rellenos y fusiones de PixelBender.

    • No se admiten los siguientes modos de mezcla: capa, alfa, borrado, luz fuerte, aclarar y oscurecer.

    • No se recomienda el uso del modo de procesamiento con GPU en una aplicación que reproduce vídeo.

    • En el modo de procesamiento con GPU, los campos de texto no se reubican adecuadamente en una posición visible cuando se abre el teclado virtual. Para garantizar que el campo de texto pueda verse mientras que el usuario introduce el texto, utilice la propiedad softKeyboardRect de los eventos de teclado de pantalla y escenario para mover el campo de texto al área visible.

    • Si un objeto de visualización no se puede representar mediante la GPU, no se mostrará. Por ejemplo, si se aplica un filtro a un objeto de visualización, el objeto no se mostrará.

    Nota: la implementación la GPU para iOS en AIR 2.6+ es muy distinta de la implementación que se usaba anteriormente en la versión AIR 2.0. Se aplican diferentes consideraciones de optimización.

Perfiles admitidos

El elemento supportedProfiles se puede añadir para especificar qué perfiles del dispositivo admite la aplicación. Utilice el perfil mobileDevice para dispositivos móviles. Cuando se ejecuta una aplicación con Adobe Debug Launcher (ADL), ADL utiliza el primer perfil en la lista como perfil activo. También se puede emplear el indicador -profile al ejecutar ADL para seleccionar un perfil concreto en la lista admitida. Si la aplicación se ejecuta en todos los perfiles, el elemento supportedProfiles se puede excluir. ADL utiliza el perfil de escritorio como perfil activo predeterminado en este caso.

Para especificar que la aplicación admite los perfiles de escritorio y dispositivo móvil y que normalmente se desea probar la aplicación en el perfil móvil, añada el siguiente elemento:

<supportedProfiles>mobileDevice desktop</supportedProfiles>

Extensiones nativas necesarias

Las aplicaciones que admiten el perfil mobileDevice pueden utilizar extensiones nativas.

Declare todas las extensiones nativas que la aplicación de AIR utiliza en el descriptor de la aplicación. El siguiente ejemplo ilustra la sintaxis para especificar dos extensiones nativas necesarias:

<extensions> 
                            <extensionID>com.example.extendedFeature</extensionID> 
                            <extensionID>com.example.anotherFeature</extensionID> 
                            </extensions>

El elemento extensionID tiene el mismo valor que id en el archivo descriptor de la extensión. El archivo descriptor de la extensión es un archivo XML denominado extension.xml. Se empaqueta en el archivo ANE que se recibe del desarrollador de extensiones nativas.

Comportamiento del teclado virtual

Establezca el elemento softKeyboardBehavior en none para poder deshabilitar el comportamiento de cambio de tamaño y desplazamiento automáticos que utiliza el motor de ejecución para garantizar que el campo de introducción de texto seleccionado se puede ver cuando se activa el teclado virtual. Si se desactiva el comportamiento automático, la aplicación debe asegurar que el área de introducción de texto y otro contenido relevante esté visible una vez mostrado el teclado. Puede utilizar la propiedad softKeyboardRect del escenario junto con SoftKeyboardEvent para detectar el momento en que el teclado se abre y determinar el área que se oscurece.

Para activar el comportamiento automático, establezca el valor del elemento en pan :

<softKeyboardBehavior>pan</softKeyboardBehavior>
Debido a que pan es el valor predeterminado, con la omisión del elemento softKeyboardBehavior también se activa el comportamiento del teclado automático.
Nota: cuando también se emplea la representación con GPU, el comportamiento de desplazamiento no se admite.