Configurações comuns

Várias configurações de descritor de aplicativo são importantes para todos os aplicativos de dispositivo móvel.

Versão de runtime exigida pelo AIR

Especifique a versão do runtime do AIR exigido pelo seu aplicativo usando o namespace do arquivo do descritor do aplicativo.

O namespace, atribuído no elemento do aplicativo , determina, em grande parte, que recursos seu aplicativo pode usar. Por exemplo, se seu aplicativo usa o namespace AIR 2.7, e o usuário tem alguma versão futura instalada, o aplicativo ainda verá o comportamento do AIR 2.7 (mesmo que o comportamento for alterado na versão futura). Somente quando mudar o namespace e publicar uma atualização sua aplicação terá acesso ao novo comportamento e recursos. As correções de segurança são uma importante exceção a essa regra.

Em dispositivos que usam um runtime separado do aplicativo, como o Android no AIR 3.6 e posteriores, será solicitado ao usuário que instale ou atualize AIR se não tiver a versão necessária. Em dispositivos que incorporam o runtime, como o iPhone, esta situação não ocorre (desde que a versão necessária seja fornecida com o aplicativo em primeiro lugar).

Nota: (AIR 3.7 e superiores) Como padrão, o ADT empacota o runtime com aplicativos Android.

Especifique o namespace usando o atributo xmlns do elemento do aplicativo raiz. Os namespaces a seguir devem ser usados para aplicativos móveis (dependendo da plataforma móvel visada):

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: O suporte para dispositivos iOS 3 é fornecido pelo Packager para iPhone SDK, com base nos AIR 2.0 SDK. Para obter informações sobre a criação de aplicativos AIR for iOS 3, consulte Criação de aplicativos para o iPhone . O AIR 2.6 SDK (e posteriores) suporta iOS 4 e posteriores nos dispositivos iPhone 3Gs, iPhone 4 e iPad.

Identidade do aplicativo

Diversas configurações devem ser exclusivas para cada aplicativo que você publicar. Estas incluem o ID, o nome, e o nome de arquivo.

IDs do aplicativo Android

No Android, o ID é convertida para o nome do pacote do Android prefixando "air". para o ID do AIR. Dessa forma, se o ID do AIR for com.example.MyApp , o nome do pacote do Android é air.com.example.MyApp.

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

Além disso, se o ID não for um nome de pacote válido no sistema operacional Android, é convertido para um nome válido. Caracteres com hífen são alterados para dígitos de sublinhado e de entrelinha em qualquer componente de ID que seja precedida por um "A" maiúsculo. Por exemplo, o ID 3-goats.1-boat é transformada para o nome do pacote air.A3_goats.A1_boat .

Nota: O prefixo adicionado à ID do aplicativo pode ser usado para identificar os aplicativos AIR no Android Market. Se você não deseja que o aplicativo seja identificado como AIR devido ao prefixo, deve desempacotar o arquivo APK, mudar o ID do aplicativo, e compactá-lo novamente como descrito em Emissor de análise do aplicativo do AIR for Android .

IDs do aplicativo iOS

Defina o ID do aplicativo do AIR para corresponder com o ID do aplicativo que você criou no Portal de aprovisionamento Apple iOS.

As IDs do aplicativo iOS contêm um ID da distribuição do conjunto seguida por um identificador do conjunto. O ID da distribuição de conjunto é uma sequência de caracteres como, por exemplo, 5RM86Z4DJM, que a Apple atribui à ID de aplicativo. O identificador de conjunto contém o nome em estilo de domínio reverso selecionado. Um identificador de conjunto pode terminar em um asterisco (*), indicando um ID de aplicativo curinga. Se o identificador de conjunto terminar com caractere curinga, você pode substituir este por qualquer sequência válida.

Por exemplo:

  • Se o ID do aplicativo Apple for 5RM86Z4DJM.com.example.helloWorld , você deve usar com.example.helloWorld no descritor do aplicativo.

  • Se o ID do aplicativo Apple for 96LPVWEASL.com.example.* (um ID de aplicativo curinga), você pode usar com.example.helloWorld , com.example.anotherApp , ou algum outro ID que inicie com com.example .

  • Finalmente, se o ID de aplicativo Apple for apenas o ID de distribuição de conjunto e um curinga, como: 38JE93KJL.* , você pode usar qualquer ID de aplicativo em AIR.

Ao especificar o ID do aplicativo, não inclua o ID de distribuição de conjunto do ID de aplicativo.

Versão do aplicativo

No AIR 2.5 e posterior, especifique a versão do aplicativo no elemento versionNumber . O elemento version não pode mais ser usado. Ao especificar um valor para versionNumber, você deve usar uma sequência de até três números separados por pontos, como: "0.1.2". Cada segmento do número de versão pode ter até três dígitos. (Em outras palavras, "999.999.999" é o maior número de versão autorizada.) Você não precisa incluir todos os três segmentos do número; "1" e "1.0" são números de versão legal.

Você também pode especificar um rótulo para a versão com o elemento versionLabel . Ao adicionar um rótulo de versão este é exibido em vez do número da versão em lugares como a tela de informações dos aplicativos Android. Uma etiqueta de versão deve ser especificada para aplicativos distribuídos através do Android Market. Se você não especificar um valor versionLabel no descritor de aplicativo do AIR, o valor versionNumber é atribuído ao campo de rótulo da versão Android.

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

No Android, o AIR versionNumber é traduzido para o Android inteiro versionCode usando a fórmula: a*1000000 + b*1000 + c , onde a, b, e c são os componentes do número da versão do AIR: a.b.c .

SWF do aplicativo principal

Especifique o arquivo SWF do aplicativo principal no filho content do elemento initalWindow . Ao direcionar dispositivos no perfil móvel, você deve usar um arquivo SWF (aplicativos com base HTML não estão disponíveis).

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

Você deve incluir o arquivo no pacote AIR (usando ADT ou sua IDE). Simplesmente fazer referência do nome no descritor do aplicativo não faz com que o arquivo seja incluído no pacote de maneira automática.

Propriedades da tela principal

Vários elementos filho do elemento initialWindow controlam a aparência inicial e o comportamento da tela principal do aplicativo.

  • aspectRatio — especifica se o aplicativo deverá ser exibido inicialmente em um formato retrato (altura maior do que largura), um formato paisagem (altura menor do que largura) ou qualquer formato (o palco orienta automaticamente em todas as orientações).

    <aspectRatio>landscape</aspectRatio>
  • autoOrients — Especifica se o palco deve mudar automaticamente a orientação quando o usuário gira o aparelho ou executa outro gesto relacionado à orientação, como abertura ou fechamento de um teclado deslizante. Se false , que é o padrão, o palco não mudará a orientação com o dispositivo.

    <autoOrients>true</autoOrients>
  • depthAndStencil — Especifica o uso do buffer de profundidade ou de estêncil. Normalmente, você usa esses buffers ao trabalhar com conteúdo 3D.

    <depthAndStencil>true</depthAndStencil>
  • fullScreen — Especifica se o aplicativo deve tomar a tela completa do dispositivo, ou se deve compartilhar a tela com o cromo, como uma barra de status do sistema.

    <fullScreen>true</fullScreen>
  • renderMode — Especifica se o runtime deve renderizar o aplicativo com a unidade de processamento gráfico (GPU) ou a unidade central de processamento (CPU) principal. Em geral, a renderização da GPU aumentará a velocidade de renderização, mas alguns recursos, como certos modos de mesclagem e filtros PixelBender, não estão disponíveis no modo de GPU. Além disso, diversos dispositivos e drivers de dispositivo diferentes têm diferentes capacidades e limitações de GPU. Você sempre deve testar seu aplicativo em uma ampla variedade de dispositivos possíveis, especialmente quando usando o modo de GPU.

    Você pode definir o modo de renderização como gpu , cpu , direct ou auto . O valor padrão é auto , que no momento volta para o modo de cpu.

    Nota: Para aproveitar a aceleração GPU do conteúdo Flash com o AIR para plataformas móveis, o Adobe recomenda que você use renderMode="direct", o Stage3D e não o renderMode="gpu". A Adobe oferece suporte e recomenda oficialmente as seguintes estruturas baseadas em Stage3D: Starling (2D) e Away3D (3D). Para obter mais detalhes do Stage3D e do Starling/Away3D (3D), consulte http://gaming.adobe.com/getstarted .
    <renderMode>direct</renderMode>
    Nota: Não é possível usar renderMode="direct" para aplicativos executados em segundo plano.

    As limitações do modo de GPU são as seguintes:

    • A estrutura do Flex não suporta o modo de renderização de GPU.

    • Não existe suporte para filtros

    • Mesclagens PixelBender e preenchimentos não estão disponíveis

    • Não há suporte para os seguintes modos de mistura: camada, alfa, apagar, sobrepor, realçar, clarear e escurecer

    • Não é recomendado o uso do modo de renderização pela GPU em um aplicativo que reproduz vídeo.

    • No modo de renderização pela GPU, os campos de texto não são devidamente movidos para um local visível quando o teclado virtual é aberto. Para assegurar que o campo de texto seja visível enquanto o usuário insere texto, use a propriedade softKeyboardRect do palco e os eventos de teclado virtual para mover o campo de texto para a área visível.

    • Se um objeto de exibição não puder ser renderizado pela GPU, ele não é exibido. Por exemplo, se um filtro for aplicado para um objeto de exibição, este não é exibido.

    Nota: A implementação de GPU para iOS no AIR 2.6+ é muito diferente da usada na versão AIR 2.0 anterior. Diferentes considerações de otimização aplicáveis.

Perfis disponíveis

Você pode adicionar o elemento supportedProfiles para especificar com quais perfis de dispositivo seu aplicativo é compatível. Use o perfil mobileDevice para dispositivos móveis. Ao executar o aplicativo com o Adobe Debug Launcher (ADL), este usa o primeiro perfil da lista como o perfil ativo. Você também pode usar o sinalizador -profile ao executar o ADL para selecionar um perfil específico na lista de suporte. Se o aplicativo for executado em todos os perfis, você pode excluir o elemento supportedProfiles . O ADL usa o perfil desktop como o perfil padrão ativo neste caso.

Para especificar que o aplicativo é compatível tanto com os perfis desktop quanto com o dispositivo móvel, e que normalmente você quer testar o aplicativo no perfil móvel, adicione o seguinte elemento:

<supportedProfiles>mobileDevice desktop</supportedProfiles>

Extensões nativas necessárias

Os aplicativos que suportam o perfil mobileDevice podem usar extensões nativas.

Indique todas as extensões nativas que o aplicativo do AIR utiliza no descritor do aplicativo. O seguinte exemplo ilustra a sintaxe para especificar duas extensões nativas necessárias:

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

O elemento extensionID tem o mesmo valor que o elemento id no arquivo descritor de extensão. O arquivo descritor da extensão é um arquivo XML chamado extension.xml. Ela está compactada no arquivo ANE recebido do desenvolvedor da extensão nativa.

Comportamento do teclado virtual

Defina o elemento softKeyboardBehavior como none para desativar o comportamento de deslocamento e redimensionamento automático que o runtime usa para verificar se o campo de entrada de texto está centrado na exibição quando o teclado virtual é gerado. Se você desativar o comportamento automático, seu aplicativo fica responsável por conferir se a área de entrada de texto ou outros conteúdos relevantes estão visíveis após o teclado ser ativado. Você pode usar a propriedade softKeyboardRect do palco em conjunto com SoftKeyboardEvent para detectar quando o teclado é aberto e determinar a área que fica oculta.

Para ativar o comportamento automático defina o valor do elemento para pan :

<softKeyboardBehavior>pan</softKeyboardBehavior>
Visto que pan é o valor padrão, a omissão do elemento softKeyboardBehavior também ativa o comportamento automático do teclado.
Nota: Ao usar também renderização pela GPU o comportamento de deslocamento não é compatível.