Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Avisos legais
Avisos legais
Para ver os avisos legais, consulte http://help.adobe.com/pt_BR/legalnotices/index.html.
iii
Contedo
Captulo 1: Sobre o Adobe AIR Captulo 2: Instalao do Adobe AIR Instalao do Adobe AIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Remoo do Adobe AIR Atualizaes do Adobe AIR ............................................................................................... 5 ................................................................ 5 ............................................................................................ 6 Instalao e execuo de aplicativos de amostra do AIR
Captulo 3: Trabalhando com APIs do AIR Classes do ActionScript 3.0 especficas do AIR Componentes Flex especficos do AIR
.......................................................................... 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Captulo 4: Ferramentas da Plataforma Adobe Flash para desenvolvimento do AIR Instalao do SDK do AIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Definio do SDK do Flex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Configurao de SDKs externos
Captulo 5: Criando seu primeiro aplicativo do AIR Criando seu primeiro aplicativo desktop Flex AIR no Flash Builder
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Criao do seu primeiro aplicativo do AIR desktop usando o Flash Professional Crie seu primeiro aplicativo do AIR for Android no Flash Professional Criao de seu primeiro aplicativo do AIR for iOS
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Criao do primeiro aplicativo do AIR baseado em HTML com o Dreamweaver Criao do seu primeiro aplicativo do AIR baseado em HTML com o SDK do AIR Criando seu primeiro aplicativo desktop do AIR com o Flex SDK Criando seu primeiro aplicativo do AIR for Android com o Flex SDK
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Captulo 6: Desenvolvendo aplicativos AIR para desktop Fluxo de trabalho para desenvolver um aplicativo do AIR para desktop Configurao de propriedades do aplicativo desktop Depurao de um aplicativo do AIR desktop Compactao de um instalador desktop nativo
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Compactao de um conjunto de runtime cativo para computadores pessoais Distribuio de pacotes do AIR para computadores desktop
Captulo 7: Desenvolvendo aplicativos AIR para dispositivos mveis Configurao do ambiente de desenvolvimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Consideraes a respeito do design do aplicativo mvel Configurao de propriedades do aplicativo mvel Compactao de um aplicativo do AIR mvel Depurao de um aplicativo do AIR mvel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 Fluxo de trabalho para a criao de aplicativos AIR para dispositivos mveis
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
iv
Instalao de aplicativos AIR AIRI nos dispositivos mveis Atualizando aplicativos AIR mveis Use as notificaes por push
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Captulo 8: Desenvolvendo aplicativos AIR para aparelhos de televiso Recursos do AIR for TVs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 Consideraes a respeito do design do aplicativo para AIR for TV Fluxo de trabalho para desenvolver um aplicativo do AIR for TV Propriedades do descritor do aplicativo AIR for TV Compactao de um aplicativo do AIR for TV Depurao de aplicativos AIR for TV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Captulo 9: Como utilizar extenses nativas para Adobe AIR Arquivos de Extenso Nativa do AIR (ANE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 Extenses nativas em contraste com a classe ActionScript NativeProcess Dispositivos suportados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 Extenses nativas em contraste com as bibliotecas da classe ActionScript (arquivos SWC) Perfis de dispositivo suportados
Indicao da extenso no arquivo de indexao do aplicativo Compactando um aplicativo que utiliza extenses nativas
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Captulo 10: Compiladores ActionScript Sobre as ferramentas de linha de comando do AIR no Flex SDK Configurao do compilador
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Captulo 11: AIR Debug Launcher (ADL) Uso do ADL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 Exemplos de ADL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 Cdigos de erro e sada do ADL
Captulo 12: AIR Developer Tool (ADT) Comandos do ADT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 Conjuntos de opes do ADT Mensagens de erro do ADT Variveis de ambiente ADT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
Captulo 13: Assinatura de aplicativos AIR Assinatura digital de um arquivo AIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 Criao de um arquivo intermedirio do AIR no assinado com o ADT Assinatura de um arquivo intermedirio do AIR com o ADT Assinatura de uma verso atualizada de um aplicativo do AIR Criao de um certificado autoassinado com o ADT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
Captulo 14: Arquivos descritores do aplicativo do AIR Mudanas no descritor do aplicativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 A estrutura do arquivo do descritor do aplicativo Elementos descritores do aplicativo do AIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Captulo 15: Perfis de dispositivo Como restringir perfis de destino no arquivo de descrio do aplicativo Capacidades de perfis diferentes
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
Captulo 16: API no navegador AIR.SWF Personalizao da instalao contnua badge.swf Carregar o arquivo air.swf
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
Usando o arquivo badge.swf para instalar um aplicativo do AIR Verificar se o runtime est instalado
Verificar por uma pgina da Web se um aplicativo do AIR est instalado Instalao de um aplicativo do AIR do navegador Inicializao de um aplicativo do AIR instalado do navegador
Captulo 17: Atualizao de aplicativos do AIR Sobre atualizao de aplicativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 Apresentao de uma interface de usurio de atualizao do aplicativo personalizado Download de um arquivo AIR no computador do usurio Uso da estrutura de atualizao Verificar se um aplicativo est sendo executado pela primeira vez . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
Captulo 18: Visualizao do cdigo-fonte Carregamento, configurao e abertura do Visualizador de Cdigo-Fonte Interface do usurio do Visualizador do Cdigo-Fonte
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
Captulo 19: Depurao com o AIR HTML Introspector Sobre o AIR Introspector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282 Carregamento do cdigo do AIR Introspector Inspeo de um objeto na guia Console Configurao do AIR Introspector Interface do AIR Introspector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
Uso do AIR Introspector com contedo em uma caixa de proteo no do aplicativo Captulo 20: Localizao de aplicativos AIR Localizao do nome e da descrio do aplicativo no instalador do aplicativo do AIR Localizao de contedo HTML com a estrutura de localizao de HTML do AIR Captulo 21: Variveis de ambiente do caminho Configurao do PATH no Linux e Mac OS usando o shell Bash Configurao do caminho no Windows
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Aplicativos desenvolvidos para execuo do AIR atravs de vrios sistemas operacionais sem nenhum trabalho
adicional feito por voc. O runtime assegura apresentaes e interaes previsveis e consistentes entre todos os sistemas operacionais com suporte do AIR.
Os aplicativos podem ser criados mais rapidamente, permitindo que voc potencialize tecnologias da Web e
padres de projeto existentes. Voc pode estender aplicativos com base na Web para a rea de trabalho sem aprender tecnologias tradicionais para desenvolvimento de rea de trabalho nem a complexidade do cdigo nativo.
O desenvolvimento do aplicativo mais fcil do que o uso de linguagens de nvel inferior, como C e C++. Voc no
precisa gerenciar APIs complexas de nvel inferior, especficas de cada sistema operacional. Ao desenvolver aplicativos para o AIR, voc pode potencializar um enorme conjunto de estruturas e APIs:
APIs especficas do AIR fornecidas pelo runtime e pela estrutura AIR APIs do ActionScript usadas em arquivos SWF e na estrutura Flex (bem como outras bibliotecas e estruturas
baseadas no ActionScript)
HTML, CSS e JavaScript Maioria das estruturas Ajax As extenses nativas do Adobe AIR fornecem APIs do ActionScript que permitem o acesso funcionalidade
especfica da plataforma programada no cdigo nativo. As extenses nativas tambm podero permitir o acesso ao cdigo nativo legado e ao cdigo nativo que possibilita um melhor desempenho.
O AIR altera significativamente o modo como os aplicativos podem ser criados, implantados e experimentados. Voc obtm mais controle criativo e pode estender os aplicativos baseados em Flash, Flex, HTML e Ajax para a rea de trabalho, dispositivos mveis e televises. Para obter mais informaes sobre o que est includo em cada nova verso do AIR, consulte as Notas de verso do Adobe AIR (http://www.adobe.com/go/learn_air_relnotes_br).
Instalando o runtime separadamente (sem instalar tambm um aplicativo do AIR) Ao instalar um aplicativo do AIR por meio de um badge de instalao de uma pgina web (tambm ser solicitada
a instalao do runtime)
Ao criar um instalador customizado que instale tanto o aplicativo quanto o runtime. necessrio obter uma
aprovao do Adobe para distribuir o runtime do AIR dessa maneira. Voc poder solicitar uma aprovao na pgina Licena do runtime do Adobe. Observe que o Adobe no fornece ferramentas para criar tal instalador. No entanto, muitos kits de ferramenta de instalador terceirizado esto disponveis.
Ao instalar um aplicativo do AIR que cria um conjunto do AIR como um runtime cativo. Um runtime cativo
usado somente pelo aplicativo que cria o conjunto. Ele no usado para executar outros aplicativos do AIR. Criar um conjunto do runtime uma opo no Mac e no Windows. No iOS, todos os aplicativos incluem um runtime em conjunto. A partir do AIR 3.7, todos os aplicativos Android incluem um runtime em conjunto por padro (embora voc possa usar um runtime separado).
Configurando um ambiente de desenvolvimento AIR como o AIR SDK, Adobe Flash Builder, ou o Adobe Flex
SDK (que inclui as ferramentas de desenvolvimento de linha de comando do AIR). O runtime includo no SDK somente utilizado para a depurao de aplicativos no utilizado para executar aplicativos AIR instalados. Os requisitos do sistema para instalar o AIR e executar aplicativos do AIR so detalhados aqui: Adobe AIR: Requisitos do sistema (http://www.adobe.com/br/products/air/systemreqs/). Tanto o programa de instalao do runtime quanto o programa de instalao do aplicativo do AIR criam arquivos de registro quando instalam, atualizam ou removem aplicativos AIR ou o prprio runtime do AIR. Voc pode consultar estes arquivos de registro para ajudar a determinar a causa de problemas de instalao. Consulte Registros de instalao.
Instalao do runtime em um computador com Mac 1 Faa download do arquivo de instalao do runtime em http://get.adobe.com/air.
2 Clique duas vezes no arquivo de instalao do runtime. 3 Na janela de instalao, siga os avisos para concluir a instalao. 4 Se o instalador exibir a janela Autenticao, insira seu nome de usurio e sua senha do Mac OS.
Instalao do runtime em um computador com Linux Nota: Atualmente, o AIR 2.7 e verses posteriores no so compatveis com Linux. Os aplicativos do AIR implementados para Linux devero continuar usando o AIR 2.6 SDK. Utilizando o instalador binrio:
1 Localize o arquivo binrio de instalao em http://kb2.adobe.com/cps/853/cpsid_85304.html e faa o download. 2 Defina as permisses de arquivo para que seja possvel executar o aplicativo instalador. A partir da linha de
Algumas verses do Linux permitem definir as permisses de arquivo na caixa de dilogo Propriedades aberta por meio de um menu de contexto.
3 Execute o instalador da linha de comando ou clicando duas vezes no arquivo de instalao do runtime. 4 Na janela de instalao, siga os avisos para concluir a instalao.
O Adobe AIR est instalado como pacote nativo. Ou seja, como rpm e uma distribuio com base em rpm e deb em uma distribuio Debian. Atualmente o AIR no possui suporte a outro tipo de formato de pacote. Utilizando os instaladores de pacote:
1 Localize o arquivo de pacote do AIR em http://kb2.adobe.com/cps/853/cpsid_85304.html. Faa download do
Ou, caso esteja atualizando uma verso existente (AIR 1.5.3 ou posterior):
sudo rpm -U <path to the package>/adobeair-2.0.0-xxxxx.i386.rpm
A instalao de aplicativos AIR 2 e AIR necessitam que voc possua privilgios administrativos em seu computador. O Adobe AIR instalado no caminho a seguir: /opt/Adobe AIR/Versions/1.0 O AIR registra o mime-type "application/vnd.adobe.air-application-installer-package+zip", significando que arquivos .air pertencem a esse mime-type e so registraddos com o runtime AIR. Instale o runtime em um dispositivo Android Voc pode instalar a verso mais recente do runtime AIR a partir do Android Market. Voc pode instalar verses de desenvolvimento do runtime AIR a partir de um link em um site ou usando o comando ADT -installRuntime. Somente uma verso do runtime AIR pode ser instalado em um tempo; voc no pode ter uma nova verso e uma verso de desenvolvimento instaladas. Consulte Comando installRuntime do ADT na pgina 178 para obter mais informaes. Instale o runtime em um dispositivo iOS O cdigo do runtime AIR necessrio fornecido com cada aplicativo criado para os dispositivos iPhone, iTouch e iPad. Voc no precisa instalar um componente de runtime separado.
Remoo do runtime em um computador com Mac Clique duas vezes em Desinstalador do Adobe AIR, localizado na pasta /Aplicativos/Utilitrios. Remoo do runtime em um computador com Linux Execute um dos seguintes procedimentos:
Selecione o comando Adobe AIR Uninstaller no menu Aplicativos. Execute o binrio instalador do AIR com a opo -uninstall. Remova os pacotes do AIR (adobeair e adobecerts) com o gerenciador de pacotes.
Remova o runtime de um dispositivo Android 1 Abra o aplicativo Configuraes do dispositivo.
2 Toque a entrada do Adobe AIR em Aplicativos > Gerenciar aplicativos. 3 Toque o boto Desinstalar.
Voc tambm pode usar o comando ADT -uninstallRuntime. Consulte Comando uninstallRuntime do ADT na pgina 179 para obter mais informaes. Remoo de um runtime em conjunto Para remover um runtime em conjunto, necessrio remover o aplicativo com o qual ele est instalado. Observe que os tempos de execuo cativos so usados so mente para executar o aplicativo de instalao.
esto disponveis.
2 Para fazer download e executar o aplicativo de amostra, clique no boto Instalar agora do aplicativo de amostra.
No Windows, clicando duas vezes no cone do aplicativo na rea de trabalho, ou selecionando-o no menu Iniciar
do Windows.
No Mac OS, clicando duas vezes no cone do aplicativo, que est instalado na pasta Aplicativos do diretrio do
usurio (por exemplo, no Macintosh, HD/Users/JoeUser/Applications/), por padro. Nota: Verifique as notas de verso do AIR para atualizaes dessas instrues, que esto localizadas aqui: http://www.adobe.com/go/learn_air_relnotes_br.
Guia do desenvolvedor do ActionScript 3.0 Referncia do ActionScript 3.0 para Adobe Flash Platform
Desenvolvedores de HTML Se voc estiver criando aplicativos AIR com base em HTML, as APIs disponveis em JavaScript via arquivo AIRAliases.js (consulte Acessando classes de API do AIR a partir do JavaScript) esto documentadas nos seguintes livros:
HTML Developer's Guide for Adobe AIR Adobe AIR API Reference for HTML Developers
Classe ARecord AAAARecord ApplicationUpdater ApplicationUpdaterUI AudioPlaybackMode AutoCapitalize BrowserInvokeEvent CameraPosition CameraRoll CameraRollBrowseOptions
Pacote ActionScript 3.0 flash.net.dns flash.net.dns air.update air.update flash.media flash.text flash.events flash.media flash.media flash.media
Includo na verso AIR 2.0 2.0 1.5 1.5 3.0 3.0 1.0 3.0 2.0 3.0
Classe CameraUI CertificateStatus CompressionAlgorithm DatagramSocket DatagramSocketDataEvent DNSResolver DatagramSocketDataEvent DockIcon DownloadErrorEvent DRMAuthenticateEvent DRMDeviceGroup DRMDeviceGroupErrorEvent DRMDeviceGroupEvent DRMManagerError EncryptedLocalStore ExtensionContext File FileListEvent FileMode FileStream FocusDirection GameInput GameInputControl GameInputControlType
Pacote ActionScript 3.0 flash.media flash.security flash.utils flash.net flash.events flash.net.dns flash.events flash.desktop air.update.events flash.events flash.net.drm flash.net.drm flash.net.drm flash.errors flash.data flash.external flash.filesystem flash.events flash.filesystem flash.filesystem flash.display flash.ui flash.ui flash.ui
Includo na verso AIR 2.5 2.0 1.0 2.0 2.0 2.0 2.0 1.0 1.5 1.0 3.0 3.0 3.0 1.5 1.0 2.5 1.0 1.0 1.0 1.0 1.0 3.0 3.0 3.6 e anteriores; desativado a partir da verso 3.7 3.0 3.0 3.6 e anteriores; desativado a partir da verso 3.7 3.6 e anteriores; desativado a partir da verso 3.7 2.0 2.0 1.0 1.0 1.0
GameInputHand
flash.ui
Classe HTMLPDFCapability HTMLSWFCapabiltiy HTMLUncaughtScriptExceptionEvent HTMLWindowCreateOptions Icon IFilePromise ImageDecodingPolicy InteractiveIcon InterfaceAddress InvokeEvent InvokeEventReason IPVersion IURIDereferencer LocationChangeEvent MediaEvent MediaPromise MediaType MXRecord NativeApplication NativeDragActions NativeDragEvent NativeDragManager NativeDragOptions NativeMenu NativeMenuItem NativeProcess NativeProcessExitEvent NativeProcessStartupInfo NativeWindow NativeWindowBoundsEvent NativeWindowDisplayState NativeWindowDisplayStateEvent NativeWindowInitOptions NativeWindowRenderMode
Pacote ActionScript 3.0 flash.html flash.html flash.events flash.html flash.desktop flash.desktop flash.system flash.desktop flash.net flash.events flash.desktop flash.net flash.security flash.events flash.events flash.media flash.media flash.net.dns flash.desktop flash.desktop flash.events flash.desktop flash.desktop flash.display flash.display flash.desktop flash.events flash.desktop flash.display flash.events flash.display flash.events flash.display flash.display
Includo na verso AIR 1.0 2.0 1.0 1.0 1.0 2.0 2.6 1.0 2.0 1.0 1.5.1 2.0 1.0 2.5 2.5 2.5 2.5 2.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 2.0 2.0 2.0 1.0 1.0 1.0 1.0 1.0 3.0
10
Classe NativeWindowResize NativeWindowSystemChrome NativeWindowType NetworkInfo NetworkInterface NotificationType OutputProgressEvent PaperSize PrintMethod PrintUIOptions MXRecord ReferencesValidationSetting ResourceRecord RevocationCheckSettings Screen ScreenMouseEvent SecureSocket SecureSocketMonitor ServerSocket ServerSocketConnectEvent ServiceMonitor SignatureStatus SignerTrustSettings SocketMonitor SoftKeyboardType SQLCollationType SQLColumnNameStyle SQLColumnSchema SQLConnection SQLError SQLErrorEvent SQLErrorOperation SQLEvent SQLIndexSchema
Pacote ActionScript 3.0 flash.display flash.display flash.display flash.net flash.net flash.desktop flash.events flash.printing flash.printing flash.printing flash.net.dns flash.security flash.net.dns flash.security flash.display flash.events flash.net air.net flash.net flash.events air.net flash.security flash.security air.net flash.text flash.data flash.data flash.data flash.data flash.errors flash.events flash.errors flash.events flash.data
Includo na verso AIR 1.0 1.0 1.0 2.0 2.0 1.0 1.0 2.0 2.0 2.0 2.0 1.0 2.0 1.0 1.0 1.0 2.0 2.0 2.0 2.0 1.0 1.0 1.0 1.0 3.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
11
Classe SQLMode SQLResult SQLSchema SQLSchemaResult SQLStatement SQLTableSchema SQLTransactionLockType SQLTriggerSchema SQLUpdateEvent SQLViewSchema SRVRecord StageAspectRatio StageOrientation StageOrientationEvent StageText StageTextInitOptions StageWebView StatusFileUpdateErrorEvent StatusFileUpdateEvent StatusUpdateErrorEvent StatusUpdateEvent StorageVolume StorageVolumeChangeEvent StorageVolumeInfo SystemIdleMode SystemTrayIcon TouchEventIntent UpdateEvent Updater URLFilePromise URLMonitor URLRequestDefaults XMLSignatureValidator
Pacote ActionScript 3.0 flash.data flash.data flash.data flash.data flash.data flash.data flash.data flash.data flash.events flash.data flash.net.dns flash.display flash.display flash.events flash.text flash.text flash.media air.update.events air.update.events air.update.events air.update.events flash.filesystem flash.events flash.filesystem flash.desktop flash.desktop flash.events air.update.events flash.desktop air.desktop air.net flash.net flash.security
Includo na verso AIR 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 2.0 2.0 2.0 2.0 3.0 3.0 2.5 1.5 1.5 1.5 1.5 2.0 2.0 2.0 2.0 1.0 3.0 1.5 1.0 2.0 1.0 1.0 1.0
12
Includo na verso AIR 2.0 1.0 1.0 2.0 1.0 1.0 1.0 1.0 2.0 2.0 1.0 2.0 2.0 2.0 2.0 2.0 2.6 2.6 2.0 2.6 2.6 2.6
BITMAP_FORMAT FILE_LIST_FORMAT
FILE_PROMISE_LIST_FORMAT URL_FORMAT
flash.display
LoaderInfo
childSandboxBridge parentSandboxBridge
Stage
13
Pacote flash.events
Classe Event
Includo na verso AIR 1.0 1.0 2.6 1.0 1.0 1.0 1.0 1.0 1.0 2.0 2.0 2.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
HTTPStatusEvent
KeyboardEvent
commandKey controlKey
14
Pacote flash.net
Classe FileReference
Includo na verso AIR 1.0 1.0 1.0 1.0 1.5 1.5 1.0 1.0
Evento httpResponseStatus
uploadUnencoded()
NetStream
URLRequest
1.0 1.0 1.0 2.0 1.0 1.0 1.0 1.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0
Evento httpResponseStatus
active copies firstPage isColor jobName lastPage maxPixelsPerInch paperArea printableArea printer printers selectPaperSize() showPageSetupDialog() start2() supportsPageSetupDialog terminate()
PrintJobOptions
pixelsPerInch printMethod
15
Pacote flash.system
flash.ui
KeyLocation
D_PAD
A maioria dessas novas propriedades e mtodos esto disponveis apenas para contedo na caixa de proteo de segurana de aplicativos do AIR. No entanto, os novos membros nas classes URLRequest tambm esto disponveis para contedo em execuo em outras caixas de proteo. Os mtodos ByteArray.compress() e ByteArray.uncompress() incluem, cada um, um novo parmetro algorithm, permitindo que voc escolha entre a compactao deflate e zlib. Esse parmetro s est disponvel para contedo em execuo no AIR.
FileEvent FileSystemComboBox FileSystemDataGrid FileSystemEnumerationMode FileSystemHistoryButton FileSystemList FileSystemSizeDisplayMode FileSystemTree FlexNativeMenu HTML Window WindowedApplication WindowedSystemManager
Alm disso, o Flex 4 inclui os seguintes componentes spark do AIR:
Window WindowedApplication
Para mais informaes sobre os componentes AIR Flex, consulte Using the Flex AIR components.
16
Adobe Flash Professional (consulte Publicaes para o AIR) SDKs do Adobe Flex 3.x e 4.x (consulte Definio do SDK do Flex na pgina 18 e AIR Developer Tool (ADT)
na pgina 166)
Adobe Flash Builder (consulte, Desenvolvimento de Aplicativos AIR com o Flash Builder)
Para desenvolvedores em HTML e Ajax:
Adobe AIR SDK (consulte Instalao do SDK do AIR na pgina 16 e AIR Developer Tool (ADT) na pgina 166) Adobe Dreamweaver CS3, CS4, CS5 (consulte AIR Extension para Dreamweaver)
AIR Developer Tool (ADT) na pgina 166. As ferramentas de linha de comando do AIR requerem Java para ser instaladas em seu computador. Voc pode usar a mquina virtual Java a partir do JRE ou do JDK (verso 1.5 ou superior). O Java JRE e o Java JDK esto disponveis em http://java.sun.com/. necessrio pelo menos 2GB de memria de computador para executar a ferramenta ADT. Nota: O Java no necessrio para os usurios finais executarem aplicativos AIR. Para obter uma viso geral sobre a criao de um aplicativo do AIR com o AIR SDK, consulte Criao do seu primeiro aplicativo do AIR baseado em HTML com o SDK do AIR na pgina 31.
O AIR SDK distribudo como um arquivo morto de arquivos padro. Para instalar o AIR, extraia o contedo do
SDK para uma pasta no seu computador (por exemplo: C:\Program Files\Adobe\AIRSDK ou C:\AIRSDK).
As ferramentas ADL e ADT esto contidas na pasta bin no AIR SDK; adicione o caminho para esta pasta a sua
varivel de ambiente PATH.
17
Como instalar o AIR SDK no Mac OS X Faa download do arquivo de instalao do AIR SDK.
O AIR SDK distribudo como um arquivo morto de arquivos padro. Para instalar o AIR, extraia o contedo do
SDK para uma pasta no seu computador (por exemplo: Users/<userName>/Aplicativos/AIRSDK).
As ferramentas ADL e ADT esto contidas na pasta bin no AIR SDK; adicione o caminho para esta pasta a sua
varivel de ambiente PATH. Como instalar o AIR SDK no Linux O SDK est disponvel no formato tbz2.
Para instalar o SDK, crie uma pasta na qual voc deseja descompactar o SDK e, em seguida, use o seguinte comando:
tar -jxvf <path to AIR-SDK.tbz2> Para obter informaes sobre como comear a utilizao das ferramentas AIR SDK, consulte Como criar um aplicativo do AIR usando ferramentas de linha de comando.
Instalao
modelos
18
Voc pode baixar e instalar o Adobe Flash Builder, que fornece ferramentas integradas para criar projetos Adobe
AIR e testar, depurar e empacotar seus aplicativos AIR. Consulte Criando seu primeiro aplicativo desktop Flex AIR no Flash Builder na pgina 19
Voc pode baixar o Adobe Flex SDK e desenvolver aplicativos Flex AIR usando seu editor de texto e as
ferramentas de linha de comando favoritas. Para obter uma viso geral sobre a criao de um aplicativo do AIR com o Flex SDK, consulte Criando seu primeiro aplicativo desktop do AIR com o Flex SDK na pgina 35.
Nota: Em computadores Mac, no se esquea de copiar ou substituir os arquivos individuais nas pastas individuais SDK - no diretrios inteiros. Por padro, a cpia de um diretrio no Mac para um diretrio de mesmo nome remove os arquivos existentes no diretrio de destino, sem mesclar o contedo das duas pastas. Voc pode usar o comando ditto em uma janela de terminal para mesclar o AIR SDK no Flex SDK:ditto air_sdk_folder
flex_sdk_folder
19
um aplicativo da web que executa no Adobe Flash Player um aplicativo de computador pessoal que executa no Adobe AIR
Selecione Desktop como tipo de aplicativo.
5 Clique em Concluir para criar o projeto.
Os projetos do AIR consistem inicialmente em dois arquivos: o arquivo MXML principal e o arquivo XML do aplicativo (conhecido como arquivo de descrio do aplicativo). O ltimo arquivo especifica as propriedades do aplicativo. Para obter mais informaes, consulte Desenvolvimento de aplicativos do AIR com Flash Builder.
20
<?xml version="1.0" encoding="utf-8"?> <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" title="Hello World"> </s:WindowedApplication>
propriedade text do componente Label como "Hello AIR" e ajuste as restries de layout para mant-lo centrado, como mostrado abaixo:
<?xml version="1.0" encoding="utf-8"?> <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" title="Hello World"> <s:Label text="Hello AIR" horizontalCenter="0" verticalCenter="0"/> </s:WindowedApplication>
3 Acrescente o bloco do estilo a seguir imediatamente depois de abrir a tag WindowedApplication e antes da tag de
Essas configuraes de estilo se aplicam a todo o aplicativo, garantindo um plano de fundo da janela um cinza levemente transparente. O cdigo do aplicativo agora se parece com o seguinte:
<?xml version="1.0" encoding="utf-8"?> <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" title="Hello World"> <fx:Style> @namespace s "library://ns.adobe.com/flex/spark"; s|WindowedApplication { skinClass:ClassReference("spark.skins.spark.SparkChromeWindowedApplicationSkin"); background-color:#999999; background-alpha:"0.7"; } </fx:Style> <s:Label text="Hello AIR" horizontalCenter="0" verticalCenter="0"/> </s:WindowedApplication>
21
Em seguida, voc vai alterar algumas configuraes no descritor do aplicativo para permitir que o aplicativo seja transparente:
1 No painel de navegao do Flex, localize o arquivo de descrio do aplicativo no diretrio de origem do projeto. Se
propriedade initialWindow). Retire os comentrios. (Retire os delimitadores de comentrio "<!--" e "-->" delimitadores de comentrio.)
4 Defina o valor de texto da propriedade systemChrome como none, como aparece a seguir:
<systemChrome>none</systemChrome>
5 Defina o valor de texto da propriedade transparent como true, como aparece a seguir:
<transparent>true</transparent>
6 Salve o arquivo.
Voc tambm pode selecionar o comando Executar > Depurar > AIRHelloWorld. O aplicativo do AIR resultante deve ter a aparncia do exemplo a seguir:
do computador. Nota: Se o aplicativo no for compilado, conserte a sintaxe ou os erros de digitao que voc inseriu de forma inadvertida no cdigo. Os erros e advertncias so exibidos na visualizao Problemas no Flash Builder.
22
aplicativo.
4 Selecione a opo Exportar como pacote assinado do AIR. Em seguida, clique em Avanar. 5 Se voc j tiver um certificado digital, clique em Procurar para localiz-lo e selecion-lo. 6 Se precisar criar um novo certificado digital autoassinado, selecione Criar. 7 Insira as informaes necessrias e clique em OK. 8 Clique em Concluir para gerar o pacote do AIR, que se chama AIRHelloWorld.air.
Agora voc pode instalar e executar o aplicativo do Navegador de Projeto no Flash Builder ou no sistema de arquivos clicando duas vezes no arquivo AIR.
Adobe AIR.
3 Selecione a ferramenta Texto no painel Ferramentas e crie um campo de texto esttico (o padro) no centro do
23
Testar o aplicativo
1 Pressione Ctrl + Enter ou selecione Controlar -> Testar filme -> Testar para testar o aplicativo no Adobe AIR. 2 Para utilizar o recurso Depurar filme, primeiro adicione o cdigo ActionScript ao aplicativo. Voc pode fazer isso
3 Pressione Ctrl + Shift + Enter ou selecione Depurar -> Depurar filme -> Depurar para executar o aplicativo com
Empacotar o aplicativo
1 Selecione Arquivo > Publicar. 2 Assine o pacote Adobe AIR com um certificado digital existentes ou cria um certificado autoassinado passando
e Confirmar senha.
c Especifique o tipo de certificado. A opo Tipo de certificado refere-se ao nvel de segurana: 1024-RSA usa uma
chave de 1024 bits (menos segura) e 2048-RSA usa uma chave de 2048 bits (mais segura).
d Salve as informaes em um arquivo de certificado preenchendo a entrada Salvar como ou clicando no boto
Procurar... para procurar o local da pasta. (Por exemplo, C:/Temp/mycert.pfx). Quando terminar, clique em OK.
e O Flash retorna para o dilogo Assinatura digital. O caminho e o nome de arquivo do certificado autoassinado
que voc criou so exibidos na caixa de texto Certificado. Se isso no ocorrer, digite o caminho e o nome de arquivo ou clique no boto Procurar para localiz-lo e selecion-lo.
f
Insira a mesma senha do campo de texto Senha da caixa de dilogo Assinatura Digital como a senha que voc assinou na etapa "b". Para mais informaes sobre assinatura dos aplicativos Adobe AIR, consulte Assinatura digital de um arquivo AIR na pgina 191.
24
3 Para criar o arquivo do aplicativo e do programa de instalao, clique no boto Publicar. (No Flash CS4 e CS5,
clique no boto Ok.) Execute Testar filme ou Depurar filme para criar os arquivos SWF e application.xml antes de criar o arquivo AIR.
4 Para instalar o aplicativo, clique duas vezes no arquivo AIR (application.air) na mesma pasta em que salvou seu
aplicativo.
5 Clique no boto Instalar no dilogo Instalao do aplicativo. 6 Revise as Preferncias da instalao e as Configuraes locais e verifique se a caixa de seleo 'Iniciar aplicativo aps
A tela inicial do Flash Professional inclui um link para criar um aplicativo do AIR for Android. Voc tambm pode selecionar Arquivo > Novo e, em seguida, selecionar o modelo AIR for Android.
3 Salve o documento como HelloWorld.fla
Escreva o cdigo Como este tutorial no realmente sobre como escrever cdigo, basta usar a ferramenta de texto para escrever, "Hello, World!" no palco. Defina as propriedades do aplicativo 1 Selecione as configuraes Arquivo > AIR for Android.
2 Na guia Geral, especifique as seguintes configuraes:
Arquivo de sada: HelloWorld.apk Nome do aplicativo: HelloWorld ID do aplicativo: HelloWorld Nmero da verso: 0.0.1 Proporo do aspecto: retrato
3 Na guia Implantao, especifique as seguintes configuraes:
Certificado: Aponte para um certificado de assinatura por cdigo do AIR. Voc pode clicar no boto Criar para
criar um novo certificado. (Os aplicativos Android implementados atravs do Android Marketplace devem ter certificados vlidos pelo menos at o ano 2033.) Digite a senha do certificado no campo Senha.
25
Tipo de implementao do Android: depurao Aps publicao: selecione ambas as opes Digite o caminho para a ferramenta do ADB no subdiretrio de ferramentas do Android SDK.
4 Fechar a caixa de dilogo das configuraes do Android clicando em OK.
O aplicativo no precisa de cones ou permisses nesta fase do desenvolvimento. A maioria dos aplicativos AIR for Android exige algumas permisses para acessar recursos protegidos. Voc s deve definir as permisses que seu aplicativo realmente exige, pois os usurios podem rejeitar seu aplicativo se ele pedir permisses demais.
5 Salve o arquivo.
Compactar e instalar o aplicativo no dispositivo do Android. 1 Confira se a depurao por USB est ativada no dispositivo. Voc pode ativar a depurao por USB nas Configuraes do aplicativo em Aplicativos > Desenvolvimento.
2 Conecte seu dispositivo ao computador com um cabo USB. 3 Instale o runtime do AIR. Se voc no tiver feito isso, v para o Android Market e baixe o Adobe AIR. (Voc
tambm pode instalar o AIR localmente usando o comando Comando installRuntime do ADT na pgina 178. Pacotes do Android para uso em emuladores e dispositivos Android so includos no AIR SDK).
4 Selecione Arquivo > Publicar.
O Flash Professional cria o arquivo APK, instala o aplicativo no dispositivo Android conectado, e ativa-o.
26
public class HelloWorld extends Sprite { public function HelloWorld():void { var textField:TextField = new TextField(); textField.text = "Hello World!"; textField.autoSize = TextFieldAutoSize.LEFT; var format:TextFormat = new TextFormat(); format.size = 48; textField.setTextFormat ( format ); this.addChild( textField ); } } }
Um arquivo SWF HelloWorld.swf criado na mesma pasta. Nota: Este exemplo assume que voc configurou a varivel de caminho do ambiente para incluir o diretrio que contm amxmlc. Para obter mais informaes sobre definio de caminho, consulte Variveis de ambiente do caminho na pgina 304. Alternativamente, voc pode digitar o caminho completo para amxmlc e para as outras ferramentas de linha de comando usadas neste exemplo.
57 pixels e 512 por 512 pixels. Neste teste, use simplesmente quadrados de cor slida como arte. Nota: Ao submeter um aplicativo Apple App Store, use a verso JPG (no a verso PNG) do arquivo com 512 pixels. Use a verso PNG ao testar as verses de desenvolvimento de um aplicativo. Todos os aplicativos para iPhone exibem uma imagem inicial quando o aplicativo carrega no iPhone. Defina a imagem inicial em um arquivo PNG:
1 No diretrio principal de desenvolvimento, crie um arquivo PNG com o nome Default.png. (No coloque esse
branco liso. (Voc mudar isso mais tarde). Para informaes detalhadas sobre estes grficos, consulte cones de aplicativos na pgina 87.
27
Por razes de simplicidade, este exemplo define apenas algumas das propriedades disponveis. Nota: Se voc estiver utilizando o AIR 2 ou anterior, dever utilizar o elemento <version> em vez do elemento <versionNumber>.
3 Altere o ID do aplicativo para coincidir com o ID do aplicativo especificado no Portal de Aprovisionamento do iOS.
O ADL deve abrir uma janela no seu desktop que exibe o texto: Hello World!Se isto no acontecer, procure por erros no cdigo-fonte e no descritor do aplicativo.
(Utilize uma nica linha de comando; as quebras de linha neste exemplo so apenas para torn-lo mais fcil de ler.)
28
ADT gera o arquivo de instalao do aplicativo do iOS, HelloWorld.ipa, no diretrio do projeto. A compilao do arquivo IPA pode demorar alguns minutos.
Arquivo > Adicionar Biblioteca. Selecione o arquivo de perfil de aprovisionamento (que tem mobileprovision como tipo de arquivo). Por enquanto, para testar o aplicativo em seu dispositivo de desenvolvedor, use o perfil de aprovisionamento de desenvolvimento. Mais tarde, ao distribuir o aplicativo para a iTunes Store, use o perfil de distribuio. Para distribuir o aplicativo ad hoc (para mltiplos dispositivos sem passar pela iTunes Store), use o arquivo de aprovisionamento ad hoc. Para obter mais informaes sobre perfis de aprovisionamento, consulte Configurao do iOS na pgina 66.
3 Algumas verses do iTunes no substituem o aplicativo, se a mesma verso do aplicativo estiver instalada. Nesse
sincronizao terminar, o aplicativo Hello World aparecer em seu iPhone. Se a nova verso no estiver instalada, exclua-a do dispositivo e da lista de aplicativos no iTunes e, em seguida, execute novamente esse procedimento. Talvez esse seja o caso, se a verso instalada atualmente usa o mesmo ID do aplicativo e verso.
pressionado o boto Incio (abaixo da tela). Mantendo pressionado o boto Incio, pressione o boto Despertar/Repousar na parte superior do iPhone). Isso executa uma captura de tela e envia-a para o rolo da cmera.
2 Transfira a imagem para seu computador de desenvolvimento, transferindo as fotos do iPhoto ou de outro
aplicativo de transferncia de fotos. (No Mac OS, possvel tambm usar o aplicativo Captura de Imagem). possvel tambm enviar a foto por e-mail para seu computador de desenvolvimento:
Abra o aplicativo Fotos. Abra Rolo da cmera. Abra a imagem da captura de tela que capturou.
29
Pressione a imagem e, em seguida, pressione o boto (seta) Avanar no canto inferior esquerdo. Em seguida,
clique no boto Enviar foto por e-mail e envie a imagem para voc mesmo.
3 Substitua o arquivo Default.png (no seu diretrio de desenvolvimento) pela verso PNG da imagem da captura de tela. 4 Compile novamente o aplicativo (consulte Compile o arquivo IPA na pgina 27) e reinstale-o em seu dispositivo.
O aplicativo usa a nova tela de inicializao ao carregar. Nota: possvel criar qualquer arte que deseja para o arquivo Default.png, desde que tenha as dimenses corretas (320 x 480 pixels). No entanto, frequentemente melhor que a imagem do arquivo Default.png coincida com o estado inicial do aplicativo.
Este exemplo extremamente simples, mas, se desejar, voc pode aplicar estilo ao texto ao seu gosto, adicionar mais contedo pgina, vincular outras pginas a essas pgina inicial e assim por diante.
4 Salve a pgina (Arquivo > Salvar) como hello_world.html. Certifique-se de salvar o arquivo em um site
Dreamweaver. Para obter mais informaes sobre os sites Dreamweaver, consulte a Ajuda do Dreamweaver.
30
A maioria das configuraes exigidas na caixa de dilogo Configuraes e aplicativo do AIR so preenchidas automaticamente para voc. Voc deve, no entanto, selecionar o contedo inicial (ou a pgina inicial) do seu aplicativo.
3 Clique no boto Procurar perto da opo Contedo inicial, v at sua pgina hello_world.html e selecione-a. 4 Perto da opo Assinatura digital, clique no boto Definir.
A assinatura digital fornece a garantia de que o cdigo para um aplicativo no foi alterado nem est corrompido desde sua criao pelo autor do software, sendo exigido em todos os aplicativos Adobe AIR.
5 Na caixa de dilogo Assinatura digital, selecione Assinar o pacote AIR com um certificado digital, e clique no boto
Criar. (Se voc j tiver acesso a um certificado digital, poder clicar no boto Procurar para selecion-lo.)
6 Preencha os campos necessrios na caixa de dilogo Certificado digital autoassinado. Voc vai precisar inserir seu
nome e uma senha e depois confirm-la, e inserir um nome para o arquivo de certificado digital. O Dreamweaver salva o certificado digital na raiz do site.
7 Clique em OK para voltar para a caixa de dilogo Assinatura digital. 8 Na caixa de dilogo Assinatura digital, insira a senha especificada para seu certificado digital e clique em OK.
A caixa de dilogo completa do aplicativo do AIR e das configuraes do instalador talvez se paream com o seguinte:
31
Para obter mais informaes sobre todas as opes de caixa de dilogo e como edit-as, consulte Criao de um aplicativo do AIR no Dreamweaver.
9 Clique no boto Criar arquivo AIR.
O Dreamweaver cria o arquivo do aplicativo Adobe AIR e salva-o na pasta raiz do seu site. O Dreamweaver tambm cria um arquivo application.xml e o salva no mesmo lugar. Este arquivo serve como manifesto, definido vrias propriedades do aplicativo.
computador. Essa etapa opcional. Voc pode, na verdade, instalar o novo aplicativo no seu computador direto do diretrio do site do Dreamweaver, se preferir.
2 Clique duas vezes no arquivo executvel do aplicativo (arquivo .air) para instalar o aplicativo.
Visualizar no AIR. Voc tambm pode pressionar Ctrl+Shift+F12 (Windows) ou Cmd+Shift+F12 (Macintosh). Ao visualizar essa pgina, voc est vendo essencialmente o que um usurio veria como pgina inicial do aplicativo depois de ter instalado o aplicativo em um computador.
Criao do seu primeiro aplicativo do AIR baseado em HTML com o SDK do AIR
Para uma ver uma ilustrao rpida e prtica de como funciona o Adobe AIR, use essas instrues para criar e empacotar um aplicativo simples "Hello World" do AIR baseado em HTML. Para comear, voc deve ter instalado o runtime e configurar o SDK do AIR. Voc via usar o AIR Debug Launcher (ADL) e a AIR Developer Tool (ADT) neste tutorial. O ADL e o ADT so programas utilitrios de linha de comando e podem ser encontrados no diretrio bin do SDK do AIR (consulte Instalao do SDK do AIR na pgina 16). Este tutorial parte do princpio de que voc j est familiarizado com os programas em execuo da linha de comando e sabe como configurar as variveis do ambiente do caminho necessrio para o seu sistema operacional. Nota: Se voc for um usurio do Adobe Dreamweaver, leia Criao do primeiro aplicativo do AIR baseado em HTML com o Dreamweaver na pgina 29. Nota: Os aplicativos do AIR baseados em HTML s podem ser desenvolvidos para os perfis desktop e extendedDesktop. O perfil mvel no compatvel.
32
1 Abra HelloWorld-app.xml para edio. 2 Acrescente o elemento raiz <application>, incluindo o atributo de espao de nome do AIR:
<application xmlns="http://ns.adobe.com/air/application/2.7"> O ltimo segmento do namespace, 2.7, especifica a verso do runtime requerida pelo aplicativo.
3 Acrescente o elemento <id>:
<id>examples.html.HelloWorld</id> O id do aplicativo identifica exclusivamente seu aplicativo junto com o ID de editor (que o AIR cria do certificado usado para assinar o pacote do aplicativo). O ID de aplicativo usada para instalao, acesso ao diretrio privado de armazenamento do sistema de arquivos, acesso ao armazenamento criptografado privado e comunicao entre aplicativos.
4 Acrescente o elemento <versionNumber>:
<versionNumber>0.1</versionNumber> Ajuda os usurios a determinar qual verso do aplicativo eles esto instalando. Nota: Se voc estiver utilizando o AIR 2 ou anterior, dever utilizar o elemento <version> em vez do elemento
<versionNumber>.
<filename>HelloWorld</filename> O nome dusado para o executvel do aplicativo, diretrio de instalao e outras referncias ao aplicativo no sistema operacional.
6 Acrescente o elemento <initialWindow> que contm os seguintes elementos filho para especificar as
33
<content>HelloWorld.html</content> Identifica o arquivo HTML raiz que o AIR deve carregar. <visible>true</visible> Torna a janela visvel imediatamente. <width>400</width> Ajusta a largura da janela (em pixels). <height>200</height> Ajusta a altura da janela.
7 Salve o arquivo. O arquivo descritor completo do aplicativo deve se parecer com o seguinte:
<?xml version="1.0" encoding="UTF-8"?> <application xmlns="http://ns.adobe.com/air/application/2.7"> <id>examples.html.HelloWorld</id> <versionNumber>0.1</versionNumber> <filename>HelloWorld</filename> <initialWindow> <content>HelloWorld.html</content> <visible>true</visible> <width>400</width> <height>200</height> </initialWindow> </application>
Este exemplo s define algumas propriedades possveis do aplicativo. Para ver o conjunto completo de propriedades do aplicativo, que lhe permitem especificar coisas como cromo e tamanho da janela, transparncia, diretrio padro de instalao, tipos de arquivo associados e cones do aplicativo, consulte Arquivos descritores do aplicativo do AIR na pgina 206.
O AIR define uma propriedade chamada runtime no objeto da janela HTML. A propriedade de runtime fornece acesso s classes incorporadas do AIR, usando o nome do pacote totalmente qualificado da classe. Por exemplo, para criar um objeto File do AIR, voc poderia acrescentar a instruo seguinte em JavaScript:
var textFile = new runtime.flash.filesystem.File("app:/textfile.txt");
O arquivo AIRAliases.js define os aliases convenientes para as APIs mais teis do AIR. Usando o AIRAliases.js, voc poderia encurtar a referncia ao arquivo File para o seguinte:
var textFile = new air.File("app:/textfile.txt");
3 Abaixo da tag de script AIRAliases, acrescente outra tag de script contendo uma funo de JavaScript para lidar com
o evento onLoad:
34
A funo appLoad() simplesmente chama a funo air.trace(). A mensagem do traado impressa no console de comando quando voc executa o aplicativo usando o ADL. As instrues de traado podem ser muito teis para depurao.
4 Salve o arquivo.
Testar o aplicativo
Para executar e testar o aplicativo da linha de comando, use o utilitrio AIR Debug Launcher (ADL). O executvel ADL pode ser encontrado no diretrio bin do SDK do AIR. Se voc ainda no configurou o SDK do AIR, consulte Instalao do SDK do AIR na pgina 16.
1 Abra um console ou shell de comando. Troque para o diretrio que voc criou para este projeto. 2 Execute o seguinte comando:
adl HelloWorld-app.xml
aberta uma janela do AIR, exibindo seu aplicativo. Alm disso, a janela de console exibe a mensagem que resulta da chamada air.trace(). Para mais informaes, consulte Arquivos descritores do aplicativo do AIR na pgina 206.
35
certificado autoassinado s garante que o arquivo AIR no tenha sido alterado desde sua criao. No h nada que impea algum de autoassinar um arquivo AIR disfarado e apresent-lo como seu aplicativo. Para os arquivos AIR liberados ao pblico, um certificado comercial verificvel altamente recomendado. Para uma viso geral de questes de segurana do AIR, consulte Segurana do AIR (para desenvolvedores em ActionScript) ou AIR security (para desenvolvedores em HTML). Gerar um certificado autoassinado e par de chaves No prompt de comando, insira o comando a seguir (o executvel ADT est no diretrio bin do SDK do AIR):
adt -certificate -cn SelfSigned 1024-RSA sampleCert.pfx samplePassword
O ADT gera um arquivo de keystore chamado sampleCert.pfx que contm um certificado e uma chave privada relacionada. Este exemplo usa o nmero mnimo de atributos que podem ser definidos para um certificado. O tipo de chave deve ser 1024-RSA ou 2048-RSA (consulte Assinatura de aplicativos AIR na pgina 191). Criar o arquivo de instalao do AIR No prompt de comando, digite o seguinte comando (em uma nica linha):
adt -package -storetype pkcs12 -keystore sampleCert.pfx HelloWorld.air HelloWorld-app.xml HelloWorld.html AIRAliases.js
Voc ter que fornecer a senha do arquivo do keystore. O argumento HelloWorld.air o arquivo AIR que o ADT produz. HelloWorld-app.xml o arquivo descritor do aplicativo. Os argumentos subsequentes so os arquivos usados pelo seu aplicativo. Esse exemplo s usa dois arquivos, mas voc pode incluir qualquer nmero de arquivos e diretrios. O ADT verifica se o principal arquivo de contedo (HelloWorld.html) est includo no pacote, mas se voc esquecer de incluir AIRAliases.js, seu aplicativo simplesmente no funcionar. Depois da criao do pacote AIR, voc pode instalar e executar o aplicativo clicando duas vezes no arquivo de pacote Voc tambm pode digitar o nome do arquivo AIR como comando em um shell ou janela de comando.
Prximas etapas
No AIR, o cdigo de HTML e JavaScript geralmente se comporta da mesma forma que se comportaria em um navegador tpico. (Na verdade, o AIR usa o mesmo mecanismo de renderizao WebKit usado pelo navegador da Web Safari.) No entanto, h algumas diferenas importantes que voc deve entender ao desenvolver aplicativos HTML no AIR. Para mais informaes sobre estas diferenas e outros tpicos importantes, consulte Programming HTML and JavaScript.
36
Para comear, voc deve ter instalado o runtime e configurar o Adobe Flex. Este tutorial utiliza o compilador AMXMLC, o AIR Debug Launcher (ADL) e a AIR Developer Tool (ADT). Estes programas podem ser encontrados no diretrio bin do Flex SDK (consulte Definio do SDK do Flex na pgina 18).
1 Crie um arquivo XML com o nome HelloWorld-app.xml e salve-o no diretrio do projeto. 2 Acrescente o elemento <application>, incluindo o atributo de espao de nome do AIR:
<application xmlns="http://ns.adobe.com/air/application/2.7"> O ltimo segmento do espao de nome, 2.7, especifica a verso do runtime de que o aplicativo necessita.
3 Acrescente o elemento <id>:
<id>samples.flex.HelloWorld</id> O id do aplicativo identifica exclusivamente seu aplicativo junto com o ID de editor (que o AIR cria do certificado usado para assinar o pacote do aplicativo). A forma recomendado uma sequncia de caractere separados por pontos, do tipo DNS reverso, como, por exemplo, "com.company.AppName". O ID de aplicativo usada para instalao, acesso ao diretrio privado de armazenamento do sistema de arquivos, acesso ao armazenamento criptografado privado e comunicao entre aplicativos.
4 Acrescente o elemento <versionNumber>:
<versionNumber>1.0</versionNumber> Ajuda os usurios a determinar qual verso do aplicativo eles esto instalando. Nota: Se voc estiver utilizando o AIR 2 ou anterior, dever utilizar o elemento <version> em vez do elemento
<versionNumber>.
<filename>HelloWorld</filename> O nome dusado para o executvel do aplicativo, diretrio de instalao e outras referncias ao aplicativo no sistema operacional.
6 Acrescente o elemento <initialWindow> que contm os seguintes elementos filho para especificar as
propriedades da janela inicial do seu aplicativo: <content>HelloWorld.swf</content> Identifca o arquivo SWF de raiz para o AIR carregar. <visible>true</visible> Torna a janela visvel imediatamente. <width>400</width> Ajusta a largura da janela (em pixels). <height>200</height> Ajusta a altura da janela.
7 Salve o arquivo. O arquivo descritor de aplicativo completo deve assemelhar-se ao seguinte:
37
<?xml version="1.0" encoding="UTF-8"?> <application xmlns="http://ns.adobe.com/air/application/2.7"> <id>samples.flex.HelloWorld</id> <versionNumber>0.1</versionNumber> <filename>HelloWorld</filename> <initialWindow> <content>HelloWorld.swf</content> <visible>true</visible> <width>400</width> <height>200</height> </initialWindow> </application>
Este exemplo s define algumas propriedades possveis do aplicativo. Para ver o conjunto completo de propriedades do aplicativo, que lhe permitem especificar coisas como cromo e tamanho da janela, transparncia, diretrio padro de instalao, tipos de arquivo associados e cones do aplicativo, consulte Arquivos descritores do aplicativo do AIR na pgina 206.
2 Em seguida, adicione um componente Label ao aplicativo (insira-o na tag WindowedApplication). 3 Defina propriedade text do componente Label para "Hello AIR". 4 Defina as restries de layout para sempre manter centralizado.
38
<?xml version="1.0" encoding="utf-8"?> <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" title="Hello World"> <s:Label text="Hello AIR" horizontalCenter="0" verticalCenter="0"/> </s:WindowedApplication>
Compile o aplicativo
Antes de executar e depurar o aplicativo, compile o cdigo MXML em um arquivo SWF utilizando o compilador amxmlc. O compilador amxmlc pode localizar o diretrio bin do Flex SDK. Se preferir, voc pode definir a varivel de ambiente do caminho de seu computador para incluir o diretrio bin o Flex SDK. A configurao do caminho facilita a execuo dos utilitrios na linha de comando.
1 Abra um prompt de comando ou um terminal e navegue at a pasta de projeto do aplicativo do AIR. 2 Digite o seguinte comando:
amxmlc HelloWorld.mxml
O compilador amxmlc cria o arquivoHelloWorld.swf, que contm o cdigo compilado do aplicativo. Nota: Se o aplicativo no compilar, corrija erros de sintaxe ou ortografia. Erros e avisos sero exibidos na janela do console utilizado para executar o compilador amxmlc. Para obter mais informaes, consulte Compilao de arquivos de origem do MXML e ActionScript para AIR na pgina 156.
Testar o aplicativo
Para executar e testar o aplicativo a partir da linha de comando, utilize o AIR Debug Launcher (ADL) para executar o aplicativo utilizando o arquivo do descritor do aplicativo. (O ADL pode ser encontrado no diretrio bin do Flex SDK.)
No prompt de comando, insira o comando a seguir:
adl HelloWorld-app.xml
Usando as propriedades horizontalCenter e verrticalCenter do controle Label, o texto colocado no centro da janela. Move ou redimensione a janela como voc faria em qualquer outro aplicativo do computador. Para obter mais informaes, consulte AIR Debug Launcher (ADL) na pgina 160.
39
Este exemplo usa o nmero mnimo de atributos que podem ser definidos para um certificado. O tipo de chave deve ser 1024-RSA ou 2048-RSA (consulte Assinatura de aplicativos AIR na pgina 191). Crie o pacote do AIR No prompt de comando, digite o seguinte comando (em uma nica linha):
adt -package -storetype pkcs12 -keystore sampleCert.pfx HelloWorld.air HelloWorld-app.xml HelloWorld.swf
Voc ter que fornecer a senha do arquivo do keystore. Digite a senha e pressione Enter. Os caracteres da senha no so exibidos por motivos de segurana. O argumento HelloWorld.air o arquivo AIR que o ADT produz. HelloWorld-app.xml o arquivo descritor do aplicativo. Os argumentos subsequentes so os arquivos usados pelo seu aplicativo. Esse exemplo s usa trs arquivos, mas voc pode incluir qualquer nmero de arquivos e diretrios. Depois da criao do pacote AIR, voc pode instalar e executar o aplicativo clicando duas vezes no arquivo de pacote Voc tambm pode digitar o nome do arquivo AIR como comando em um shell ou janela de comando. Para obter mais informaes, consulte Compactao de um arquivo de instalao AIR desktop. na pgina 52.
Criando seu primeiro aplicativo do AIR for Android com o Flex SDK
Para comear, voc deve ter instalado e configurado o AIR e o Flex SDKs. Este tutorial usa o compilador AMXMLC do Flex SDK, o AIR Debug Launcher (ADL) e o AIR Developer Tool (ADT) do AIR SDK. Definio do SDK do Flex na pgina 18. Voc tambm deve baixar e instalar o Android SDK no site do Android, conforme descrito em: Desenvolvedores para Android: Instalao do SDK.
40
Nota: Para mais informaes sobre desenvolvimento para iPhone, consulte Criao do aplicativo Hello World para iPhone com o Flash Professional CS5.
1 Crie um arquivo XML com o nome HelloWorld-app.xml e salve-o no diretrio do projeto. 2 Acrescente o elemento <application>, incluindo o atributo de espao de nome do AIR:
<application xmlns="http://ns.adobe.com/air/application/2.7"> O ltimo segmento do espao de nome, 2.7, especifica a verso do runtime de que o aplicativo necessita.
3 Acrescente o elemento <id>:
<id>samples.android.HelloWorld</id> O id do aplicativo identifica exclusivamente seu aplicativo junto com o ID de editor (que o AIR cria do certificado usado para assinar o pacote do aplicativo). O formulrio recomendado uma sequncia de caracteres "reverse-DNS-style", delimitada por pontos, como "com.company.AppName".
4 Acrescente o elemento <versionNumber>:
<versionNumber>0.0.1</versionNumber> Ajuda os usurios a determinar qual verso do aplicativo eles esto instalando.
5 Acrescente o elemento <filename>:
<filename>HelloWorld</filename> O nome dusado para o executvel do aplicativo, diretrio de instalao e outras referncias ao aplicativo no sistema operacional.
6 Acrescente o elemento <initialWindow> que contm os seguintes elementos filho para especificar as
propriedades da janela inicial do seu aplicativo: <content>HelloWorld.swf</content> Identifica o arquivo HTML raiz que o AIR deve carregar.
7 Acrescente o elemento <supportedProfiles>.
41
Este exemplo s define algumas propriedades possveis do aplicativo. Existem outras configuraes que voc pode usar no arquivo de descritor do aplicativo. Por exemplo, voc pode adicionar <fullScreen>true</fullScreen> para o elemento initialWindow para compilar um aplicativo de tela cheia. Para ativar a depurao remota e recursos controlados por acesso no Android, voc tambm ter que adicionar as permisses Android para o descritor do aplicativo. As permisses no so necessrias para este aplicativo simples, por isso voc no precisa adicion-las agora. Para obter mais informaes, consulte Configurao de propriedades do aplicativo mvel na pgina 71.
Compile o aplicativo
Antes de executar e depurar o aplicativo, compile o cdigo MXML em um arquivo SWF utilizando o compilador amxmlc. O compilador amxmlc pode localizar o diretrio bin do Flex SDK. Se preferir, voc pode definir a varivel de ambiente do caminho de seu computador para incluir o diretrio bin o Flex SDK. A configurao do caminho facilita a execuo dos utilitrios na linha de comando.
1 Abra um prompt de comando ou um terminal e navegue at a pasta de projeto do aplicativo do AIR. 2 Digite o seguinte comando:
amxmlc HelloWorld.as
O compilador amxmlc cria o arquivoHelloWorld.swf, que contm o cdigo compilado do aplicativo. Nota: Se o aplicativo no compilar, corrija erros de sintaxe ou ortografia. Erros e avisos sero exibidos na janela do console utilizado para executar o compilador amxmlc. Para obter mais informaes, consulte Compilao de arquivos de origem do MXML e ActionScript para AIR na pgina 156.
Testar o aplicativo
Para executar e testar o aplicativo a partir da linha de comando, utilize o AIR Debug Launcher (ADL) para executar o aplicativo utilizando o arquivo do descritor do aplicativo. (O ADL pode ser encontrado no diretrio bin do Air e Flex SDKs.)
No prompt de comando, insira o comando a seguir:
42
adl HelloWorld-app.xml
Para obter mais informaes, consulte Simulao de dispositivos utilizando ADL na pgina 100.
Este exemplo usa o nmero mnimo de atributos que podem ser definidos para um certificado. O tipo de chave deve ser 1024-RSA ou 2048-RSA (consulte o Comando certificate do ADT na pgina 174). Crie o pacote do AIR No prompt de comando, digite o seguinte comando (em uma nica linha):
adt -package -target apk -storetype pkcs12 -keystore sampleCert.p12 HelloWorld.apk HelloWorld-app.xml HelloWorld.swf
Voc ter que fornecer a senha do arquivo do keystore. Digite a senha e pressione Enter. Para obter mais informaes, consulte Compactao de um aplicativo do AIR mvel na pgina 93. Instale o runtime do AIR Voc pode instalar a verso mais recente do runtime do AIR a partir do Android Market. Voc tambm pode instalar o runtime includo no seu SDK em qualquer dispositivo ou um emulador do Android.
No prompt de comando, digite o seguinte comando (em uma nica linha):
adt -installRuntime -platform android -platformsdk
Defina o sinalizador -platformsdk para seu diretrio SDK do Android SDK (especifique o pai da pasta de ferramentas). O ADT instala o Runtime.apk includo no SDK. Para obter mais informaes, consulte Instale o runtime do AIR e os aplicativos para desenvolvimento na pgina 108. Instale o aplicativo do AIR No prompt de comando, digite o seguinte comando (em uma nica linha):
43
Defina o sinalizador -platformsdk para seu diretrio SDK do Android SDK (especifique o pai da pasta de ferramentas). Para obter mais informaes, consulte Instale o runtime do AIR e os aplicativos para desenvolvimento na pgina 108. Voc pode iniciar seu aplicativo clicando no cone do aplicativo na tela do dispositivo ou emulador.
44
Voc precisar acessar as APIs dependentes de plataforma como a classe NativeProcess. O aplicativo utilizar extenses nativas.
Nestes casos, voc pode compactar um aplicativo do AIR como um arquivo de instalao nativo especfico da plataforma.
45
Nota: O instalador nativo de uma plataforma de destino dever ser criado naquela plataforma. No possvel, por exemplo, criar um instalador de Windows em um Mac. possvel utilizar uma mquina virtual como o VMWare para executar mltiplas plataformas no mesmo hardware de computador.
tal instalador, mas muitos kits de ferramentas terceirizados esto disponveis). Nota: O conjunto de uma plataforma de destino dever ser criado naquela plataforma. No possvel, por exemplo, criar um conjunto de Windows em um Mac. possvel utilizar uma mquina virtual como o VMWare para executar mltiplas plataformas no mesmo hardware de computador.
46
Identidade do aplicativo
Diversas configuraes devem ser exclusivas para cada aplicativo que voc publicar. As configuraes exclusivas incluem o ID, o nome e o nome do arquivo.
<id>com.example.MyApplication</id> <name>My Application</name> <filename>MyApplication</filename>
Verso do aplicativo
Nas verses AIR anteriores ao AIR 2.5, especifique o aplicativo no elemento version. Voc pode usar qualquer sequncia de caracteres. O runtime do AIR no interpreta a sequncia de caracteres; "2.0" no tratado como uma verso maior de "1.0".
<!-- AIR 2 or earlier --> <version>1.23 Beta 7</version>
No AIR 2.5 e posterior, especifique a verso do aplicativo no elemento versionNumber. O elemento version no pode mais ser usado. Ao especificar um valor para versionNumber, voc deve usar uma sequncia de at trs nmeros separados por pontos, como: "0.1.2". Cada segmento do nmero de verso pode ter at trs dgitos. (Em outras palavras, "999.999.999" o maior nmero de verso autorizada.) Voc no precisa incluir todos os trs segmentos do nmero; "1" e "1.0" so nmeros de verso legal. Voc tambm pode especificar um rtulo para a verso com o elemento versionLabel. Ao adicionar um rtulo de verso, este exibido em vez do nmero da verso em lugares como as caixas de dilogo do instalador dos aplicativos do AIR.
<!-- AIR 2.5 and later --> <versionNumber>1.23.7<versionNumber> <versionLabel>1.23 Beta 7</versionLabel>
47
content - O arquivo SWF do aplicativo principal no filho content do elemento initalWindow. Ao direcionar
dispositivos no perfil de desktop, voc pode usar um arquivo SWF ou HTML.
<initialWindow> <content>MyApplication.swf</content> </initialWindow>
Voc deve incluir o arquivo no pacote AIR (usando ADT ou sua IDE). Simplesmente fazer referncia do nome no descritor do aplicativo no faz com que o arquivo seja includo no pacote de maneira automtica.
depthAndStencil Especifica o uso do buffer de profundidade ou de estncil. Normalmente, voc usa esses
buffers ao trabalhar com contedo 3D.
<depthAndStencil>true</depthAndStencil>
height A altura da janela inicial. maximizable Se o cromo do sistema para maximizar a janela for exibido. maxSize O tamanho mximo permitido. minimizable Se o cromo do sistema para minimizar a janela for exibido. minSize O tamanho mnimo permitido. renderMode No AIR 3 ou posterior, o modo de renderizao dever ser definido como auto, cpu, direct ou gpu
para os aplicativos de desktop. Em verses anteriores do AIR, essa configurao ignorada nas plataformas de desktop. A configurao renderMode no pode ser alterada no runtime.
auto basicamente o mesmo que o modo da cpu. cpu exibe objetos que so renderizados e copiados para exibir a memria no software. StageVideo est
disponvel somente quando uma janela est no modo tela cheia. Stage3D utiliza o renderizador de software.
direct exibe objetos que so renderizados pelo software do runtime, mas a cpia de quadro renderizado para
exibir a memria (blitting) acelerada pelo hardware. StageVideo est disponvel. Stage3D utiliza a acelerao de hardware, caso seja possvel. Caso uma transparncia de janela seja definida como true, ento a janela "retroceder" a renderizao e o blitting do software. Nota: Para aproveitar a acelerao GPU do contedo Flash com o AIR para plataformas mveis, o Adobe recomenda que voc use renderMode="direct", o Stage3D e no 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.
gpu a acelerao por hardware usada, se disponvel. requestedDisplayResolution Se o seu aplicativo tiver que usar o modo de resoluo standard ou high em
computadores MacBook Pro com telas de alta resoluo. Em todas as outras plataformas o valor ignorado. Se o valor standard, cada pixel do palco renderizado como quatro pixels na tela. Se o valor high, cada pixel do palco corresponde a um nico pixel fsico na tela. O valor especificado usado para todas as janelas do aplicativo. O uso do elemento requestedDisplayResolution para aplicativos de desktop AIR (como um filho do elementointialWindow) est disponvel no AIR 3.6 e posterior.
48
title O ttulo da janela. transparent Se a janela for de mesclagem de alfa em relao ao plano de fundo. A janela no pode usar o cromo
do sistema se a transparncia estiver ativada. A configurao transparent de uma janela no pode ser alterada em runtime.
visible - Se a janela fica visvel assim que criada. A janela no fica visvel por padro inicialmente para que o
aplicativo possa chamar seu contedo antes de se tornar visvel.
Recursos do desktop
Os elementos a seguir controlam os recursos de instalao e atualizao do desktop.
customUpdateUI Permite que voc fornea suas prprias caixas de dilogo para atualizar um aplicativo. Se
configurado para false o padro, as caixas de dilogo padro do AIR so usadas.
49
fileTypes Especifica os tipos de arquivos que seu aplicativo gostaria de registrar como o aplicativo de abertura
padro. Se outro aplicativo j for o padro para abertura de um tipo de arquivo, o AIR no substitui o registro existente. Contudo, seu aplicativo pode substituir o registro em runtime usando o mtodo setAsDefaultApplication() do objeto NativeApplication. uma boa forma de pedir a permisso do usurio antes de substituir suas associaes do tipo de arquivo existente. Nota: O registro do tipo de arquivo ignorado ao fazer a compactao de um aplicativo como um conjunto de runtime cativo (usando o destino -bundle). Para registrar um determinado tipo de arquivo, necessrio criar um programa de instalador que realize o registro.
installFolder Especifica um caminho relativo para a pasta padro de instalao de aplicativos em que o aplicativo
instalado. Voc pode usar esta configurao para fornecer um nome de pasta personalizada, bem como agrupar vrios aplicativos dentro de uma pasta comum.
programMenuFolder Especifica a hierarquia do menu para o menu Todos os programas do Windows. Voc
pode usar esta definio para agrupar vrios aplicativos em um menu comum. Se nenhuma pasta do menu for especificada o atalho do aplicativo adicionado diretamente ao menu principal.
Perfis disponveis
Se seu aplicativo s faz sentido no desktop, voc pode evitar que ele seja instalado em dispositivos em outro perfil, excluindo esse perfil da lista de perfis disponveis. Caso o aplicativo utilize a classe NativeProcess ou extenses nativas, ento ser necessrio suportar o perfil extendedDesktop. Se voc deixar o elemento supportedProfile fora do descritor do aplicativo, este presume que seu aplicativo d suporte para todos os perfis definidos. Para restringir seu aplicativo a uma lista especfica de perfis, liste os perfis, separados por espaos em branco:
<supportedProfiles>desktop extendedDesktop</supportedProfiles>
Para uma lista de classes ActionScript disponveis nos perfis desktop e extendedDesktop, consulte Recursos de diferentes perfis Capacidades de perfis diferentes na pgina 246.
50
O elemento extensionID tem o mesmo valor que o elemento id no arquivo descritor de extenso. O arquivo descritor da extenso um arquivo XML chamado extension.xml. Ela est compactada no arquivo ANE recebido do desenvolvedor da extenso nativa.
cones de aplicativos
No desktop, os cones especificados no descritor do aplicativo so usados como cones do menu do programa, atalhos e arquivo do aplicativo. O cone do aplicativo deve ser fornecido como um conjunto de imagens PNG de 16x16, 32x32, 48x48 e 128x128 pixels. Especifique o caminho para os arquivos de cone no elemento cone do arquivo descritor do aplicativo:
<icon> <image16x16>assets/icon16.png</image16x16> <image32x32>assets/icon32.png</image32x32> <image48x48>assets/icon48.png</image48x48> <image128x128>assets/icon128.png</image128x128> </icon>
Se voc no fornecer um cone de determinado tamanho, o maior tamanho seguinte utilizado e adaptado para se ajustar. Se voc no fornecer nenhum cone, um cone do sistema padro ser usado.
Configuraes ignoradas
Aplicativos no desktop ignoram as configuraes do aplicativo que se aplicam a recursos de perfil mvel. As configuraes ignoradas so:
android aspectRatio autoOrients fullScreen iPhone renderMode (anterior ao AIR 3) requestedDisplayResolution softKeyboardBehavior
51
O ADL imprime instrues de rastreio, excees de runtime e erros de anlise de HTML para a janela de terminal. Se um processo FDB estiver esperando por uma conexo de entrada, o ADL vai conectar-se ao depurador. Tambm possvel utilizar a ADL para depurar um aplicativo do AIR que utilize extenses nativas. Por exemplo:
adl -extdir extensionDirs myApplication-app.xml
especfico de plataforma desse arquivo, consulte Edio do arquivo mm.cfg. Exemplo do ActionScript:
//ActionScript trace("debug message");
Exemplo do JavaScript:
//JavaScript air.trace("debug message");
No cdigo do JavaScript, voc pode usar as funes alert() e confirm() para exibir mensagens de depurao do seu aplicativo. Alm disso, os nmeros de linha para erros de sintaxe, bem como qualquer exceo JavaScript no capturada, sero impressos para o console. Nota: Para utilizar o prefixo air mostrado no exemplo do JavaScript, voc deve importar o arquivo AIRAliases.js para a pgina. Esse arquivo est localizado no diretrio frameworks do SDK do AIR.
52
Nota: Nos aplicativos do AIR baseados em SWF, os arquivos de origem do ActionScript devem ser compilados com o sinalizador -debug. (No Flash Professional, marque a opo Permitir depurao no dilogo de Configuraes de publicao.)
1 Inicie o FDB. O programa FDB pode ser encontrado no diretrio bin do Flex SDK.
4 Usando os comandos do FDB, defina pontos de interrupo como desejado. 5 Digite: continue [Enter]
Se um aplicativo do AIR for baseado em SWF, o depurador s controlar a execuo do cdigo ActionScript. Se o aplicativo do AIR for baseado em HTML, o depurador s controlar a execuo do cdigo JavaScript. Para executar ADL sem conectar-se ao depurador, inclua a opo -nodebug.
adl myApp.xml -nodebug
Para obter informaes bsicas sobre comandos do FDB, execute o comando help:
<fdb>help [Enter]
Para obter detalhes sobre comandos FDB, consulte Using the command-line debugger commands na documentao do Flex.
Adobe Flex Builder; consulte Packaging AIR applications with Flex Builder. Adobe Flash Builder; consulte Packaging AIR applications with Flash Builder. Adobe Flash Professional, consulte Publicao para Adobe AIR. Adobe Dreamweaver, consulte Criao de um aplicativo do AIR em Dreamweaver.
Todos os arquivos do instalador do AIR devem ser assinados usando um certificado digital. O instalador do AIR usa a assinatura para verificar que seu arquivo de aplicativo no foi alterado desde que voc o assinou. Voc pode usar um certificado de assinatura de cdigo de uma autoridade de certificao ou um certificado autoassinado. Quando voc usa um certificado emitido por uma autoridade de certificao confivel fornece aos usurios do seu aplicativo alguma garantia da sua identidade como editor. A caixa de dilogo da instalao reflete o fato de que sua identidade verificada pela autoridade de certificao:
53
Quando voc usa um certificado autoassinado, os usurios no podem verificar sua identidade como signatrio Um certificado autoassinado tambm enfraquece a garantia de que o pacote no foi alterado. (Isto ocorre porque um arquivo de instalao legtimo pode ter sido substitudo por uma falsificao antes de chegar ao usurio.) A caixa de dilogo da instalao reflete o fato de que a identidade do publicador no pode ser verificada. Os usurios assumem um risco de segurana maior quando instalam o seu aplicativo.
Voc pode empacotar e assinar um arquivo AIR em uma nica etapa usando o comando -package do ADT. Voc tambm pode criar um pacote intermedirio, no assinado com o comando -prepare e assinar o pacote intermedirio com o comando -sign em uma etapa separada. Nota: Verses do Java 1.5 e acima no aceitam caracteres ASCII superiores nas senhas usadas para proteger arquivos de certificado PKCS12. Ao criar ou exportar seu cdigo assinando um arquivo de certificado, use apenas caracteres ASCII comuns na senha. Ao assinar o pacote de instalao, o ADT automaticamente entra em contato com um servidor de autoridade com carimbo de data/hora para verificar a hora. As informaes de carimbo de data/hora esto includas no arquivo AIR. Um arquivo AIR que inclui um carimbo de data/hora verificado pode ser instalado em qualquer momento do futuro. Se o ADT no puder se conectar ao servidor de carimbo de data/hora, o empacotamento ser cancelado. Voc pode substituir a opo de carimbo de data/hora, mas sem um carimbo de data/hora, um aplicativo do AIR deixa de poder ser instalado aps o certificado usado para assinar o arquivo de instalao expirar.
54
Se voc estiver criando um pacote para atualizar um aplicativo do AIR existente, o pacote dever ser assinado com o mesmo certificado do aplicativo original. Se o certificado original foi renovado ou expirou nos ltimos 180 dias ou se voc quiser mudar para um novo certificado, poder aplicar uma assinatura de migrao. Uma assinatura de migrao envolve a assinatura do arquivo AIR do aplicativo tanto com o certificado novo quanto com o antigo. Use o comando -migrate para aplicar a assinatura de migrao como descrito em Comando migrate do ADT na pgina 174. Importante: dado um perodo de graa improrrogvel de 180 dias para solicitar a assinatura de migrao depois da expirao do certificado original. Sem uma assinatura de migrao, os usurios existentes devero instalar seus aplicativos existentes antes de instalar a nova verso do desenvolvedor. O perodo de graa abrange somente aplicativos que especificam o AIR verso 1.5.3 ou superior no namespace de descrio do aplicativo. No existe perodo de graa destinado a verses do runtime do AIR. Antes do AIR 1.1, as assinaturas de migrao no eram suportadas. Voc deve fazer um pacote que englobe um aplicativo e um SDK da verso 1.1 ou superior para solicitar uma assinatura de migrao. As aplicaes implementadas com arquivos AIR so conhecidas como aplicaes de perfil de desktop. Voc no poder usar ADT para empacotar um programa de instalao nativo para um aplicativo do AIR se o arquivo de descrio do aplicativo no suportar o perfil de desktop. Voc pode restringir este perfil usando o elemento supportedProfiles no arquivo de descrio do aplicativo. Consulte Perfis de dispositivo na pgina 245 e supportedProfiles na pgina 239. Nota: As configuraes no arquivo do descritor do aplicativo determinam a identidade de um aplicativo do AIR e seu caminho de instalao padro. Consulte Arquivos descritores do aplicativo do AIR na pgina 206. IDs do publicador Como no AIR 1.5.3, os IDs de publicador so deprecados. Os novos aplicativos (originalmente publicados com o AIR 1.5.3 ou superior) no precisam e no devem especificar um ID de publicador. Ao atualizar os aplicativos publicados com verses mais antigas do AIR, voc deve especificar o ID do publicador original no arquivo de descrio do aplicativo. Do contrrio, a verso instalada do seu aplicativo e a verso atualizada sero tratados como aplicativos diferentes. Se voc usar um ID diferente ou omitir a marca publisherID, um usurio dever desinstalar a verso antiga antes de instalar a verso nova. Para descobrir o ID do editor original, localize o arquivopublisherid no subdiretrio META-INF/AIR onde o aplicativo original est instalado. A sequncia de caracteres no arquivo o ID do editor. O descritor o aplicativo deve especificar o runtime AIR 1.5.3 (ou posterior) na declarao de espao de nome do arquivo descritor do aplicativo para especificar o ID do editor manualmente. Para aplicativos antes do AIR 1.5.3 ou que so publicados com o SDK AIR 1.5.3, enquanto especificam um verso mais antiga do AIR no namespace de descrio do aplicativo um ID de publicador computado com base no certificado de assinatura. Este ID usado com o ID do aplicativo para determinar a identidade de um aplicativo. O ID do editor, quando existir, utilizado para os seguintes fins:
Como verificar se um arquivo AIR uma atualizao em vez de um novo aplicativo a ser instalado Como parte da chave de criptografia o armazenamento local criptografado Como parte o caminho para o diretrio de armazenamento do aplicativo Como parte da sequncia de caracteres de conexo para conexes locais
Como parte da sequncia de caracteres de identidade utilizada para chamar o aplicativo com a API interna de navegador AIR
55
Antes do AIR 1.5.3, o ID de publicador de um aplicativo podia ser alterado se voc assinasse uma atualizao do aplicativo com uma assinatura de migrao que usasse um certificado novo ou renovado. Quando um ID de editor muda, o comportamento de qualquer recurso AIR dependente do ID tambm muda. Por exemplo, os dados existentes no armazenamento local criptografado no podem mais ser acessados e qualquer instncia do Flash ou AIR que cria uma conexo local para o aplicativo deve utiizar o novo ID na sequncia de caracteres de conexo. NO AIR 1.5.3 ou superior, o ID de publicador no se baseia no certificado de assinatura, mas atribudo exclusivamente quando a marca publisherID includa na descrio do aplicativo. Um aplicativo no poder ser atualizado se o ID de publicador especificado para o pacote AIR atualizado no corresponder ao ID de publicador atual.
O exemplo pressupe que o caminho para a ferramenta ADT est na definio do caminho do shell de linha de comando. (Consulte Variveis de ambiente do caminho na pgina 304 para obter ajuda.) Voc deve executar o comando do diretrio que contm os arquivos do aplicativo. Os arquivos do aplicativo no exemplo so myApp-app.xml (o arquivo descritor do aplicativo), myApp.swf, e um diretrio de cones. Quando voc executa o comando, como demonstrado, a ADT solicitar a senha do armazenamento de chaves. (Os caracteres da senha digitada no so sempre exibidos; basta pressionar Enter quando terminar de digitar.) Criao de um pacote AIR a partir de um arquivo AIRI Voc pode assinar um arquivo AIRI para criar um pacote AIR instalvel:
adt -sign -storetype pkcs12 -keystore ../codesign.p12 myApp.airi myApp.air
56
Os aplicativos instalados com um programa de instalao de aplicativo nativo so conhecidos como aplicativos de perfil desktop estendido. Voc no poder usar ADT para empacotar um programa de instalao nativo para um aplicativo do AIR se o arquivo de descrio do aplicativo no suportar o perfil de desktop estendido. Voc pode restringir este perfil usando o elemento supportedProfiles no arquivo de descrio do aplicativo. Consulte Perfis de dispositivo na pgina 245 e supportedProfiles na pgina 239. Voc pode criar uma verso de instalao nativa do aplicativo do AIR de duas maneiras bsicas:
Voc pode criar o intalador nativo com base no arquivo de descrio do aplicativo e em outros arquivos de origem.
(Outros arquivos de origem podem incluir arquivos SWF, arquivos HTML e outros ativos.)
Voc pode criar o intalador nativo com base em um arquivo AIR ou com base em um arquivo AIRI.
obrigatrio usar ADT no mesmo sistema operacional do arquivo de instalao nativo que voc deseja gerar. Portanto, para criar u arquivo EXE para Windows, execute ADT no Windows. Para criar um arquivo DMG para o Mac OS, execute ADT no Mac OS. Para criar um arquivo DEB ou RPG para Linux, execute o ADT a partir do SDK do Air 2.6 no Linux. Quando voc cria um programa de instalao nativo para distribuir um aplicativo do AIR, o aplicativo ganha estas capacidades:
Ele pode lanar e interagir com processos nativos usando a classe NativeProcess. Para mais detalhes, consulte um
dos seguintes tpicos:
Comunicao com processos nativos do AIR (para desenvolvedores em ActionScript) Communicating with native processes in AIR (para desenvolvedores em HTML) Ele poder usar extenses nativas. Ele pode usar o mtodo File.openWithDefaultApplication() para abrir qualquer arquivo que tenha o
aplicativo de sistema padro definido para abri-lo, independentemente do tipo do seu arquivo. (Existem restries para aplicativos que no so instalados com um programa de instalao nativo. Para saber detalhes, consulte entrada correspondente entrada File.openWithDefaultApplication() na referncia de linguagem.) No entanto, quando compactado como um instalador nativo, o aplicativo perde alguns dos benefcios do formato de arquivo do AIR. Um nico arquivo j no pode ser distribudo a todos os computadores desktop. A funo de atualizao incorporada (bem como a estrutura do atualizador) no funciona. Quando o usurio clica duas vezes no arquivo de instalao nativo, isto instala o aplicativo do AIR. Se a verso requerida do ADOBE AIR ainda no estiver instalada na mquina, o programa de instalao baixa a verso da rede e a instala primeiro. Se no houver conexo com a rede da qual se possa obter a verso correta do Adobe AIR (se necessrio), a instalao falhar. Igualmente, a instalao falhar se o sistema operacional no for suportado no Aobe AIR2. Nota: Se voc desejar que um arquivo seja executvel no aplicativo instalado, certifique-se de que ele executvel no sistema de arquivos, durante a criao do pacote do aplicativo. (No Mac e Linux, voc pode utilizar o comando chmod para definir o indicador de executvel, se necessrio.) Como criar um programa de instalao nativo a partir de arquivos-fonte do aplicativo Para criar um programa de instalao nativo a partir de arquivos-fonte do aplicativo, use o comando -package com a seguinte sintaxe (em uma linha de comando simples):
57
adt -package AIR_SIGNING_OPTIONS -target native [WINDOWS_INSTALLER_SIGNING_OPTIONS] installer_file app_xml [file_or_dir | -C dir file_or_dir | -e file dir ...] ...
Esta sintaxe semelhante sintaxe para empacotar um arquivo AIR (sem um programa de instalao nativo) No entanto, existem algumas diferenas:
native ao comando. (Se voc especificar -target air, ento o ADT ir gerar um arquivo AIR em vez de um arquivo de instalao nativo.)
Voc especifica o arquivo DMG ou EXE de destino como o installer_file. Opcionalmente, no Windows voc pode adicionar um segundo conjunto de opes de assinatura, indicado como
[WINDOWS_INSTALLER_SIGNING_OPTIONS] na listagem de sintaxe. No Windows, alpem de assinar o arquivo AIR,
voc pode assinar o arquivo Windows Installer. Use o mesmo tipo de certificado e sintaxe de opo de assinatura que usaria para assinar o arquivo AIR (consulte Opes de assinatura de cdigo ADT na pgina 180). Voc pode utilizar o mesmo certificado para assianr o arquivo AIR e o arquivo de instalao ou pode especificar certificados diferentes. Quano um usurio faz um download da Web de um arquivo Windows Installer assinado, o Windows identifica a origem do arquivo com base no certificado. Para obter mais detalhes sobre opes do ADT alm de outra opo -target, consulte AIR Developer Tool (ADT) na pgina 166. O exemplo a seguir cria um arquivo DMG (um arquivo de instalao nativo para o sistema operacional Mac):
adt -package -storetype pkcs12 -keystore myCert.pfx -target native myApp.dmg application.xml index.html resources
O exemplo a seguir cria um arquivo EXE (um arquivo de instalao nativo para o sistema operacional Windows):
adt -package -storetype pkcs12 -keystore myCert.pfx -target native myApp.exe application.xml index.html resources
58
Criao de um instalador nativo para um aplicativo que utilize extenses nativas possvel criar um instalador nativo dos arquivos de origem para o aplicativo e os pacotes de extenso nativa que o aplicativo exige. Use o comando -package com a seguinte sintaxe (em uma nica linha de comando):
adt -package AIR_SIGNING_OPTIONS -migrate MIGRATION_SIGNING_OPTIONS -target native [WINDOWS_INSTALLER_SIGNING_OPTIONS] installer_file app_xml -extdir extension-directory [file_or_dir | -C dir file_or_dir | -e file dir ...] ...
Essa sintaxe a mesma usada para empacotar um instalador nativo, com duas opes adicionais. Use a opo -extdir extension-directory para especificar o diretrio que contm os arquivos ANE (extenses nativas) que o aplicativo utiliza. Use o sinalizador -migrate opcional e os parmetros MIGRATION_SIGNING_OPTIONS para assinar uma atualizao de um aplicativo com uma assinatura de migrao quando o certificado de assinatura de cdigo principal for diferente do usado pela verso anterior. Para obter mais informaes, consulte Assinatura de uma verso atualizada de um aplicativo do AIR na pgina 201. Para obter detalhes sobre as opes do ADT, consulte aAIR Developer Tool (ADT) na pgina 166. O seguinte exemplo cria um arquivo DMG (um arquivo de instalador nativo para o Mac OS) para um aplicativo que utilize extenses nativas:
adt -package -storetype pkcs12 -keystore myCert.pfx -target native myApp.dmg application.xml -extdir extensionsDir index.html resources
Como criar um programa de instalao nativo com base em um arquivo AIR ou em um arquivo AIRI. Voc pode usar ADT para gerar um arquivo de intalao nativo com base em um arquivo AIR ou em um arquivo AIRI. Para criar um programa de instalao nativo com base em um arquivo AIR, use o comando -package do ADT com a seguinte sintaxe (em uma linha de comando simples):
adt -package -target native [WINDOWS_INSTALLER_SIGNING_OPTIONS] installer_file air_file
Esta sintaxe semelhante sintaxe para criar um programa de instalao nativa com base em arquivos-fonte para o aplicativo do AIR. No entanto, existem algumas diferenas:
Voc especifica um arquivo AIR como origem, em vez de um arquivo de descrio de aplicativo e outros arquivos
de origem para o aplicativo do AIR.
No especifique opes de assinatura para o arquivo AIR, porque ele j est assinado.
Para criar um programa de instalao nativo com base em um arquivo AIRI, use o comando -package do ADT com a seguinte sintaxe (em uma linha de comando simples):
59
Esta sintaxe semelhante sintaxe para criar um programa de instalao nativo com base em um arquivo AIR. No entanto, existem algumas diferenas:
Como origem, voc deve especificar um arquivo AIRI. Voc deve especificar opes de assinatura para o aplicativo do AIR de destino.
O exemplo a seguir cria um arquivo DMG (um arquivo de instalao nativo para o sistema operacional Mac) com base em um arquivo AIR:
adt -package -target native myApp.dmg myApp.air
O exemplo a seguir cria um arquivo EXE (um arquivo de instalao nativo para o sistema operacional Windows) com base em um arquivo AIR:
adt -package -target native myApp.exe myApp.air
O exemplo a seguir cria um arquivo EXE (com base em um arquivo AIR) e o assina:
adt -package -target native -storetype pkcs12 -keystore myCert.pfx myApp.exe myApp.air
O exemplo a seguir cria um arquivo DMG (um arquivo de instalao nativo para o sistema operacional Mac) com base em um arquivo AIRI:
adt -storetype pkcs12 -keystore myCert.pfx -package -target native myApp.dmg myApp.airi
O exemplo a seguir cria um arquivo EXE (um arquivo de instalao nativo para o sistema operacional Windows) com base em um arquivo AIRI:
adt -storetype pkcs12 -keystore myCert.pfx -package -target native myApp.exe myApp.airi
O exemplo a seguir cria um arquivo EXE (com base em um arquivo AIRI) e assina-o com uma assinatura nativa do Windows e um AIR:
adt -package -storetype pkcs12 -keystore myCert.pfx -target native -storetype pkcs12 -keystore myCert.pfx myApp.exe myApp.airi
60
No necessrio o acesso Internet para a instalao O aplicativo isolado das atualizaes de runtime As empresas podem certificar a combinao do aplicativo e do runtime especficos. Suporta o tradicional modelo de implementao do software No necessria a redistribuio separada de runtime Pode utilizar a API do NativeProcess Pode utilizar extenses nativas Pode utilizar a funo File.openWithDefaultApplication() sem restrio Pode ser executado de um USB ou disco ptico sem a instalao
Desvantagens Reparos importantes de segurana no esto automaticamente disponveis para os usurios quando a Adobe publica um patch de segurana
No pode utilizar o formato de arquivo .air Voc deve criar seu prprio instalador, se necessrio Sistema e API de atualizao do AIR no so suportados A API embutida no navegador do AIR para instalar e lanar um aplicativo do AIR a partir de uma pgina da web
no suportada
No Windows, o registro de arquivo deve ser feito pelo instalador Maior memria do disco do aplicativo
Esse comando cria o conjunto em um diretrio denominado myApp. Esse diretrio contm os arquivos do aplicativo, alm dos arquivos de runtime. possvel executar o programa diretamente da pasta. No entanto, para criar uma entrada de menu do programa , tipos de arquivos de registro ou o controlador do esquema URI, voc deve criar um programa de instalao que defina as entradas de registro necessrias. O AIR SDK no inclui as ferramentas para criar tais instaladores, mas vrias opes terceirizadas esto disponveis, incluindo ambos os kits de ferramentas do instalador de cdigo aberto gratuito e comercial.
61
possvel assinar o executvel nativo no Windows, especificando um segundo conjunto de opes de assinatura aps a entrada -target bundle na linha de comando. Essas opes de assinatura identificam a chave privada e o certificado associado a serem utilizados ao aplicar a assinatura nativa do Windows. (Um certificado de assinatura de cdigo do AIR geralmente pode ser utilizado.) Somente o executvel primrio assinado. Quaisquer executveis adicionais compactados com o aplicativo no so assinados atravs desse processo. Associao do tipo de arquivo Para associar o aplicativo com os tipos de arquivo pblicos ou customizados no Windows, o programa de instalao dever definir as entradas de registro adequadas. Os tipos de arquivos tambm devero estar listados no elemento fileTypes do arquivo descritor do aplicativo. Para obter mais informaes sobre os tipos de arquivo do Windows, consulte Biblioteca MSDN: Tipos de Arquivo e Associaes de Arquivo Registro do controlador URI Para o aplicativo manipular o lanamento de um URL utilizando um determinado esquema de URI, o instalador dever definir as entradas de registro necessrias. Para obter mais informaes sobre o registro de um aplicativo para efetuar um esquema de URI, consulte Biblioteca MSDN: Registro de um Aplicativo em um Protocolo de URL
Esse comando cria o conjunto de aplicativo nomeado myApp.app. O conjunto contm os arquivos para o aplicativo, alm dos arquivos de runtime. possvel executar o aplicativo clicando duas vezes no cone do myApp.app e installo arrastando-o at um local apropriado, como a pasta Aplicativos. No entanto, para registrar tipos de arquivos ou controladores de esquemas de URI, necessrio editar o arquivo da lista de propriedades dentro do pacote do aplicativo. Para a distribuio, voc poder criar um arquivo de imagem de disco (.dmg). O Adobe AIR SDK no fornece as ferramentas para criar um arquivo dmg para um conjunto de runtime cativo. Associao do tipo de arquivo Para associar o aplicativo aos tipos de arquivos pblicos ou customizados no Mac OS X, necessrio editar o arquivo info.plist no conjunto para definir as propriedades de CFBundleDocumentTypes. Consulte Biblioteca do Desenvolvedor do Mac OS X: Referncias de Informao da Chave da Lista de Propriedades, CFBundleURLTypes. Registro do controlador URI Para o aplicativo executar o lanamento de um URL utilizando um determinado esquema de URI, necessrio editar o arquivo info.plist no conjunto para definir as propriedades de CFBundleURLTypes Consulte Biblioteca do Desenvolvedor do Mac OS X: Referncias de Informao da Chave da Lista de Propriedades, CFBundleDocumentTypes.
62
Instala o aplicativo no diretrio Arquivos de Programas Cria um atalho na rea de trabalho para o aplicativo Cria um atalho no menu Iniciar Adiciona uma entrada para o aplicativo no Painel de Controle Adicionar ou Remover Programas
No Mac OS, por padro, o aplicativo adicionado ao diretrio Aplicativos. Se o aplicativo j estiver instalado, o instalador oferece ao usurio a opo de abrir a verso existente do aplicativo ou atualizar para a verso no arquivo AIR obtido por download. O instalador identifica o aplicativo usando o ID do aplicativo e o ID do editor no arquivo AIR.
3 Quando a instalao estiver concluda, clique em Concluir.
No Mac OS, para instalar uma verso atualizada de um aplicativo, o usurio precisa de privilgios adequados do sistema para instalar no diretrio do aplicativo. No Windows e no Linux, um usurio precisa de privilgios administrativos. Um aplicativo tambm pode instalar uma verso nova via ActionScript ou JavaScript. Para obter mais informaes, consulte Atualizao de aplicativos do AIR na pgina 258.
63
Depois que o aplicativo do AIR est instalado, um usurio simplesmente clica duas vezes no cone do aplicativo para execut-lo, como qualquer outro aplicativo de rea de trabalho.
No Windows, clique duas vezes no cone do aplicativo (que est instalado na rea de trabalho ou em uma pasta) ou
selecione o aplicativo no menu Iniciar.
No Linux, clique duas vezes no cone do aplicativo (que est instalado na rea de trabalho ou em uma pasta) ou
selecione o aplicativo no menu aplicativos.
No Mac OS, clique duas vezes no aplicativo na pasta em que ele foi instalado. O diretrio de instalao padro o
diretrio /Aplicativos. Nota: Somente os aplicativos do AIR desenvolvidos para o AIR 2.6 ou anterior podem ser instalados no Linux. O recurso de instalao direta do AIR permite que um usurio instale um aplicativo do AIR clicando em um link em uma pgina da Web. O recurso de invocao do navegador do AIR permite que um usurio execute um aplicativo do AIR instalado clicando em um link em uma pgina da Web. Esses recursos so descritos na seo a seguir.
Instalar silenciosamente o runtime do Adobe AIR usando ferramentas como Microsoft SMS, IBM Tivoli, ou
qualquer ferramenta de implantao que permita instalaes silenciosas que usem um inicializador
Instalar silenciosamente o aplicativo do AIR usando as mesmas ferramentas usadas para implantar o runtime
Para obter mais informaes, consulte o Guia do administrador do Adobe AIR (http://www.adobe.com/go/learn_air_admin_guide_br).
64
Data\Adobe\AIR\logs\Install.log
65
Configurao do Android
No necessria nenhuma instalao especial para o Android no AIR 2.6+. A ferramenta ADB do Android est includa no SDK do AIR (na pasta lib/android/bin). O AIR SDK usa a ferramenta ADB para instalar, desinstalar e executar os pacotes de aplicativos no dispositivo. Voc tambm pode usar ADB para ver os logs do sistema. Para criar e executar um emulador do Android voc deve baixar o Android SDK separado. Se o seu aplicativo adicionar elementos ao elemento <manifestAdditions> no descritor de aplicativo que a verso atual do AIR no reconhea como vlida, voc dever instalar uma verso mais recente do SDK do Android. Defina a varivel de ambiente AIR_ANDROID_SDK_HOME ou o parmetro da linha de comando -platformsdk ao caminho de arquivo do SDK. A ferramenta de empacotamento do AIR, ADT, usa esse SDK para validar as entradas no elemento <manifestAdditions>.
66
No AIR 2.5, voc deve baixar uma cpia separada do Android SDK da Google. Voc pode definir a varivel de ambiente AIR_ANDROID_SDK_HOME para fazer referncia pasta do Android SDK. Se voc no definir esta varivel de ambiente, deve especificar o caminho para o Android SDK no argumento -platformsdk na linha de comando do ADT.
Configurao do iOS
Para instalar e testar um aplicativo iOS em um dispositivo e distribu-lo voc deve aderir ao programa Apple iOS Developer (que um servio pago). Depois de entrar no programa de desenvolvedor do iOS voc pode acessar o Portal de aprovisionamento do iOS onde poder obter os itens a seguir e arquivos da Apple que so necessrios para instalar um aplicativo em um dispositivo para testes e para posterior distribuio. Estes itens e arquivos incluem:
Paul Trani: Dicas e Truques para o Desenvolvimento no Mobile Flash roguish: Aplicativo de Teste de GPU do AIR para Mobile
67
Jonathan Campos: Tcnicas de Otimizao dos Aplicativos AIR for Android Charles Schulze: Desenvolvimento de Jogos no AIR 2.6: iOS incluso
Entrada de texto
Muitos dispositivos usam um teclado virtual para entrada de texto. Teclados virtuais ocultam parte da tela e muitas vezes so complicados de usar. Evite contar com eventos de teclado (exceto teclas de funo). Considere a implantao de alternativas para usar campos de texto de entrada. Por exemplo, no necessrio um campo de texto para o usurio digitar um valor numrico. possvel fornecer dois botes para aumentar ou diminuir o valor.
Teclas de funo
Os dispositivos mveis incluem um nmero varivel de teclas de funo. As teclas de funo so botes programveis para funes diferentes. Siga as convenes de plataforma para essas teclas em seu aplicativo.
68
Escurecimento da tela
O AIR no evita automaticamente o escurecimento da tela enquanto o vdeo reproduzido. Voc pode usar a propriedade systemIdleMode do objeto AIR NativeApplication para controlar se o aparelho entrar no modo de economia de energia. (Em algumas plataformas voc deve solicitar as permisses adequadas para que esse recurso funcione.)
Chamadas de telefone
O runtime de udio silencia automaticamente quando o usurio faz ou recebe um telefonema. No Android voc deve definir a permisso READ_PHONE_STATE no descritor do aplicativo se este reproduz udio enquanto est no plano de fundo. Caso contrrio, o Android impede o runtime de detectar chamadas telefnicas e de silenciar o udio automaticamente. Consulte Permisses do Android na pgina 77.
Destinos de ocorrncias
Considere o tamanho dos destinos de ocorrncia ao projetar botes e outros elementos da interface do usurio que o usurio pressiona. Aumente esses elementos o suficiente para serem ativados confortavelmente com o dedo na tela de toque. Alm disso, certifique-se de que existe espao suficiente entre os destinos. A rea de destino deve atingir cerca de 44 pixels por 57 pixels em cada lado de uma tela comum de celular de alta dpi.
69
Diretrizes da Apple para aplicativos iOS fornecem regras especficas sobre os locais de armazenamentos que devem ser usados para arquivos em vrias situaes. Por exemplo, uma diretriz que somente arquivos que contenham dados inseridos pelo usurio ou dados que no possam ser recuperados ou baixados novamente devem ser armazenados em um diretrio designado para backup remoto. Para obter informaes sobre como cumprir as diretrizes da Apple para backup de arquivos e armazenamento em cache, consulte Controlar o backup de arquivos e o armazenamento em cache.
Componentes da UI
A Adobe desenvolveu uma verso otimizada para dispositivos mveis da estrutura Flex. Para obter mais informaes, consulte Desenvolvimento de aplicativos mveis com o Flex e o Flash Builder. Tambm esto disponveis projetos de componentes comunitrios adequados para aplicativos mveis. Isso inclui:
Controles de difuso de IU para Starling de Josh Tynjala Verso da Minimal Comps com visual personalizado de Derrick Grigg Componentes as3flobile de Todd Anderson
Recursos nativos
AIR 3.0+ Muitas plataformas mveis oferecem recursos que ainda no esto acessveis por meio da API AIR padro. Comeando no AIR 3, voc pode estender o AIR com suas prprias bibliotecas de cdigo nativas. Essas bibliotecas de extenso nativas podem acessar recursos disponveis pelo sistema operacional ou at mesmo especficas de um determinado dispositivo. As extenses nativas podem ser criadas em C no iOS e em Java ou C no Android. Para obter informaes sobre o desenvolvimento de extenses nativas, consulte Apresentao de extenses nativas para o Adobe AIR.
70
Escreva o cdigo ActionScript ou MXML. Criar um arquivo descritor do aplicativo do AIR (usando o namespace, 2.5 ou superior). Compile o aplicativo. Compacte o aplicativo como um pacote Android (.apk). Instale o runtime do AIR em um dispositivo ou emulador do Android (se voc estiver usando um runtime externo;
o runtime cativo o padro do AIR 3.7 e posteriores).
Instale o iTunes. Gerar as IDs e os arquivos de desenvolvedor necessrios no Portal de aprovisionamento Apple iOS. Estes itens
incluem:
Converter o certificado de desenvolvimento e a chave privada para um arquivo de armazenamento de chave P12. Escreva o cdigo MXML ou ActionScript do aplicativo. Compile o aplicativo com um compilador ActionScript ou MXML. Criar arte de cone e de tela inicial do aplicativo. Crie o descritor do aplicativo (namespace, usando o 2.6 ou superior).
71
Compacte o arquivo IPA usando ADT. Use o iTunes para colocar o seu perfil de aprovisionamento no dispositivo de teste. Instale e teste o aplicativo em seu dispositivo iOS. Voc pode usar o iTunes ou o ADT por USB (suporte a USB no
AIR 3.4 e superior) para instalar o arquivo IPA. Assim que o aplicativo do AIR estiver concludo, voc pode compact-lo novamente usando um certificado de distribuio e perfil de aprovisionamento. Ele est pronto para enviado Apple App Store.
Configuraes comuns
Vrias configuraes de descritor de aplicativo so importantes para todos os aplicativos de dispositivo mvel.
Nota: O suporte para dispositivos iOS 3 fornecido pelo Packager para iPhone SDK, com base nos AIR 2.0 SDK. Para obter informaes sobre a criao de aplicativos AIR for iOS 3, consulte Criao de aplikcativos para o iPhone. O AIR 2.6 SDK (e posteriores) suporta iOS 4 e posteriores nos dispositivos iPhone 3Gs, iPhone 4 e iPad.
72
Identidade do aplicativo
Diversas configuraes 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>
Alm disso, se o ID no for um nome de pacote vlido no sistema operacional Android, convertido para um nome vlido. Caracteres com hfen so alterados para dgitos de sublinhado e de entrelinha em qualquer componente de ID que seja precedida por um "A" maisculo. 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 no 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 anlise 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 contm um ID da distribuio do conjunto seguida por um identificador do conjunto. O ID da distribuio de conjunto uma sequncia de caracteres como, por exemplo, 5RM86Z4DJM, que a Apple atribui ID de aplicativo. O identificador de conjunto contm o nome em estilo de domnio 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 sequncia vlida. Por exemplo:
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.
73
Verso do aplicativo
No AIR 2.5 e posterior, especifique a verso do aplicativo no elemento versionNumber. O elemento version no pode mais ser usado. Ao especificar um valor para versionNumber, voc deve usar uma sequncia de at trs nmeros separados por pontos, como: "0.1.2". Cada segmento do nmero de verso pode ter at trs dgitos. (Em outras palavras, "999.999.999" o maior nmero de verso autorizada.) Voc no precisa incluir todos os trs segmentos do nmero; "1" e "1.0" so nmeros de verso legal. Voc tambm pode especificar um rtulo para a verso com o elemento versionLabel. Ao adicionar um rtulo de verso este exibido em vez do nmero da verso em lugares como a tela de informaes dos aplicativos Android. Uma etiqueta de verso deve ser especificada para aplicativos distribudos atravs do Android Market. Se voc no especificar um valor versionLabel no descritor de aplicativo do AIR, o valor versionNumber atribudo ao campo de rtulo da verso 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 frmula: a*1000000
+ b*1000 + c, onde a, b, e c so os componentes do nmero da verso do AIR: a.b.c.
Voc deve incluir o arquivo no pacote AIR (usando ADT ou sua IDE). Simplesmente fazer referncia do nome no descritor do aplicativo no faz com que o arquivo seja includo no pacote de maneira automtica.
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 orientaes).
<aspectRatio>landscape</aspectRatio>
autoOrients Especifica se o palco deve mudar automaticamente a orientao quando o usurio gira o aparelho
ou executa outro gesto relacionado orientao, como abertura ou fechamento de um teclado deslizante. Se false, que o padro, o palco no mudar a orientao com o dispositivo.
<autoOrients>true</autoOrients>
depthAndStencil Especifica o uso do buffer de profundidade ou de estncil. Normalmente, voc usa esses
buffers ao trabalhar com contedo 3D.
74
<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 grfico
(GPU) ou a unidade central de processamento (CPU) principal. Em geral, a renderizao da GPU aumentar a velocidade de renderizao, mas alguns recursos, como certos modos de mesclagem e filtros PixelBender, no esto disponveis no modo de GPU. Alm disso, diversos dispositivos e drivers de dispositivo diferentes tm diferentes capacidades e limitaes de GPU. Voc sempre deve testar seu aplicativo em uma ampla variedade de dispositivos possveis, especialmente quando usando o modo de GPU. Voc pode definir o modo de renderizao como gpu, cpu, direct ou auto. O valor padro auto, que no momento volta para o modo de cpu. Nota: Para aproveitar a acelerao GPU do contedo Flash com o AIR para plataformas mveis, o Adobe recomenda que voc use renderMode="direct", o Stage3D e no 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: No possvel usar renderMode="direct" para aplicativos executados em segundo plano. As limitaes do modo de GPU so as seguintes:
A estrutura do Flex no suporta o modo de renderizao de GPU. No existe suporte para filtros Mesclagens PixelBender e preenchimentos no esto disponveis No h suporte para os seguintes modos de mistura: camada, alfa, apagar, sobrepor, realar, clarear e escurecer No recomendado o uso do modo de renderizao pela GPU em um aplicativo que reproduz vdeo. No modo de renderizao pela GPU, os campos de texto no so devidamente movidos para um local visvel
quando o teclado virtual aberto. Para assegurar que o campo de texto seja visvel enquanto o usurio insere texto, use a propriedade softKeyboardRect do palco e os eventos de teclado virtual para mover o campo de texto para a rea visvel.
Se um objeto de exibio no puder ser renderizado pela GPU, ele no exibido. Por exemplo, se um filtro for
aplicado para um objeto de exibio, este no exibido. Nota: A implementao de GPU para iOS no AIR 2.6+ muito diferente da usada na verso AIR 2.0 anterior. Diferentes consideraes de otimizao aplicveis.
75
Perfis disponveis
Voc pode adicionar o elemento supportedProfiles para especificar com quais perfis de dispositivo seu aplicativo compatvel. Use o perfil mobileDevice para dispositivos mveis. Ao executar o aplicativo com o Adobe Debug Launcher (ADL), este usa o primeiro perfil da lista como o perfil ativo. Voc tambm pode usar o sinalizador profile ao executar o ADL para selecionar um perfil especfico 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 padro ativo neste caso. Para especificar que o aplicativo compatvel tanto com os perfis desktop quanto com o dispositivo mvel, e que normalmente voc quer testar o aplicativo no perfil mvel, adicione o seguinte elemento:
<supportedProfiles>mobileDevice desktop</supportedProfiles>
O elemento extensionID tem o mesmo valor que o elemento id no arquivo descritor de extenso. O arquivo descritor da extenso um arquivo XML chamado extension.xml. Ela est compactada no arquivo ANE recebido do desenvolvedor da extenso nativa.
Visto que pan o valor padro, a omisso do elemento softKeyboardBehavior tambm ativa o comportamento automtico do teclado. Nota: Ao usar tambm renderizao pela GPU o comportamento de deslocamento no compatvel.
76
Configuraes do Android
Na plataforma Android voc pode usar o elemento android do descritor do aplicativo para adicionar informaes ao manifesto do aplicativo do Android, que um arquivo de propriedades do aplicativo usado pelo sistema operacional Android. O ADT gera automaticamente o arquivo Manifest.xml Android quando voc cria o pacote APK. O AIR define algumas propriedades para os valores necessrios para determinados recursos funcionarem. Outras propriedades definidas na seo android do descritor do aplicativo do AIR so adicionadas seo correspondente do arquivo Manifest.xml. Nota: Para a maioria dos aplicativos AIR voc deve definir as permisses do Android necessrias para seu aplicativo no elemento android, mas geralmente no precisa definir as outras propriedades. Voc s pode definir os atributos que aceitam valores boolianos, inteiros ou sequncias de caracteres. No est disponvel a definio de referncias para recursos do pacote de aplicativo. Nota: A verso mnima obrigatria do SDK para o runtime deve ser superior 9. Voc deve certificar-se de que o Manifesto inclua <uses-sdk android:minSdkVersion="9"></uses-sdk>.
android:label android:icon
elemento de aplicativo No possvel definir os seguintes atributos do elemento de aplicativo:
77
Permisses do Android
O modelo de segurana do Android exige que cada aplicativo pea autorizao para utilizar recursos que tenham implicaes de segurana ou privacidade. Essas permisses devem ser especificadas quando o aplicativo compactado, e no podem ser alteradas em runtime. O sistema operacional Android informa ao usurio quais permisses um aplicativo solicita quando o usurio o instala. Se a permisso necessria para um recurso no for solicitada, o sistema operacional Android pode gerar uma exceo quando o aplicativos acessa o recurso, mas no garantida uma exceo. Excees so transmitidas pelo runtime ao seu aplicativo. No caso de falha silenciosa, uma mensagem de falha de permisso adicionada ao log do sistema Android. No AIR, voc pode especificar as permisses do Android dentro do elemento Android do descritor do aplicativo. O formato a seguir usado para adicionar as permisses (onde PERMISSION_NAME o nome de uma permisso Android):
<android> <manifestAdditions> <![CDATA[ <manifest> <uses-permission android:name="android.permission.PERMISSION_NAME" /> </manifest> ]]> </manifestAdditions> </android>
As instrues de permisses por uso dentro do elemento manifest so adicionadas diretamente para o documento de manifesto do Android. As permisses a seguir so obrigatrias para usar vrios recursos AIR:
ACCESS_COARSE_LOCATION Permite ao aplicativo acessar dados de local de rede WIFI e celular por meio da classe
Geolocation.
ACCESS_FINE_LOCATION Permite ao aplicativo acessar dados GPS por meio da classe Geolocation. ACCESS_NETWORK_STATE and ACCESS_WIFI_STATE Permite ao aplicativo acessar informaes de rede por meio da
classe NetworkInfo.
CAMERA Permite ao aplicativo acessar a cmera.
Nota: Ao pedir permisso para usar o recurso de cmera, o Android assume que seu aplicativo tambm exige a cmera. Se a cmera for um recurso opcional do aplicativo, voc deve adicionar um elemento recurso por uso para o manifesto para a cmera, definindo o atributo necessrio para false. Consulte Filtro de compatibilidade do Android na pgina 79.
INTERNET Permite ao aplicativo fazer solicitaes de rede, alm de permitir a depurao remota. READ_PHONE_STATE Permite ao runtime do AIR silenciar o udio durante as chamadas telefnicas. Voc deve definir
78
Por exemplo, para definir as permisses para um aplicativo que exige cada permisso de maneira impressionante, voc pode adicionar o seguinte para o descritor de aplicativo:
<android> <manifestAdditions> <![CDATA[ <manifest> <uses-permission <uses-permission <uses-permission <uses-permission <uses-permission <uses-permission <uses-permission <uses-permission <uses-permission <uses-permission <uses-permission </manifest> ]]> </manifestAdditions> </android>
android:name="android.permission.ACCESS_COARSE_LOCATION" /> android:name="android.permission.ACCESS_FINE_LOCATION" /> android:name="android.permission.ACCESS_NETWORK_STATE" /> android:name="android.permission.ACCESS_WIFI_STATE" /> android:name="android.permission.CAMERA" /> android:name="android.permission.DISABLE_KEYGUARD" /> android:name="android.permission.INTERNET" /> android:name="android.permission.READ_PHONE_STATE" /> android:name="android.permission.RECORD_AUDIO" /> android:name="android.permission.WAKE_LOCK" /> android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
79
<android> <manifestAdditions> <![CDATA[ <manifest> <application> <activity> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.BROWSABLE"/> <category android:name="android.intent.category.DEFAULT"/> <data android:scheme="my-customuri"/> </intent-filter> </activity> </application> </manifest> ]]> </manifestAdditions> </android>
O filtro com mtodo informa o sistema operacional Android que seu aplicativo est disponvel para executar uma determinada ao. No caso de um URI personalizado, isto significa que o usurio clicou em um link usando esse esquema de URI (e o navegador no sabe como lidar com isso). Quando o aplicativo invocado atravs de um URI personalizado, o objeto NativeApplication envia um evento invoke. A URL do link, incluindo parmetros de consulta, colocada no array arguments do objeto InvokeEvent. Voc pode usar qualquer nmero de filtros com mtodo. Nota: Links em uma instncia StageWebView no podem abrir URLs que usam um esquema de URI customizado.
80
Aplicativos de cmera Se voc pedir a permisso da cmera para seu aplicativo, o Android assume que o aplicativo exige que todos os recursos da cmera estejam disponveis, incluindo foco automtico e flash. Se seu aplicativo no exige que todos os recursos da cmera, ou se a cmera um recurso opcional, voc deve definir os vrios elementos uses-feature para a cmera para indicar que estes so opcionais. Caso contrrio, usurios com dispositivos que esto faltando um recurso ou que no tenham uma cmera no poder encontrar o seu aplicativo na Android Market. O exemplo a seguir ilustra como solicitar permisso para a cmera e tornar todos os recursos desta opcionais:
<android> <manifestAdditions> <![CDATA[ <manifest> <uses-permission android:name="android.permission.CAMERA" /> <uses-feature android:name="android.hardware.camera" android:required="false"/> <uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/> <uses-feature android:name="android.hardware.camera.flash" android:required="false"/> </manifest> ]]> </manifestAdditions> </android>
Aplicativos de gravao de udio Se voc pedir a permisso para gravar o udio, o Android tambm assume que o aplicativo requer um microfone. Se a gravao de udio for um recurso opcional do seu aplicativo, voc pode adicionar uma marca uses-feature para especificar que o microfone no necessrio. Caso contrrio, usurios com dispositivos que no tm um microfone no podero encontrar seu aplicativo na Android Market. O exemplo a seguir ilustra como solicitar permisso para usar o microfone, enquanto ainda est tornando o hardware do microfone opcional:
<android> <manifestAdditions> <![CDATA[ <manifest> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-feature android:name="android.hardware.microphone" android:required="false"/> </manifest> ]]> </manifestAdditions> </android>
Boto de menu Android 3 No Android 3, que funciona em dispositivos tablet, esperado que os aplicativos forneam seu prprio boto para abrir um menu de opes. O SDK do Android agora oferece um componente de ActionBar que exibe um boto de menu. O boto de menu exibido pelo SO na parte inferior da tela do tablet (ao lado dos botes de aplicativos Voltar, Incio e Recente) no mais mostrado nos aplicativos direcionados para o SDK do Android nvel 11 e superior.
81
Local de instalao
Voc pode permitir que seu aplicativo seja instalado ou transferido para o carto de memria externo, definindo o atributo installLocation do elemento manifest do Android para auto ou preferExternal:
<android> <manifestAdditions> <![CDATA[ <manifest android:installLocation="preferExternal"/> ]]> </manifestAdditions> </android>
O sistema operacional Android no garante que seu aplicativo ser instalado para a memria externa. Um usurio pode tambm mover o aplicativo entre memria interna e externa utilizando aplicativo de configuraes do sistema. Mesmo quando instalado para memria externa, cache de aplicativos e dados do usurio (como o contedo do diretrio de armazenamento do aplicativo, objetos compartilhados e arquivos temporrios) ainda esto armazenados na memria interna. Para evitar o uso de muita memria interna, seja seletivo sobre os dados que voc salvar para o diretrio de armazenamento do aplicativo. Grandes quantidades de dados devem ser salvos no SDCard usando os locais File.userDirectory ou File.documentsDirectory (ambos mapeiam para a raiz do carto SD no Android).
O AIR valida os elementos e atributos includos na poro do Android do descritor de aplicativo. Por padro, o AIR efetua a validao em comparao com o SDK do Android 2.3. Uma vez que o atributo android:hardwareAccelerated foi adicionado ao Android 3.0, voc dever definir o utilitrio ADT do AIR para efetuar a validao em comparao com o SDK do Android 3.0 (ou posterior). Primeiro, faa download do SDK do Android 3: Desenvolvedores do Android: Como instalar o SDK . Ao configurar o pacote, defina a opo -platformsdk para o caminho que contm o SDK do Android respectivo (defina o caminho para o diretrio que contm a pasta ferramentas do Android). Por exemplo:
82
adt -package -target apk -storetype pkcs12 -keystore cert.p12 -storepass foo myApp.apk myApp-app.xml -platformsdk c:\androidSDK myApp.swf other.files
Tambm possvel definir a varivel de ambiente AIR_ANDROID_SDK_HOME para o caminho que contm o SDK do Android. Uma vez que o Flash Builder e o Flash Professional no permitem adicionar parmetros extras ao configurar o pacote, a configurao dessa varivel de ambiente permite utilizar as configuraes do SDK do Android que no estavam disponveis quando o SDK do Android que voc estava utilizando foi lanado. Consulte Variveis de ambiente ADT na pgina 189.
Profundidade de cores
AIR 3+ No AIR 3 e em verses posteriores, o runtime define a exibio para renderizar cores de 32 bits. Nas verses anteriores do AIR, o runtime usa a cor de 16 bits. Voc pode informar o runtime para usar a cor de 16 bits usando o elemento <colorDepth> do descritor de aplicativo:
<android> <colorDepth>16bit</colorDepth> <manifestAdditions>...</manifestAdditions> </android>
A utilizao da profundidade de cor de 16 bits pode aumentar o desempenho de renderizao, mas em detrimento da fidelidade de cor.
Configuraes do iOS
As configuraes aplicveis somente aos dispositivos iOS so colocadas no elemento <iPhone> no descritor do aplicativo. O elemento iPhone pode ter um elemento InfoAdditions, um elemento requestedDisplayResolution, um elemento Entitlements, um elemento externalSwfs e um elemento forceCPURenderModeForDevices como filhos. O elemento InfoAdditions permite especificar pares de valores chave que so adicionados ao arquivo de configuraes Info.plist do aplicativo. Nesse exemplo, os valores definem o estilo da barra de estilo do aplicativo e determinam que o aplicativo no requer acesso WiFi contnuo.
<InfoAdditions> <![CDATA[ <key>UIStatusBarStyle</key> <string>UIStatusBarStyleBlackOpaque</string> <key>UIRequiresPersistentWiFi</key> <string>NO</string> ]]> </InfoAdditions>
As configuraes de InfoAdditions so anexadas a uma tag CDATA. O elemento Entitlements permite especificar pares de valores chave que so adicionados ao arquivo de configuraes Entitlements.plist do aplicativo. As configuraes Entitlements.plist permitem que o aplicativo acesse determinados recursos do iOS, como por exemplo notificaes por push.
83
Para obter informaes mais detalhadas sobre as configuraes de Info.plist e Entitlements.plist, consulte a documentao do desenvolvedor da Apple.
udio Atualizaes de local Sistemas de rede Cancelar a execuo de aplicativos em segundo plano
Nota: No possvel usar renderMode="direct" para aplicativos executados em segundo plano. udio de fundo Para ativar a reproduo e a gravao de udio de fundo, inclua o seguinte par de valores-chave no elemento InfoAdditions:
<InfoAdditions> <![CDATA[ <key>UIBackgroundModes</key> <array> <string>audio</string> </array> ]]> </InfoAdditions>
Atualizaes de local de fundo Para ativar atualizaes de local de fundo, inclua o seguinte par de valores-chave no elemento InfoAdditions:
<InfoAdditions> <![CDATA[ <key>UIBackgroundModes</key> <array> <string>location</string> </array> ]]> </InfoAdditions>
Nota: Use esse recurso apenas quando necessrio, j que APIs de local so um consumidor significativo de bateria. Rede de fundo Para executar tarefas curtas em segundo plano, seu aplicativo define a propriedade NativeApplication.nativeApplication.executeInBackground como true. Por exemplo, seu aplicativo pode iniciar uma operao de carregamento de arquivo, depois da qual o usurio move outro aplicativo para a frente. Quando o aplicativo recebe um evento de concluso de carregamento, ele pode definir NativeApplication.nativeApplication.executeInBackground como false.
84
A definio da propriedade NativeApplication.nativeApplication.executeInBackground como true no garante que o aplicativo ser executado indefinidamente, j que o iOS impe um limite de tempo para tarefas em segundo plano. Quando o iOS interrompe o processamento em segundo plano, o AIR despacha o evento NativeApplication.suspend. Cancelar a execuo em segundo plano Seu aplicativo pode explicitamente cancelar a execuo em segundo plano incluindo o seguinte par de valores-chave no elemento InfoAdditions:
<InfoAdditions> <![CDATA[ <key>UIApplicationExitsOnSuspend</key> <true/> ]]> </InfoAdditions>
85
Alm disso, no AIR 3.7 e superiores, possvel usar a tag forceCPURenderModeForDevices para forar a CPU a entrar no modo de renderizao para um conjunto de dispositivos especificado e ativar o modo de renderizao da GPU para os dispositivos iOS restantes. Adicione esta tag como filha da tag iPhone e especifique uma lista separada por espaos com os nomes dos modelos de dispositivos. Para obter uma lista de nomes de modelos de dispositivos vlidos, consulte forceCPURenderModeForDevices na pgina 224. Por exemplo, para usar o modo de CPU em iPods, iPhones e iPads antigos e ativar o modo de GPU para todos os demais dispositivos, especifique o seguinte no descritor do aplicativo:
... <renderMode>GPU</renderMode> ... <iPhone> ... <forceCPURenderModeForDevices>iPad1,1 iPhone1,1 iPhone1,2 iPod1,1 </forceCPURenderModeForDevices> </iPhone>
No modo de alta resoluo, voc pode tratar individualmente cada pixel numa exibio de alta resoluo. No modo padro, a tela do dispositivo aparecer para o seu aplicativo como uma tela de resoluo padro. O desenho de um nico pixel nesse modo definir a cor de quatro pixel na tela de alta resoluo. A definio proposta pelo aplicativo padro. Observe que, para o direcionamento de dispositivos iOS, voc utiliza o elemento requestedDisplayResolution como um filho do elemento iPhone (no os elementos InfoAdditions ou initialWindow). Se desejar utilizar configuraes diferentes em dispositivos diferentes, especifique o seu valor padro como o valor do elemento requestedDisplayResolution. Use o atributo excludeDevices para especificar dispositivos que devem usar o valor oposto. Por exemplo, com o cdigo a seguir, o modo de alta resoluo usado para todos os dispositivos compatveis, exceto os iPads de 3 gerao, que usam o modo padro.
<requestedDisplayResolution excludeDevices="iPad3">high</requestedDisplayResolution>
86
Quando o aplicativo invocado atravs de um URI personalizado, o objeto NativeApplication envia um evento invoke. A URL do link, incluindo parmetros de consulta, colocada no array arguments do objeto InvokeEvent. Voc pode usar qualquer nmero de esquemas URI pesonalizados. Nota: Links em uma instncia StageWebView no podem abrir URLs que usam um esquema de URI customizado. Nota: Se outro aplicativo j tiver registrado um esquema, ento o seu aplicativo no poder substitu-lo como um aplicativo registrado para aquele esquema URI.
Se um dispositivo no tiver a capacidade correspondente, o aplicativo no poder ser instalado. As configuraes de capacidade relevantes para os aplicativos AIR incluem:
telefonia wifi sms cmara fotogrfica digital cmara com autofoco cmara voltada para frente cmara com flash cmara de vdeo acelermetro servios de localizao gps microfone
O AIR 2.6+ adiciona automaticamente armv7 e opengles-2 lista de capacidades requeridas. Nota: No necessrio incluir essas capacidades no descritor do aplicativo para que o seu aplicativo as utilize. Use as configuraes de UIRequiredDeviceCapabilities somente para impedir que os usurios instalem seu aplicativo em dispositivos nos quais no possam funcionar adequadamente.
87
L o arquivo de texto especificado no sub-elemento <externalSwfs> do elemento <iPhone> para acessar a lista
determinada por linhas dos SWFs que sero carregados no momento de execuo:
<iPhone> ... <externalSwfs>FilewithPathsOfSWFsThatAreToNotToBePackaged.txt</externalSwfs> </iPhone>
Transfere o cdigo ABC de cada SWF carregado externamente para o executvel principal. Omite o SWF carregado externamente do arquivo .ipa. Copia os SWFs sem cdigo para o diretrio .remoteStrippedSWFs. Voc hospeda esses SWFs em um servidor da
Web e seu aplicativo os carrega, conforme necessrio, no runtime. Voc indica que os arquivos SWF devem ser carregados no runtime especificando seus nomes, um por linha em um arquivo de texto, conforme o exemplo a seguir:
assets/Level1/Level1.swf assets/Level2/Level2.swf assets/Level3/Level3.swf assets/Level4/Level4.swf
O caminho do arquivo especificado relativo ao arquivo do descritor do aplicativo. Alm disso, esses SWFs devem ser especificados como ativos no comando adt. Nota: Esse recurso se aplica apenas ao empacotamento padro. Para um empacotamento rpido (usando por exemplo, o intrprete, o simulador ou o depurador) o ADT no cria SWFs sem cdigo. Para obter mais informaes sobre esse recurso, incluindo amostras de cdigo, consulte Hospedagem externa de SWFs secundrios para os aplicativos AIR no iOS, uma postagem de blog do engenheiro da Adobe, Abhinav Dhandh.
cones de aplicativos
A tabela a seguir lista os tamanhos de cones utilizados em cada plataforma mvel:
88
Tamanho do cone 29x29 36x36 48x48 50x50 57x57 58x58 72x72 96x96 100x100 114x114 144x144 512 x 512 1024 x 1024
Plataforma iOS Android Android, iOS iOS iOS iOS Android, iOS Android iOS iOS iOS iOS iOS
Especifique o caminho para os arquivos de cone no elemento cone do arquivo descritor do aplicativo:
<icon> <image36x36>assets/icon36.png</image36x36> <image48x48>assets/icon48.png</image48x48> <image72x72>assets/icon72.png</image72x72> </icon>
Se voc no fornecer um cone de determinado tamanho, o maior tamanho seguinte utilizado e adaptado para se ajustar. cones no Android No Android, os cones especificados no descritor do aplicativo so usados como o cone Launcher do aplicativo. O cone de inicializao do aplicativo deve ser fornecido como um conjunto de imagens PNG de 36x36, 48x48, 72x72 e 96x96 pixels. Estes tamanhos de cones so utilizados para telas de baixa, mdia e alta densidade, respectivamente. cones do iOS Os cones definidos no descritor do aplicativo so usados nos seguintes locais para um aplicativo iOS:
Um cone de 29x29 pixels cone de pesquisa Spotlight para iPhones/iPods de resoluo mais baixa e cone
Configuraes para iPads de resoluo mais baixa.
Um cone de 48x48 pixels o AIR adicione uma borda a essa imagem e a usa como um cone de 50x50 para
pesquisa Spotlight em iPads de resoluo mais baixa.
Um cone de 50x50 pixels pesquisa Spotlight para iPads de resoluo mais baixa. Um cone de 57x57 pixels cone de aplicativo para iPhones/iPods de resoluo mais baixa. Um cone de 58x58 pixels cone Spotlight para iPhones/iPods com tela Retina e cone de configuraes para
iPads com tela Retina.
Um cone de 72x72 pixels (opcional) cone de aplicativos para iPads de resoluo mais baixa. Um cone de 100x100 pixels pesquisa Spotlight para iPads com tela Retina.
89
Um cone de 114x114 pixels cone de aplicativos para iPhone/iPods com tela Retina. Um cone de 144x144 pixels cone de aplicativos para iPads com tela Retina. Um cone de 512x512 pixels cone de aplicativos para iPhones/iPods/iPads de resoluo mais baixa). O iTunes
exibe esse cone. O arquivo de 512 pixels PNG utilizado somente para testar verses de desenvolvimento do aplicativo. Ao enviar o aplicativo final para a Apple App Store, envie a imagem de 512 pixels separadamente, como arquivo JPG. Isso no est includo no IPA.
Um cone de 1024x1024 pixels cone de aplicativos para iPhones/iPods/iPads com tela Retina.
O iOS adiciona o efeito de brilho ao cone. No necessrio aplicar efeito sua imagem original. Para remover o efeito de brilho padro, adicione o seguinte ao elemento InfoAdditions no arquivo do descritor do aplicativo:
<InfoAdditions> <![CDATA[ <key>UIPrerenderedIcon</key> <true/> ]]> </InfoAdditions>
Nota: No iOS, os metadados do aplicativo so inseridos como metadados png nos cones do aplicativo para que o Adobe possa controlar o nmero de aplicativos AIR disponveis na app store do Apple iOS. Se voc no quiser que o aplicativo seja identificado como AIR devido a esses metadados de cone, dever descompactar o arquivo IPA, remover o metadado do cone e reempacot-lo. Esse procedimento descrito no artigo Optar por no obter anlises de aplicativos AIR for iOS.
A parte basename do nome do arquivo e a nica parte obrigatria. Ela Default (Padro) (com D maisculo) ou o nome que voc especificar usando a chave UILaunchImageFile no elemento InfoAdditions no descritor do aplicativo.
90
A parte screen size modifier designa o tamanho da tela quando ela no for um dos tamanhos de tela padro. Esse modificador se aplica aos modelos do iPhone e do iPod Touch com telas com 16:9 de taxa de proporo, como o iPhone 5 e o iPod Touch (5 gerao). O nico valor suportado para esse modificador -568h. Como esses dispositivos suportam telas (retina) de alta resoluo, o modificador do tamanho da tela sempre usado com uma imagem que tambm tenha o modificador de escala @2x. O nome completo padro da imagem de ativao desses dispositivos Default-568h@2x.png. A parte urischeme a sequncia de caracteres usada para identificar o esquema URI. Essa parte s se aplica se o seu aplicativo oferecer suporte a um ou mais esquemas de URL. Por exemplo, se o seu aplicativo puder ser invocado por um link como example://foo, ento use -example como a parte do esquema do nome do arquivo de imagem de ativao. A parte orientation oferece uma forma de especificar vrias imagens de ativao para usar dependendo da orientao do dispositivo quando o aplicativo for ativado. Essa parte s se aplica a imagens para aplicativos do iPad. Ela pode ser um dos seguintes valores, indicando a orientao que o dispositivo usa quando o aplicativo inicializado:
-Retrato -PortraitUpsideDown (retrato, de cima para baixo) -Paisagem -LandscapeLeft (paisagem, esquerda) -LandscapeRight (paisagem, direita)
A parte escala @2x para imagens de ativao usadas em telas (retina) de alta resoluo. (Omita a parte escala completamente para as imagens usadas em exibies com resoluo padro.) Para imagens de ativao de dispositivos mais altos, como o iPhone 5 e o iPod Touch (5 gerao), voc tambm deve especificar o modificador de tamanho da tela -528h depois da parte basename e antes de qualquer outra parte. A parte device usada para designar imagens de ativao para dispositivos portteis e telefones. Essa parte usada quando o seu aplicativo um aplicativo universal com suporte para dispositivos portteis e tablets com um nico cdigo binrio de aplicativo. O valor possvel deve ser ~ipad ou ~iphone (para iPhone e iPod Touch). Para o iPhone, s possvel incluir imagens na proporo de retrato. Use imagens com 320x480 pixels para dispositivos de resoluo padro, imagens com 640x960 pixels para dispositivos de alta resoluo e imagens com 640x1136 pixels para dispositivos com 16:9 de taxa de proporo como o iPhone 5 e o iPod Touch (5 gerao). Para iPad, inclua imagens da seguinte maneira:
AIR 3.3 ou anterior - Sem imagem em tela inteira: inclui imagens em orientao paisagem, 1024x748 para resoluo
normal, 2048x 1496 para alta resoluo e retrato, 768x1004 para resoluo normal, 1536x 2008 para alta resoluo.
AIR 3.4 ou posterior - com imagens full screen: inclui imagens com orientao paisagem 1024x768 para resoluo
normal, 2048x 1536 para alta resoluo, e orientao retrato 768x1024 para resoluo normal, 1536x 2048 para alta resoluo. Observe que quando voc coloca uma imagem de tela inteira em um aplicativo sem tela inteira os 20 pixels superiores (40 pixels para resoluo alta) so cobertos pela barra de status. Evite exibir informaes importantes nesta rea. Exemplos A tabela a seguir mostra um conjunto de exemplos de imagens que voc poderia incluir num aplicativo hipottico que suportasse a mais ampla gama de dispositivos e orientaes e pudesse ser ativado com URLs que utilizasse o esquema example://:
91
Uso iPhone, resoluo padro iPhone, alta resoluo iPhone, alta resoluo, taxa de proporo de 16:9 iPad, orientao de retrato
Default-Portrait.png
768 x 1004 (AIR 3.3 e anteriores) 768 x 1024 (AIR 3.4 e superiores)
Default-Portrait@2x.png
1536 x 2008 (AIR 3.3 e anteriores) 1536 x 2048 (AIR 3.4 e superiores)
Default-PortraitUpsideDown.png
768 x 1004 (AIR 3.3 e iPad, orientao de retrato de cima para anteriores) 768 x 1024 (AIR baixo 3.4 e superiores) 1536 x 2008 (AIR 3.3 e anteriores) 1536 x 2048 (AIR 3.4 e superiores) 1024 x 768 2048 x 1536 iPad, alta resoluo, orientao de retrato de cima para baixo
Default-PortraitUpsideDown@2x.png
Default-Landscape.png Default-LandscapeLeft@2x.png
iPad, orientao de paisagem esquerda iPad, alta resoluo, orientao de paisagem esquerda iPad, orientao de paisagem direita iPad, alta resoluo, orientao de paisagem direita exemplo:// URL no iPhone padro exemplo:// URL no iPhone de alta resoluo exemplo:// URL no iPad em orientaes de retrato exemplo:// URL no iPad em orientaes de paisagem
Default-LandscapeRight.png Default-LandscapeRight@2x.png
Default-example-Landscape.png
1024 x 768
Esse exemplo ilustra somente uma abordagem. Voc poder, por exemplo, usar a imagem Default.png para o iPad e especificar imagens de lanamento especficas para iPhone e iPod com Default~iphone.png e Default@2x~iphone.png. Consulte tambm Guia de Programao de Aplicativos em iOS: Imagens de Lanamento de Aplicativo
92
Recomendaes de arte possvel criar qualquer arte desejada para um arquivo de imagem, desde que ela tenha as dimenses corretas. No entanto, frequentemente melhor que a imagem do arquivo coincida com o estado inicial do aplicativo. Voc pode criar essa imagem de ativao obtendo uma captura de tela da imagem de inicializao do seu aplicativo:
1
Abra o seu aplicativo no dispositivo iOS. Quando a primeira tela da interface do usurio aparecer, pressione e mantenha pressionado o boto Incio (abaixo da tela). Mantendo pressionado o boto Incio, pressione o boto Despertar/Repousar (na parte superior do dispositivo). Isso executa uma captura de tela e envia-a para o rolo da cmera. aplicativo de transferncia de fotos.
2 Transfira a imagem para seu computador de desenvolvimento, transferindo as fotos do iPhoto ou de outro
No inclua texto na imagem de ativao se o aplicativo estiver localizado em vrios idiomas. A imagem de ativao esttica, e o texto no coincidiria com outros idiomas. Consulte tambm Diretrizes de Interface do iOS: Imagens de lanamento
Configuraes ignoradas
Aplicativos em dispositivos mveis ignoram as configuraes de aplicativo que se aplicam s janelas nativas, ou aos recursos do sistema operacional de rea de trabalho. As configuraes ignoradas so:
allowBrowserInvocation customUpdateUI fileTypes height installFolder maximizable maxSize minimizable minSize programMenuFolder resizable systemChrome title transparent visible width x y
93
Pacotes iOS Os aplicativos AIR no iOS usam o formado de pacote do iOS (IPA), em vez do formato nativo do AIR. Pacotes produzidos pelo ADT que usam o tipo de destino ipa-app-store e o certificado de assinatura com cdigo correto e perfil de aprovisionamento esto no formato que pode ser enviado para a App Store da Apple. Use o tipo de destino ipa-ad-hoc para compactar um aplicativo para distribuio ad hoc. Voc deve usar o certificado de desenvolvedor emitido pela Apple para assinar seu aplicativo. Certificados diferentes so usados para a criao de verses de teste que so utilizadas para a compactao final antes do envio do aplicativo. Para obter um exemplo de como empacotar um aplicativo iOS usando Ant, consulte Piotr Walczyszyn: Como empacotar um aplicativo do AIR para dispositivos iOS com o comando ADT e o script ANT
94
Digite o comando inteiro em uma nica linha; quebras de linha no exemplo acima esto presentes apenas para tornlo mais fcil de ler. Alm disso, o exemplo pressupe que o caminho para a ferramenta ADT est na definio do caminho do shell de linha de comando. (Consulte Variveis de ambiente do caminho na pgina 304 para obter ajuda.) Voc deve executar o comando do diretrio que contm os arquivos do aplicativo. Os arquivos do aplicativo no exemplo so myApp-app.xml (o arquivo descritor do aplicativo), myApp.swf, e um diretrio de cones. Quando voc executa o comando, como demonstrado, a ADT solicitar a senha do armazenamento de chaves. (Os caracteres da senha digitada no so exibidos; basta pressionar Enter quando terminar de digitar.) Nota: (AIR 3.7 e posteriores) Por padro, o ADT empacota uma cpia cativa do runtime do AIR com o seu aplicativo Android. Para forar o ADT a criar um APK que use um runtime externo, defina a varivel de ambiente AIR_ANDROID_SHARED_RUNTIME como true. Ao agrupar o runtime com o aplicativo, esse runtime cativo usado exclusivamente com seu aplicativo. Os benefcios do empacotamento com um runtime cativo incluem:
Gera um aplicativo independente O aplicativo isolado das atualizaes de runtime As empresas podem certificar a combinao do aplicativo e do runtime especficos. No necessrio download e instalao separados do runtime
Criao de um pacote APK para um aplicativo que utilize extenses nativas. Para criar um pacote APK para um aplicativo que use extenses nativas, use a opo -extdir alm das opes normais de empacotamento. Esse opo especifica o diretrio que contm os arquivos ANE que o aplicativo utiliza. Por exemplo:
adt -package -target apk -storetype pkcs12 -keystore ../codesign.p12 myApp.apk myApp-app.xml -extdir extensionsDir myApp.swf icons
95
Criao de um pacote APK que inclua sua prpria verso do runtime do AIR Para criar um pacote APK que contenha tanto o aplicativo quanto a verso cativa do runtime do AIR, use o destino apk-captive-runtime. Esse opo especifica o diretrio que contm os arquivos ANE que o aplicativo utiliza. Por exemplo:
adt -package -target apk-captive-runtime -storetype pkcs12 -keystore ../codesign.p12 myApp.apk myApp-app.xml myApp.swf icons
Correes importantes de segurana no esto automaticamente disponveis para os usurios quando a Adobe
publica um patch de segurana
O sinalizador -connect diz ao runtime do AIR no dispositivo onde se conectar a um depurador remoto atravs da rede. Para depurar atravs de USB, voc deve especificar o sinalizador -listen, especificando a porta TCP para ser usada para a conexo de depurao:
adt -package -target apk-debug -listen 7936 -storetype pkcs12 -keystore ../codesign.p12 myApp.apk myApp-app.xml myApp.swf icons
Para a maioria dos recursos de depurao funcionar, voc tambm deve compilar os SWFs e SWCs do aplicativo com a depurao ativada. Consulte Opes de conexo do depurador na pgina 184 para obter uma descrio completa dos sinalizadores -connect e -listen. No Android, o aplicativo tambm deve ter permisso para acessar a Internet para que ele se conecte ao computador que est executando o depurador na rede. Consulte Permisses do Android na pgina 77. Criao de um pacote APK para uso em um emulador do Android Voc pode usar um pacote de depurao APK em um emulador do Android, mas no um pacote de modo de verso. Para criar um pacote de modo de verso APK para uso em um emulador, use o comando package do ADT definindo o tipo de destino para apk-emulator :
96
adt -package -target apk-emulator -storetype pkcs12 -keystore ../codesign.p12 myApp.apk myAppapp.xml myApp.swf icons
O exemplo pressupe que o caminho para a ferramenta ADT est na definio do caminho do shell de linha de comando. (Consulte Variveis de ambiente do caminho na pgina 304 para obter ajuda.) Criao de um pacote APK a partir de um arquivo AIR ou AIRI Voc pode criar um pacote APK diretamente de um arquivo AIR ou AIRI existente:
adt -target apk -storetype pkcs12 -keystore ../codesign.p12 myApp.apk myApp.air
O arquivo do AIR deve usar o namespace AIR 2.5 (ou superior) no arquivo descritor do aplicativo.
Pacotes iOS
No iOS, o ADT converte o cdigo de bites do arquivo SWF e outros arquivos de origem em um aplicativo iOS nativo.
1 Crie o arquivo SWF usando o Flash Builder, o Flash Professional ou um compilador de linha de comando. 2 Abra o comando shell ou um terminal e navegue para a pasta de projetos do aplicativo para iPhone. 3 Em seguida, utilize a ferramenta ADT para criar um arquivo IPA utilizando a sintaxe a seguir:
adt -package -target [ipa-test | ipa-debug | ipa-app-store | ipa-ad-hoc | ipa-debug-interpreter | ipa-debug-interpreter-simulator ipa-test-interpreter | ipa-test-interpreter-simulator] -provisioning-profile PROFILE_PATH SIGNING_OPTIONS TARGET_IPA_FILE APP_DESCRIPTOR SOURCE_FILES -extdir extension-directory -platformsdk path-to-iossdk or path-to-ios-simulator-sdk
Altere a referncia adt para incluir o caminho completo para o aplicativo adt. O aplicativo adt est instalado no subdiretrio bin do AIR SDK. Selecione a opo -target correspondente ao tipo de aplicativo para iPhone que deseja criar:
-target ipa-test: escolha essa opo para compilar rapidamente a verso do aplicativo para testar em seu
iPhone do desenvolvedor. Voc tambm pode usar o ipa-test-interpreter para obter uma compilao ainda mais rpida ou ipa-test-interpreter-simulator para executar o simulador do iOS.
-target ipa-debugt: Escolha essa opo para compilar a verso de depurao para testar em seu iPhone de
desenvolvimento. Com essa opo, voc pode utilizar uma sesso de depurao para receber a sada de trace() do aplicativo iPhone. possvel incluir uma das seguintes opes -connect (CONNECT_OPTIONS) para especificar o endereo IP do computador de desenvolvimento que est executando o depurador:
-connect o aplicativo tentar se conectar a uma sesso de depurao por wifi no computador de
-connect HOST_NAME o aplicativo tentar se conectar a uma sesso de depurao por wifi no computador com o nome de host especificado. Por exemplo:
97
A opo -connect facultativa. Caso no especificado, o aplicativo de depurao resultante no tentar se conectar a um depurador hospedado. Como alternativa, voc pode especificar-listen em vez de -connect para ativar a depurao USB descrita em Depurao remota com FDB atravs de USB na pgina 105. Se houver falha de uma tentativa de conexo de depurao, o aplicativo apresentar uma caixa de dilogo que solicitar que o usurio insira o endereo IP da mquina de host da depurao. Uma tentativa de conexo pode falhar se o dispositivo no estiver conectado ao wifi. Isto tambm pode ocorrer se o dispositivo estiver conectado mas no estiver protegido por um firewall da mquina de host de depurao. Voc tambm pode usar o ipa-debug-interpreter para obter uma compilao mais rpida ou ipa-debuginterpreter-simulator para executar o simulador iOS. Para obter mais informaes, consulte Depurao de um aplicativo do AIR mvel na pgina 100.
-target ipa-ad-hoc: Escolha essa opo para criar um aplicativo para implantao ad hoc. Consulte o centro
Apple App Store. Substitua PROFILE_PATH pelo caminho para o arquivo de perfil de aprovisionamento de seu aplicativo. Para obter mais informaes sobre perfis de aprovisionamento, consulte Configurao do iOS na pgina 66. Use a opo -platformsdk para apontar para o SDK do simulador iOS quando estiver criando para executar seu aplicativo no simulador iOS. Substitua SIGNING_OPTIONS para fazer referncia ao certificado e senha de desenvolvedor de iPhone. Use a seguinte sintaxe:
-storetype pkcs12 -keystore P12_FILE_PATH -storepass PASSWORD
Substitua P12_FILE_PATH pelo caminho para o arquivo de certificado P12. Substitua PASSWORD pela senha do certificado. (Veja o exemplo abaixo). Para obter mais informaes sobre o arquivo de certificado P12, consulte Converter um certificado de desenvolvedor em um arquivo de armazenamento de chave P12 na pgina 199. Nota: Voc pode usar um certificado autoassinado ao empacotar para o simulador iOS. Substitua o APP_DESCRIPTOR para fazer referncia ao arquivo do descritor do aplicativo. Substitua SOURCE_FILES para fazer referncia ao arquivo principal SWF de seu projeto seguido de outros ativos para incluso. Inclua os caminhos para todos os arquivos de cones definidos na caixa de dilogo de configuraes do aplicativo no Flash Professional ou em um arquivo personalizado do arquivo do descritor do aplicativo. Alm disso, inclua o arquivo Default.png da arte de tela inicial. Use a opo -extdir extension-directory para especificar o diretrio que contm os arquivos ANE (extenses nativas) que o aplicativo utiliza. Caso o aplicativo no utilizar extenses nativas, no inclua essa opo. Importante: No crie um subdiretrio chamado Recursosno diretrio do seu aplicativo . O runtime cria automaticamente uma pasta com esse nome para se adequar estrutura do pacote de IPA. A criao de uma pasta Recursos resulta em um conflito fatal. Criao de um pacote do iOS para depurao Para criar um pacote do iOS para instalar em dispositivos de teste, use o comando package do ADT, definindo o tipo de origem para ios-debug. Antes de executar este comando, voc j deve ter obtido um certificado de assinatura de cdigo de desenvolvimento e perfil de aprovisionamento da Apple.
98
adt -package -target ipa-debug -storetype pkcs12 -keystore ../AppleDevelopment.p12 -provisioning-profile AppleDevelopment.mobileprofile -connect 192.168.0.12 | -listen myApp.ipa myApp-app.xml myApp.swf icons Default.png
Nota: Voc tambm pode usar o ipa-debug-interpreter para obter uma compilao mais rpida ou ipa-debuginterpreter-simulator para executar o simulador iOS Digite o comando inteiro em uma nica linha; quebras de linha no exemplo acima esto presentes apenas para tornlo mais fcil de ler. Alm disso, o exemplo pressupe que o caminho para a ferramenta ADT est na definio do caminho do shell de linha de comando. (Consulte Variveis de ambiente do caminho na pgina 304 para obter ajuda.) Voc deve executar o comando do diretrio que contm os arquivos do aplicativo. Os arquivos do aplicativo no exemplo so myApp-app.xml (o arquivo descritor do aplicativo), myApp.swf, um diretrio de cones e o arquivo Default.png. Voc deve assinar o aplicativo usando o certificado de distribuio correto to emitido pela Apple; outros certificados de assinatura de cdigo no podem ser usados. Use a opo -connect para depurao wifi. O aplicativo tenta iniciar uma sesso de depurao com o Flash Debugger (FDB) em execuo no IP ou nome de host especificado. Use a opo -listen para depurao USB. Voc inicia o aplicativo primeiro e ento o FDB que inicia uma sesso de depurao para o aplicativo em execuo. Consulte Conexo ao depurador do Flash na pgina 103 para obter mais informaes Criao de um pacote do iOS para envio App Store da Apple Para criar um pacote do iOS para a envio App Store da Apple, use o comando package do ADT, definindo o tipo de destino para ios-app-store . Antes de executar este comando, voc j deve ter obtido um certificado de assinatura de cdigo de distribuio e perfil de aprovisionamento da Apple.
adt -package -target ipa-app-store -storetype pkcs12 -keystore ../AppleDistribution.p12 -provisioning-profile AppleDistribution.mobileprofile myApp.ipa myApp-app.xml myApp.swf icons Default.png
Digite o comando inteiro em uma nica linha; quebras de linha no exemplo acima esto presentes apenas para tornlo mais fcil de ler. Alm disso, o exemplo pressupe que o caminho para a ferramenta ADT est na definio do caminho do shell de linha de comando. (Consulte Variveis de ambiente do caminho na pgina 304 para obter ajuda.) Voc deve executar o comando do diretrio que contm os arquivos do aplicativo. Os arquivos do aplicativo no exemplo so myApp-app.xml (o arquivo descritor do aplicativo), myApp.swf, um diretrio de cones e o arquivo Default.png. Voc deve assinar o aplicativo usando o certificado de distribuio correto to emitido pela Apple; outros certificados de assinatura de cdigo no podem ser usados.
99
Importante: Apple exige que voc use o programa Application Loader para carregar aplicativos para a App Store. A Apple somente publica o Application Loader para Mac OS X. Assim, enquanto voc pode desenvolver um aplicativo do AIR para o iPhone usando um computador com Windows, voc deve ter acesso a um computador com Mac OS X (verso 10.5.3 ou posterior) para enviar o aplicativo para a App Store. Voc pode obter o programa "Application Loader" do Centro do desenvolvedor do iOS da Apple. Criao de um pacote do iOS para distribuio ad hoc Para criar um pacote do iOS para distribuio ad hoc, use o comando package do ADT, definindo o tipo de origem para ios-ad-hoc. Antes de executar este comando, voc j deve ter obtido o certificado de assinatura de cdigo de distribuio ad hoc adequado e perfil de aprovisionamento da Apple.
adt -package -target ipa-ad-hoc -storetype pkcs12 -keystore ../AppleDistribution.p12 -provisioning-profile AppleDistribution.mobileprofile myApp.ipa myApp-app.xml myApp.swf icons Default.png
Digite o comando inteiro em uma nica linha; quebras de linha no exemplo acima esto presentes apenas para tornlo mais fcil de ler. Alm disso, o exemplo pressupe que o caminho para a ferramenta ADT est na definio do caminho do shell de linha de comando. (Consulte Variveis de ambiente do caminho na pgina 304 para obter ajuda.) Voc deve executar o comando do diretrio que contm os arquivos do aplicativo. Os arquivos do aplicativo no exemplo so myApp-app.xml (o arquivo descritor do aplicativo), myApp.swf, um diretrio de cones e o arquivo Default.png. Voc deve assinar o aplicativo usando o certificado de distribuio correto to emitido pela Apple; outros certificados de assinatura de cdigo no podem ser usados. Criao de um pacote do iOS para um aplicativo que utilize extenses nativas. Para criar um pacote do iOS para um aplicativo que utilize extenses nativas, use o comando do pacote ADT com a opo -extdir . Use o comando ADT como apropriado para o destino (ipa-app-store, ipa-debug, ipa-ad-hoc, ipa-test). Por exemplo:
adt -package -target ipa-ad-hoc -storetype pkcs12 -keystore ../AppleDistribution.p12 -provisioning-profile AppleDistribution.mobileprofile myApp.ipa myApp-app.xml -extdir extensionsDir myApp.swf icons Default.png
Digite o comando inteiro em uma nica linha; quebras de linha no exemplo acima esto presentes apenas para tornlo mais fcil de ler. Em relao s extenses nativas, o exemplo supe que o diretrio denominado extensionsDir est no diretrio no qual o comando executado. O diretrio extensionsDir contm os arquivos ANE que o aplicativo utiliza.
100
Ao simular o perfil mvel no desktop desta forma, o aplicativo executado em um ambiente que mais se aproxima de um dispositivo mvel de destino. As APIs do ActionScript que no fazem parte do perfil mvel no esto disponveis. No entanto, o ADL no faz distino entre os recursos de diferentes dispositivos mveis. Por exemplo, voc pode enviar presses simuladas de teclas de funo para seu aplicativo, apesar de seu dispositivo destino na verdade no utilizar teclas de funo. ADL compatvel com simulaes de mudanas de orientao de dispositivo e entrada de teclas de funo atravs de comandos de menu. Ao executar o ADL no perfil de dispositivo mvel, ele exibe um menu (em qualquer janela do aplicativo ou na barra de menu do desktop) que permite que voc insira a rotao do dispositivo ou a entrada da tecla de funo. Entrada de tecla de funo O ADL simula os botes de tecla de funo para botes de Voltar, Menu e Pesquisar em um dispositivo mvel. Voc pode enviar estas teclas para o dispositivo simulado usando o menu exibido quando o ADL ativado atravs do perfil mvel. Rotao do dispositivo O ADL permite simular a rotao do dispositivo atravs do menu exibido quando o ADL ativado usando o perfil mvel. Voc pode girar o dispositivo simulado para a esquerda ou para a direita. A simulao de rotao afeta apenas um aplicativo que permita a orientao automtica. Voc pode ativar este recurso definindo o elemento autoOrients para true no descritor do aplicativo. Tamanho da tela Voc pode testar seu aplicativo em telas de tamanho diferente, definindo o parmetro -screensize do ADL. Voc pode passar o cdigo para um dos tipos de tela predefinidos ou uma sequncia de caracteres que contenha os quatro valores que representam as dimenses em pixel das telas normal e maximizada. Sempre especifique as dimenses de pixel para o layout retrato, o que significa especificar a largura como um valor menor do que o valor da altura. Por exemplo, o comando a seguir abre o ADL para simular a tela usada no Droid da Motorola:
adl -screensize 480x816:480x854 myApp-app.xml
101
Para uma lista de tipos de tela predefinidos, consulte Uso do ADL na pgina 160. Limitaes Algumas APIs que no so compatveis no perfil desktop no podem ser simuladas pelo ADL. As APIs que no so simuladas incluem:
Acelermetro cacheAsBitmapMatrix CameraRoll CameraUI Geolocalizao Multitoque e gestos em sistemas operacionais de desktop que no so compatveis com estes recursos SystemIdleMode
Se seu aplicativo usa essas classes, voc deve testar os recursos em um dispositivo de verdade ou em um emulador. De forma semelhante, existem APIs que funcionam ao serem executadas sob a ADL no computador pessoal, mas que no funcionam em todos os tipos de dispositivos mveis. Isso inclui:
Codec de udio Speex e AAC Suporte para leitor de tela e acessibilidade RTMPE Carregando arquivos SWF que contm bytecode ActionScript Sombreadores PixelBender
Certifique-se de testar os aplicativos que usam recursos nos dispositivos de destino, uma vez que a ADL no replica completamente o ambiente de execuo.
102
2 Use o comando adt -installApp para instalar o aplicativo no simulador do iOS, conforme mostrado no exemplo a
seguir:
adt -installApp -platform ios -platformsdk /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk -device ios-simulator -package sample_ipa_name.ipa
3 Use o comando adt -launchApp para instalar o aplicativo no simulador do iOS, conforme mostrado no exemplo a
seguir:
adt -launchApp -platform ios -platformsdk /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk -device ios-simulator -appid sample_ipa_name
Para testar uma extenso nativa no simulador iOS, use o nome de plataforma iPhone-x86 no arquivo extension.xml e especifique library.a (biblioteca esttica) no elemento nativeLibrary como o exemplo extension.xml a seguir mostra:
<extension xmlns="http://ns.adobe.com/air/extension/3.1"> <id>com.cnative.extensions</id> <versionNumber>1</versionNumber> <platforms> <platform name="iPhone-x86"> <applicationDeployment> <nativeLibrary>library.a</nativeLibrary> <initializer>TestNativeExtensionsInitializer </initializer> <finalizer>TestNativeExtensionsFinalizer </finalizer> </applicationDeployment> </platform> </platforms> </extension>
Nota: Ao testar uma extenso nativa no simulador iOS, no use a biblioteca esttica (arquivo .a) compilado para o dispsitivo. Em vez disso, certifique-se de usar a biblioteca esttica compilada para o simulador.
Instrues de rastreio
Ao executar o aplicativo de mvel no desktop, a sada de rastreio impressa para o depurador ou para a janela de terminal usada para ativar o ADL. Ao executar seu aplicativo em um dispositivo ou emulador, voc pode configurar uma sesso de depurao remota para ver a sada de rastreio. Quando possvel, voc tambm pode ver a sada de rastreio usando as ferramentas de desenvolvimento de software fornecidas pelo fabricante do dispositivo ou do sistema operacional. Em todos os casos, os arquivos SWF do aplicativo devem ser compilado com a depurao ativada para o runtime para a sada de todas as instrues de rastreio.
103
Instrues de rastreio remoto no Android Quando executado em um dispositivo ou emulador do Android, possvel exibir a sada de instruo de rastreio no log do sistema do Android usando o utilitrio Android Debug Bridge (ADB) includo no Android SDK. Para visualizar a sada de sua aplicao, execute o seguinte comando a partir de uma janela de terminal ou do prompt de comando no computador de desenvolvimento:
tools/adb logcat air.MyApp:I *:S
onde MyApp o ID do aplicativo do AIR de seu aplicativo. O argumento *:S omite a sada de todos os outros processos. Para exibir informaes do sistema sobre seu aplicativo alm da sada de rastreio, voc pode incluir o ActivityManager na especificao do filtro logcat:
tools/adb logcat air.MyApp:I ActivityManager:I *:S
Estes exemplos de comando presumem que voc est executando o ADB da pasta Android SDK, ou que voc adicionou a pasta SDK varivel do ambiente de caminho. Nota: Do AIR 2.6 em diante, o utilitrio ADB est includo no AIR SDK e pode ser encontrado na pasta lib/android/bin. Instrues de rastreio remoto no iOS Para exibir a sada de instrues de rastreio de um aplicativo em execuo em um dispositivo do iOS, voc deve estabelecer uma sesso de depurao remota usando o depurador do Flash (FDB).
No Android, especifique a permisso android:permission.INTERNET no descritor do aplicativo. Compile os SWFs do aplicativo com a depurao ativada. Empacote o aplicativo com o sinalizador -target
apk-debug, para Android, ou -target ipa-debug, para
iOS e o -connect (depurao wifi) ou -listen (depurao USB). Para depurao remota por wifi, o dispositivo deve conseguir acessar a porta TCP 7935 do computador que executa o depurador do Flash por endereo IP ou pelo nome de domnio totalmente qualificado. Para depurao remota por USB, o dispositivo precisa poder acessar a porta TCP 7936 ou a porta especificada no sinalizador -listen. No iOS, voc tambm pode especificar -target ipa-debug-interpreter ou -target ipa-debug-interpretersimulator.
104
Selecione "Instalar aplicativo no dispositivo Android conectado" para Aps publicao Desmarque a seleo "Ativar aplicativo no dispositivo Android conectado" para Aps publicao Defina o caminho para o Android SDK, se necessrio.
3 Clique em Publicar.
Se voc sempre usa o mesmo nome de host ou endereo IP para a depurao, pode colocar esse valor depois do sinalizador -connect. O aplicativo tentar se conectar com esse endereo IP ou com o nome de host automaticamente. Caso contrrio, voc deve digitar as informaes no dispositivo cada vez que iniciar a depurao.
4 Instalar o aplicativo.
No iOS, voc pode instalar o aplicativo usando o comando -installApp do ADT ou o iTunes.
5 Abra um segundo terminal ou janela de comandos e execute FDB:
fdb
105
Adobe fdb (Flash Player Debugger) [build 14159] Copyright (c) 2004-2007 Adobe, Inc. All rights reserved. (fdb) run Waiting for Player to connect
7 Inicie o aplicativo no dispositivo. 8 Assim que o aplicativo for ativado no dispositivo ou no emulador, o Adobe AIR abre a caixa de dilogo de conexo.
(Se voc especificou um nome de host ou endereo IP com a opo -connect ao compactar o aplicativo, ele tentar se conectar automaticamente usando esse endereo.) Digite o endereo correto e toque em OK. Para se conectar com o depurador neste modo, o dispositivo deve ser capaz de resolver o endereo ou nome de host e conectar a porta TCP 7935. necessria uma conexo de rede.
9 Quando o runtime remota se conecta com o depurador, voc pode definir pontos de interrupo com o comando
break do FDB e iniciar a execuo com o comando continue: (fdb) run Waiting for Player to connect Player connected; session starting. Set breakpoints and then type 'continue' to resume the session. [SWF] Users:juser:Documents:FlashProjects:DebugExample:DebugExample.swf - 32,235 bytes after decompression (fdb) break clickHandler Breakpoint 1 at 0x5993: file DebugExample.as, line 14 (fdb) continue
3 Empacote o aplicativo usando o destino de deputao apropriado (como apk-debug) e especifique a opo
-listen: adt -package -target apk-debug -listen -storetype pkcs12 -keystore ../../AndroidCert.p12 DebugExample.apk DebugExample-app.xml DebugExample.swf
4 Conecte o dispositivo ao computador de depurao com um cabo USB. (Voc tambm pode usar esse
procedimento para depurar um aplicativo em execuo em um emulador; neste caso a conexo USB no necessria - ou possvel.)
5 Instalar o aplicativo.
106
6 Encaminhe a porta TCP 7936 do dispositivo ou do emulador para o computador desktop usando o utilitrio ADB
do Android:
adb forward tcp:7936 tcp:7936
7 Inicie o aplicativo no dispositivo. 8 Em um terminal ou janela de comando execute o FDB usando a opo -p:
fdb -p 7936
10 O utilitrio FDB tenta se conectar com o aplicativo. 11 Quando a conexo remota estabelecida, voc pode definir pontos de interrupo com o comando break do FDB
Nota: O nmero de porta 7936 usado como padro para depurao por USB pelo runtime do AIR e pelo FDB. Voc pode especificar portas diferentes para usar com o parmetro de porta -listen do ADT o -p do FDB. Neste caso, voc deve usar o utilitrio Android Debug Bridge para encaminhar o nmero da porta especificada em ADT para a porta especificada em FDB: adb forward tcp:adt_listen_port#:tcp:fdb_port# Procedimento de depurao para USB para iOS Para que o depurador do Flash em execuo no computador se conecte ao runtime do AIR em execuo no dispositivo ou no emulador, voc deve usar o utilitrio iOS Debug Bridge (IDB - utilitrio do AIR SDK) para encaminhar a porta do dispositivo para a porta do desktop.
1 Abra um terminal ou janela de comando do prompt e v ao diretrio que contm o cdigo-fonte para o aplicativo. 2 Compile o aplicativo com amxmlc, ativando a depurao:
amxmlc -debug DebugExample.as
4 Conecte o dispositivo ao computador de depurao com um cabo USB. (Voc tambm pode usar esse
procedimento para depurar um aplicativo em execuo em um emulador; neste caso a conexo USB no necessria - ou possvel.)
5 Instale e inicie o aplicativo no dispositivo iOS. No AIR 3.4 e superior voc pode usaradt -installApp para instalar
107
6 Determine o identificador do dispositivo usando o comando idb -devices (IDB est localizado em
air_sdk_root/lib/aot/bin/iOSBin/idb): ./idb -devices List of attached devices Handle UUID 1 91770d8381d12644df91fbcee1c5bbdacb735500
Nota: (AIR 3.4 e superior) Voc pode usar adt -devices no lugar deidb -devices para determinar o manipulador do dispositivo.
7 Encaminhe uma porta em seu desktop para a porta especificada no parmetro adt -listen (neste caso, 16000;
Neste exemplo, 7936 a porta do desktop, 16000 a porta pela qual o dispositivo conectado ouve e 1 a ID do dispositivo do dispositivo conectado.
8 Em um terminal ou janela de comando execute o FDB usando a opo -p:
fdb -p 7936
10 O utilitrio FDB tenta se conectar com o aplicativo. 11 Quando a conexo remota estabelecida, voc pode definir pontos de interrupo com o comando break do FDB
e iniciar a execuo com o comando continue: Nota: O nmero de porta 7936 usado como padro para depurao por USB pelo runtime do AIR e pelo FDB. Voc pode especificar portas diferentes para usar com o parmetro de porta -listen do IDB o -p do FDB.
108
Se o parmetro -package no for especificado, o pacote do runtime adequado para o dispositivo ou emulador escolhido entre os disponveis no seu AIR SDK instalado. Para instalar um aplicativo AIR no Android ou no iOS (AIR 3.4 e superior), use o comando similar -installApp:
adt -installApp -platform android -device deviceID -package path-to-app
O valor definido para o argumento -platform deve corresponder ao dispositivo no qual voc est instalando. Nota: Verses existentes do runtime ou do aplicativo do AIR devem ser removidas antes de serem reinstaladas. Instalando aplicativos AIR em dispositivos iOS com o iTunes Para instalar um aplicativo do AIR num dispositivo iOS para fim de teste:
1 Abra o aplicativo iTunes. 2 Se voc ainda no fez isso, adicione o perfil de aprovisionamento desse aplicativo ao iTunes. No iTunes, selecione
Arquivo > Adicionar Biblioteca. Selecione o arquivo de perfil de aprovisionamento (que tem mobileprovision como tipo de arquivo).
3 Algumas verses do iTunes no substituem o aplicativo, se a mesma verso do aplicativo estiver instalada. Nesse
sincronizao terminar, o aplicativo Hello World aparecer em seu iPhone. Se a nova verso no estiver instalada, exclua-a do dispositivo e da lista de aplicativos no iTunes e, em seguida, execute novamente esse procedimento. Talvez esse seja o caso, se a verso instalada atualmente usa o mesmo ID do aplicativo e verso.
109
O valor do argumento -appid deve ser o ID do aplicativo do AIR para ativao. Use o valor especificado no descritor do aplicativo do AIR (sem o prefixo air.includo durante a compactao). Se apenas um nico dispositivo ou emulador estiver anexado e em execuo, voc pode omitir o sinalizador -device. O valor definido para o argumento -platform deve corresponder ao dispositivo no qual voc est instalando. No momento apenas o valor android est disponvel.
Se apenas um nico dispositivo ou emulador estiver anexado e em execuo, voc pode omitir o sinalizador -device. O valor definido para o argumento -platform deve corresponder ao dispositivo no qual voc est instalando. No momento apenas o valor android est disponvel.
Configurao de um emulador
Para executar o aplicativo do AIR em um emulador de dispositivo, voc deve geralmente usar o SDK para o dispositivo, para criar e executar uma ocorrncia do emulador em seu computador de desenvolvimento. Voc pode instalar a verso do emulador do aplicativo e do runtime do AIR no emulador. Observe que os aplicativos em um emulador funcionam geralmente muito mais lentos do que em um dispositivo real.
No Windows, execute o arquivo Setup.exe no SDK, na raiz do diretrio do Android SDK. No Mac OS, execute o aplicativo android, no subdiretrio de ferramenta do diretrio Android SDK
2 Selecione a opo Configuraes e depois "Forar https://". 3 Selecione a opo Pacotes disponveis. Voc ver uma lista de Android SDKs disponveis. 4 Selecione um SDK do Android compatvel (Android 2.3 ou posterior) e clique no boto Instalar selecionado. 5 Selecione a opo Dispositivos virtuais e clique no boto Novo.
110
Um nome para seu dispositivo virtual A API de destino, como Android 2.3, nvel 8 de API Um tamanho para o carto SD (como 1024) Uma capa (como HVGA Padro)
7 Clique no boto Criar AVD.
Observe que a criao de dispositivo virtual pode levar algum tempo dependendo da configurao do sistema. Agora voc pode iniciar o novo dispositivo virtual.
1 Selecione o dispositivo virtual no aplicativo AVD Manager. O dispositivo virtual criado acima deve ser listado. 2 Selecione o dispositivo virtual e clique no boto Iniciar. 3 Clique no boto Iniciar na prxima tela.
Voc dever ver a janela de um emulador aberta em seu desktop. Isto pode demorar alguns segundos. Tambm pode levar algum tempo para o sistema operacional Android inicializar. Voc pode instalar aplicativos compactados com apk-debug e apk-emulator em um emulador. Aplicativos compactados com o destino apk no funcionam em um emulador.
O pacote APK assinado pelo mesmo certificado. O ID do AIR igual. O valor versionNumber no descritor do aplicativo maior. (Voc tambm deve incrementar o valor
versionLabel, se usado.)
Os usurios que baixaram o aplicativo do Android Market so notificados pelo seu software de dispositivo de que uma atualizao est disponvel.
111
O certificado de assinatura do cdigo e os perfis de aprovisionamento so emitidos para o mesmo ID da Apple ID O pacote IPA usa o mesmo ID de Bundle da Apple A atualizao no diminui a rede de dispositivos suportados (em outras palavras, se o seu aplicativo original
suportar dispositivos que executem o iOS 3, ento voc no poder criar uma atualizao que descarte o suporte ao iOS 3). Importante: Uma vez que as verses 2.6 e posteriores do AIR SDK no suportam iOS 3 e o que o AIR 2 suporta, voc no pode atualizar aplicativos iOS publicados que foram desenvolvidos usando o AIR 2 com uma atualizao desenvolvida com o uso do AIR 2.6+.
Aplicativo cliente - registrado para notificaes por push, se comunica com o provedor de notificaes remotas
e recebe notificaes por push.
iOS - Gerencia a interao entre o aplicativo cliente e o APNs. APNs - Fornece uma tokenID durante o registro do cliente e envia a notificao do provedor de notificao remota
para o iOS.
Provedor de notificao remota - Armazena as informaes de tokenID do aplicativo cliente e envia notificaes
para o APNs.
112
notificao remota, que armazena a tokenID para usar para notificaes por push.
a tokenID.
2 O APNs encaminha a notificao para o iOS no dispositivo. 3 O iOS encaminha a carga da notificao para o aplicativo.
NotificationStyle - Define as constantes por tipos de notificao: ALERTA, MEDALHA e SOM.C RemoteNotifier - Permite que voc assine e deixe de assinar notificaes por push. RemoteNotifierSubscribeOptions - Permite que voc selecione quais tipos de notificao quer receber. Use a propriedade notificationStyles para definir um vetor de sequncias de caracteres que registram vrios tipos de notificao.
O AIR 3.4 tambm inclui flash.events.RemoteNotificationEvent que so enviados pelo RemoteNotifier, de acordo com o seguinte:
Quando a assinatura de um aplicativo concluda com sucesso e uma nova tokenID recebida do APNs. Aps receber uma nova notificao remota.
Alm disso, o RemoteNotifier envia flash.events.StatusEvent caso encontre algum erro durante o processo de assinatura.
Criar um cdigo que assine notificaes por push em seu aplicativo. Ativar as notificaes por push no XML do aplicativo. Criar um certificado e um perfil de provisionamento para ativar o iOS Push Services.
O exemplo de cdigo anotado a seguir assina notificaes por push e manipula eventos de notificao por push:
113
package { import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.*; import flash.events.Event; import flash.events.IOErrorEvent; import flash.events.MouseEvent; import flash.net.*; import flash.text.TextField; import flash.text.TextFormat; import flash.ui.Multitouch; import flash.ui.MultitouchInputMode; // Required packages for push notifications import flash.notifications.NotificationStyle; import flash.notifications.RemoteNotifier; import flash.notifications.RemoteNotifierSubscribeOptions; import flash.events.RemoteNotificationEvent; import flash.events.StatusEvent; [SWF(width="1280", height="752", frameRate="60")] public class TestPushNotifications extends Sprite { private var notiStyles:Vector.<String> = new Vector.<String>;; private var tt:TextField = new TextField(); private var tf:TextFormat = new TextFormat(); // Contains the notification styles that your app wants to receive private var preferredStyles:Vector.<String> = new Vector.<String>(); private var subscribeOptions:RemoteNotifierSubscribeOptions = new RemoteNotifierSubscribeOptions(); private var remoteNot:RemoteNotifier = new RemoteNotifier(); private var subsButton:CustomButton = new CustomButton("Subscribe"); private var unSubsButton:CustomButton = new CustomButton("UnSubscribe"); private var clearButton:CustomButton = new CustomButton("clearText"); private var urlreq:URLRequest; private var urlLoad:URLLoader = new URLLoader(); private var urlString:String; public function TestPushNotifications() { super(); Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT; stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE; tf.size = 20; tf.bold = true;
114
tt.border = true; tt.defaultTextFormat = tf; addChild(tt); subsButton.x = 150; subsButton.y=10; subsButton.addEventListener(MouseEvent.CLICK,subsButtonHandler); stage.addChild(subsButton); unSubsButton.x = 300; unSubsButton.y=10; unSubsButton.addEventListener(MouseEvent.CLICK,unSubsButtonHandler); stage.addChild(unSubsButton); clearButton.x = 450; clearButton.y=10; clearButton.addEventListener(MouseEvent.CLICK,clearButtonHandler); stage.addChild(clearButton); // tt.text += "\n SupportedNotification Styles: " + RemoteNotifier.supportedNotificationStyles.toString() + "\n"; tt.text += "\n Before Preferred notificationStyles: " + subscribeOptions.notificationStyles.toString() + "\n"; // Subscribe to all three styles of push notifications: // ALERT, BADGE, and SOUND. preferredStyles.push(NotificationStyle.ALERT ,NotificationStyle.BADGE,NotificationStyle.SOUND ); subscribeOptions.notificationStyles= preferredStyles; tt.text += "\n After Preferred notificationStyles:" + subscribeOptions.notificationStyles.toString() + "\n";
} // Apple recommends that each time an app activates, it subscribe for // push notifications. public function activateHandler(e:Event):void{ // Before subscribing to push notifications, ensure the device supports it. // supportedNotificationStyles returns the types of notifications // that the OS platform supports if(RemoteNotifier.supportedNotificationStyles.toString() != "") { remoteNot.subscribe(subscribeOptions); }
115
else{ tt.appendText("\n Remote Notifications not supported on this Platform !"); } } public function subsButtonHandler(e:MouseEvent):void{ remoteNot.subscribe(subscribeOptions); } // Optionally unsubscribe from push notfications at runtime. public function unSubsButtonHandler(e:MouseEvent):void{ remoteNot.unsubscribe(); tt.text +="\n UNSUBSCRIBED"; } public function clearButtonHandler(e:MouseEvent):void{ tt.text = " "; } // Receive notification payload data and use it in your app public function notificationHandler(e:RemoteNotificationEvent):void{ tt.appendText("\nRemoteNotificationEvent type: " + e.type + "\nbubbles: "+ e.bubbles + "\ncancelable " +e.cancelable); for (var x:String in e.data) { tt.text += "\n"+ x + ": " + e.data[x]; } } // If the subscribe() request succeeds, a RemoteNotificationEvent of // type TOKEN is received, from which you retrieve e.tokenId, // which you use to register with the server provider (urbanairship, in // this example. public function tokenHandler(e:RemoteNotificationEvent):void { tt.appendText("\nRemoteNotificationEvent type: "+e.type +"\nBubbles: "+ e.bubbles + "\ncancelable " +e.cancelable +"\ntokenID:\n"+ e.tokenId +"\n"); urlString = new String("https://go.urbanairship.com/api/device_tokens/" + e.tokenId); urlreq = new URLRequest(urlString); urlreq.authenticate = true; urlreq.method = URLRequestMethod.PUT; URLRequestDefaults.setLoginCredentialsForHost ("go.urbanairship.com", "1ssB2iV_RL6_UBLiYMQVfg","t-kZlzXGQ6-yU8T3iHiSyQ"); urlLoad.load(urlreq); urlLoad.addEventListener(IOErrorEvent.IO_ERROR,iohandler); urlLoad.addEventListener(Event.COMPLETE,compHandler); urlLoad.addEventListener(HTTPStatusEvent.HTTP_STATUS,httpHandler); } private function iohandler(e:IOErrorEvent):void {
116
tt.appendText("\n In IOError handler" + e.errorID +" " +e.type); } private function compHandler(e:Event):void{ tt.appendText("\n In Complete handler,"+"status: " +e.type + "\n"); } private function httpHandler(e:HTTPStatusEvent):void{ tt.appendText("\n in httpstatus handler,"+ "Status: " + e.status); } // If the subscription request fails, StatusEvent is dispatched with // error level and code. public function statusHandler(e:StatusEvent):void{ tt.appendText("\n statusHandler"); tt.appendText("event Level" + e.level +"\nevent code " + e.code + "\ne.currentTarget: " + e.currentTarget.toString()); } } }
Quando estiver pronto para enviar o aplicativo para a App Store, um elemento <string> para desenvolvimento para produo:
<string>production</string>
Se seu aplicativo suporta sequncias de caracteres localizadas, especifique os idiomas na tag supportedLanguages embaixo da tag initialWindow conforme o exemplo a seguir:
<supportedLanguages>en de cs es fr it ja ko nl pl pt</supportedLanguages>
117
6 Clique em Submit (Enviar). O Portal de provisionamento gera sua ID do aplicativo e exibe novamente a pgina das
ID dos aplicativos.
7 Clique em Configure (Configurar), direita de sua ID do aplicativo. A pgina Configure App ID (Configurar ID
do aplicativo) exibida.
8 Marque a caixa de seleo Enable for Apple Push Notification service (Habilitar para Apple Push Notification
service). Observe que existem dois tipos de certificados SSL por push: um para desenvolvimento/teste e outro para produo.
9 Clique no boto Configurar, direita do Certificado do desenvolvimento por push SSL. A pgina Gerar solicitao
de sua ID do aplicativo.
16 Certifique-se de salvar seus certificados SSL, eles sero usados posteriormente para comunicao entre o aplicativo
e o provedor.
17 Clique na aba Provisionamento para exibir a pgina Perfis de provisionamento. 18 Crie um perfil de provisionamento para a nova ID do aplicativo e faa o download deste perfil. 19 Clique na aba Certificados e faa o download do novo certificado para o novo perfil de provisionamento.
A Apple suporta os seguinte formatos de arquivos de udio (arquivos aiff, wav ou caf):
118
4 Salve o arquivo. 5 Quando o aplicativo receber um alerta de notificao com esta chave e o idioma do dispositivo estiver em espanhol
Criar seu prprio provedor baseado em um servidor APNS-php de cdigo aberto. Voc pode montar um servidor
PHP usando http://code.google.com/p/apns-php/. Este projeto de Cdigo do Google permite que voc projete uma interface que combine com suas necessidades especficas.
Use um provedor de servios. Por exemplo, o http://urbanairship.com/ oferece um provedor APNs pronto para
uso. Aps se registrar neste servio voc comea a fornecer o token de seu dispositivo usando um cdigo similar ao a seguir:
private var urlreq:URLRequest; private var urlLoad:URLLoader = new URLLoader(); private var urlString:String; //When subscription is successful then only call the following code urlString = new String("https://go.urbanairship.com/api/device_tokens/" + e.tokenId); urlreq = new URLRequest(urlString); urlreq.authenticate = true; urlreq.method = URLRequestMethod.PUT; URLRequestDefaults.setLoginCredentialsForHost("go.urbanairship.com", "Application Key","Application Secret"); urlLoad.load(urlreq); urlLoad.addEventListener(IOErrorEvent.IO_ERROR,iohandler); urlLoad.addEventListener(Event.COMPLETE,compHandler); urlLoad.addEventListener(HTTPStatusEvent.HTTP_STATUS,httpHandler); private function iohandler(e:IOErrorEvent):void{ trace("\n In IOError handler" + e.errorID +" " +e.type); } private function compHandler(e:Event):void{ trace("\n In Complete handler,"+"status: " +e.type + "\n"); } private function httpHandler(e:HTTPStatusEvent):void{ tt.appendText("\n in httpstatus handler,"+ "Status: " + e.status); }
Voc pode ento enviar notificaes de teste utilizando as ferramentas Urban Airship.
119
5 Fornea o arquivo .pem combinado ao provedor do servidor quando criar seu aplicativo por push no lado do
servidor. Para obter mais informaes consulte Instalando o certificado SSL e a chave no servidor no Guia de programao de notificao por push e local da Apple.
Configurao global do usurio e aceitao de notificaes por push A aprovao do usurio de notificaes por push individuais Manipulao de notificaes por push e cargas de dados de notificao
120
Perfis de dispositivo
O AIR usa perfis para definir um conjunto de destino de dispositivos com capacidades semelhantes. Use os seguintes perfis para os aplicativos AIR for TV:
O perfil tv. Use esse perfil nos aplicativos AIR que tm o dispositivo AIR for TV como destino. O perfil extendedTV. Use esse perfil se o aplicativo do AIR for TV usar extenses nativas.
Os recursos do ActionScript definidos para estes perfis so abordados em Perfis de dispositivo na pgina 245. Diferenas especficas do ActionScript para aplicativos AIR for TV so observados na Referncia do ActionScript 3.0 para Adobe Flash Platform. Para obter detalhes sobre os perfis do AIR for TV, consulte Perfis disponveis na pgina 141.
Proteo de contedo
O AIR for TV permite a criao de experincias enriquecedoras para o consumidor em torno de um contedo de vdeo de alta qualidade, de superprodues de Hollywood a filmes independentes e episdios de TV. Os provedores de contedo podem criar aplicativos interativos usando ferramentas do Adobe. Eles podem integrar os produtos de servidor Adobe em sua infraestrutura de distribuio de contedo ou trabalhar com um dos parceiros em ecossistemas da Adobe. A proteo de contedo um requisito essencial para a distribuio de vdeo de alta qualidade. O AIR for TV suporta Adobe Flash Access, uma soluo de monetizao e proteo de contedo que atende aos mais rgidos requisitos de segurana dos proprietrios de contedo, incluindo os maiores estdios cinematogrficos. O Flash Access suporta o seguinte:
Transmisso e download de vdeo Vrios modelos de negcio, incluindo suporte a anncios, assinatura, locao e venda por meio eletrnico.
121
Diferentes tecnologias de fornecimento de contedo, incluindo HTTP Dynamic Streaming, transmisso sobre
RTMP (Real Time Media Protocol) usando Flash Media Server, e download progressivo com HTTP. O AIR for TV tambm possui suporte integrado para RTMPE, a verso criptografada do RTMP, para solues de transmisso com baixos requisitos de segurana. RTMPE e as respectivas tecnologias de verificao SWF so suportadas no Flash Media Server. Para obter mais informaes, consulte Adobe Flash Access.
udio multicanal
A partir do AIR 3, o AIR for TV suporta udio multicanal para vdeos que so continuamente baixados de um servidor HTTP. O suporte inclui estes codecs:
AC-3 (Dolby Digital) E-AC-3 (Dolby Digital Avanado) DTS Digital Surround DTS Express DTS-HD High Resolution Audio DTS-HD Master Audio
Nota: O suporte para udio multicanal em vdeos transmitidos pelo Adobe Flash Media Server ainda no est disponvel.
Extenses nativas
Quando o aplicativo tem como destino o perfil extendedTV ele pode usar pacotes ANE (extenso nativa do AIR).
122
Geralmente, um fabricante do dispositivo fornece pacotes ANE para fornecer acesso aos recursos do dispositivo no compatveis com o AIR. Por exemplo, uma extenso nativa poderia permitir que voc altere os canais em uma televiso ou pause a reproduo em um player de vdeo. AO empacotar um aplicativo do AIR for TV que usa pacotes ANE, voc empacota o aplicativo em um arquivo do AIRN, em vez de um arquivo do AIR. As extenses nativas para os dispositivos do AIR for TV so sempre extenses nativas agrupadas no dispositivo. Agrupado por dispositivo significa que as bibliotecas de extenso esto instaladas no dispositivo do AIR for TV. O pacote ANE que voc inclui no pacote de seu aplicativo nunca inclui as bibliotecas nativas da extenso. s vezes ele contm uma verso somente para ActionScript da extenso nativa. Essa verso somente para ActionScript um fragmento ou simulador da extenso. O fabricante do dispositivo instala a extenso verdadeira, incluindo as bibliotecas nativas, no dispositivo. Se voc estiver desenvolvendo extenses nativas, observe o seguinte:
Sempre consulte o fabricante do dispositivo se estiver criando uma extenso nativa do AIR for TV para os
dispositivos deles.
Em alguns dispositivos do AIR for TV, somente o fabricante do dispositivo cria as extenses nativas. Em todos os dispositivos do AIR for TV, o fabricante do dispositivo decide quais extenses nativas podem ser
instaladas.
As ferramentas de desenvolvimento para a criao de extenses nativas do AIR for TV variam para cada fabricante.
Para obter mais informaes sobre a utilizao de extenses nativas no aplicativo do AIR, consulte Como utilizar extenses nativas para Adobe AIR na pgina 149. Para obter informaes sobre a criao de extenses nativas, consulte Developing Native Extensions for Adobe AIR.
at 192 Kbps
11
123
A Adobe recomenda usar o codec H.264 para vdeo entregue a dispositivos AIR for TV. Nota: O AIR for TV tambm suporta vdeo codificado com Sorenson Spark ou codecs On2 VP6. No entanto, o hardware no decodifica nem apresenta esses codecs. Em vez disso, o runtime decodifica esses codecs usando o software; portanto, o vdeo exibido com uma taxa de quadros muito menor. Por isso, use o H.264 se for possvel. A classe StageVideo O AIR for TV suporta decodificao e apresentao de hardware de vdeo H.264 codificado. Use a classe StageVideo para habilitar esse recurso. Consulte Uso da classe StageVideo para apresentao acelerada por hardware no Guia do desenvolvedor do ActionScript 3.0 para obter detalhes sobre:
a API da classe StageVideo e das classes relacionadas. limitaes ao uso da classe StageVideo.
Para um melhor suporte aos aplicativos AIR existentes que usam o objeto Video para vdeo H.264 codificado, o AIR for TV usa um objeto StageVideo internamente. Fazer isso significa que a reproduo de vdeo tira proveito da decodificao e da apresentao do hardware. No entanto, o objeto Video est sujeito s mesmas restries de um objeto StageVideo. Por exemplo, se o aplicativo tentar girar o vdeo, nenhum giro ocorrer, uma vez que o hardware, no o runtime, estar apresentando o vdeo. Contudo, ao escrever novos aplicativos, use o objeto StageVideo para vdeo H.264 codificado. Para obter um exemplo do uso da classe StageVideo, consulte Fornecendo vdeo e contedo para a Plataforma Flash em TV. Diretrizes de fornecimento de vdeo Em um dispositivo AIR for TV, a largura de banda disponvel da rede pode variar durante a reproduo de vdeo. Essas variaes podem ocorrer, por exemplo, quando outro usurio comea a usar a mesma conexo com a Internet. Portanto, a Adobe recomenda que o seu sistema de fornecimento de vdeo use capacidades de taxa de bits adaptveis. Por exemplo, no lado do servidor, o Flash Media Server suporta capacidades de taxa de bits adaptveis. No lado do cliente, voc pode usar a estrutura de mdia de fonte aberta Open Source Media Framework (OSMF). Os seguintes protocolos esto disponveis para o fornecimento de contedo de vdeo em uma rede para um aplicativo do AIR for TV:
Transmisso Dinmica em HTTP e HTTPS (formato F4F) Transmisso em RTMP, RTMPE, RTMFP, RTMPT e RTMPTE Download Progressivo em HTTP e HTTPS
Para obter mais informaes, consulte o seguinte:
Guia do desenvolvedor do Adobe Flash Media Server Open Source Media Framework
124
O AIR for TV suporta udio multicanal para vdeos que so continuamente baixados de um servidor HTTP. O
suporte para udio multicanal em vdeos transmitidos pelo Adobe Flash Media Server ainda no est disponvel.
Embora o AIR for TV seja compatvel com muitos codecs de udio, nem todos os dispositivos para o AIR for TV
so compatveis com o conjunto inteiro. Use o mtodo flash.system.CapabilitieshasMultiChannelAudio()para verificar se o dispositivo do AIR for TV compatvel com o codec de udio especfico de multicanais como o AC-3. Por exemplo, considere um aplicativo que progressivamente baixa um arquivo de vdeo de um servidor. O servidor possui diferentes arquivos de vdeo H.264 que so compatveis com diferentes codecs de udio de multi-canais. O aplicativo poder utilizar hasMultiChannelAudio()para determinar qual arquivo de vdeo deve ser solicitado do servidor. Como alternativa, o aplicativo poder enviar ao servidor uma string contida em Capabilities.serverString. A string indica quais codecs de udio multicanais esto disponveis, permitindo ao servidor selecionar o arquivo de vdeo correto.
Ao usar um dos codecs de udio DTS, existem situaes em que hasMultiChannelAudio() retorna true, mas o
udio DTS no reproduzido. Por exemplo, considere um player de Blu-raio com uma sada S/PDIF, conectada a um velho ampliador. O velho ampliador no apoia DTS, mas S/PDIF no tem nenhum protocolo para notificar o player de Blu-raio. Se o player de Blu-raio enviar a corrente DTS ao velho ampliador, o usurio no ouve nada. Por isso, como uma prtica recomendada usando DTS, fornea uma interface do usurio para que o usurio possa indicar se nenhum som est jogando. Ento, o seu aplicativo pode reverter a um codec diferente. A seguinte tabela resume quando usar diferentes codecs de udio nos aplicativos do AIR for TV. A tabela tambm indica quando os dispositivos do AIR for TV utilizam aceleradores de hardware para decodificar um codec de udio. A decodificao de hardware melhora o desempenho e evita a sobrecarga da CPU.
Codec de udio Disponibili dade para dispositivo do AIR for TV Sempre Decodifica o de hardware Quando usar este codec de udio Mais informaes
AAC
Sempre
Em vdeos codificados com H.264. Ao usar um fluxo contnuo AAC exclusivamente de udio, encapsule o fluxo Em transmisso de udio tal como contnuo de udio num recipiente MP4. um servio de transmisso de msica na Internet. Para sons contidos nos arquivos SWF do aplicativo. Em vdeos codificados com Sorenson Spark ou On2 VP6. Um vdeo H.264 que utilize mp3 para udio no reproduzido em dispositivos do AIR for TV.
mp3
Sempre
No
125
Codec de udio
Decodifica o de hardware
Mais informaes
AC-3 (Dolby Digital) E-AC-3 (Dolby Digital Avanado) DTS Digital Surround DTS Express DTS-HD High Resolution Audio DTS-HD Master Audio Speex
Sim
Em vdeos codificados com H.264. Geralmente, o AIR for TV envia um fluxo de udio multicanal para um receptor externo de udio/vdeo que decodifica e reproduz o udio.
Sempre
No
Um vdeo H.264 que utilize Speex para o udio no reproduzido em dispositivos do AIR for TV. Use Speex somente com vdeos codificados com Sorenson Spark ou On2 VP6. Um vdeo H.264 que utilize NellyMoser para o udio no reproduzido em dispositivos do AIR for TV. Use NellyMoser somente com vdeos codificados com Sorenson Spark ou On2 VP6.
NellyMoser
Sempre
No
Nota: Alguns arquivos de vdeo contm dois fluxos de udio. Por exemplo, um arquivo de vdeo poder conter um fluxo AAC e um fluxo AC3. O AIR for TV no compatvel com tais arquivos de vdeo, e o uso desse arquivo poder causar a ausncia de som do vdeo.
Transies de deslocamento Transies de escala Intensificao e esmaecimento gradual da imagem (fade in e fade out) Imagens de composio mltipla com alfa
126
Para obter os benefcios de desempenho da acelerao grfica de hardware para estes tipos de operaes, use uma das seguintes tcnicas:
Defina a propriedade cacheAsBitmap como true nos objetos MovieClip e em outros objetos de exibio que
possuem contedo na maioria das vezes inaltervel. Em seguida, execute as transies laterais, as transies de intensidade e as mesclagens de alfa nesses objetos.
Use a propriedade cacheAsBitmapMatrix nos objetos de exibio que voc deseja escalar ou converter (aplicar
reposicionamento de x e y). Usando operaes da classe Matrix para escala e converso, os aceleradores de hardware do dispositivo executam as operaes. Alternativamente, considere o cenrio no qual voc altera as dimenses de um objeto de exibio que tem sua propriedade cacheAsBitmap definida como true. Quando as dimenses so alteradas, o software do runtime redesenha o bitmap. O redesenho com o software produz um desempenho pior do que a escala com acelerao de hardware usando uma operao Matrix. Por exemplo, considere um aplicativo que exibe uma imagem que se expande quando um usurio a seleciona. Use os tempos mltiplos de operao de escala Matrix para criar a iluso de uma imagem em expanso. Contudo, dependendo da imagem original e da imagem final, a qualidade da imagem final poder ser inaceitvel. Portanto, redefina as dimenses do objeto de exibio depois que as operaes de expanso forem concludas. Uma vez que cacheAsBitmap seja true, o software do runtime redesenhar o objeto de exibio, mas somente uma vez, e proporcionar uma imagem de alta qualidade. Nota: Geralmente, os dispositivos AIR for TV no suportam rotao e inclinao de hardware acelerado. Portanto, se voc especificar a rotao e a inclinao na classe Matrix, o AIR for TV executar todas as operaes de Matrix no software. Essas operaes de software podem ter um impacto prejudicial ao desempenho.
Use a classe BitmapData para criar o comportamento de armazenamento de bitmap personalizado em cache.
Para obter mais informaes sobre cache de bitmap, consulte o seguinte:
Quando voc estiver usando uma imagem ou outro dado de bitmap, libere sua memria grfica associada. Para
tanto, chame o mtodo dispose() da propriedade bitmapData do objeto Bitmap. Por exemplo:
myBitmap.bitmapData.dispose();
Nota: A liberao da referncia para o objeto BitmapData no libera a memria grfica imediatamente. O coletor de lixo do runtime eventualmente libera a memria grfica, mas a chamada de dispose() oferece maior controle para o seu aplicativo.
Use o PerfMaster Deluxe, um aplicativo do AIR fornecido pela Adobe, para entender melhor a acelerao grfica
de hardware no seu dispositivo de destino. Este aplicativo mostra os quadros por segundo para executar vrias operaes. Use o PerfMaster Deluxe para comparar diferentes implementaes da mesma operao. Por exemplo, compare a movimentao de uma imagem em bitmap com a movimentao de uma imagem em vetor. O PerfMaster Deluxe est disponvel em Flash Platform para TV.
127
Gerenciando a lista de exibio Para tornar um objeto de exibio invisvel, defina a propriedade visible do objeto como false. Em seguida, o objeto continuar na lista de exibio, mas o AIR for TV no ir renderiz-lo nem exibi-lo. Essa tcnica til para objetos que frequentemente entram e saem de visualizao, porque demanda apenas um pouco mais de processamento. No entanto, a definio da propriedade visible em false no libera nenhum dos recursos do objeto. Portanto, ao concluir a exibio de um objeto ou, ao menos, conclu-la por algum tempo, remova o objeto da lista de exibio. Do mesmo modo, defina todas as referncias ao objeto como null. Essas aes permitem que o coletor de lixo libere os recursos do objeto.
O AIR for TV geralment usa acelerao de hardware para decodificar arquivos JPEG. O AIR for TV geralment usa software para decodificar arquivos PNG. A decodificao de arquivos PNG no
software rpida.
PNG o nico formato de plataforma cruzada que suporta transparncia (um canal alfa).
Portanto, use esses formatos de imagem da seguinte maneira em seus aplicativos:
Use arquivos JPEG para as fotografias tirarem proveito da decodificao por acelerao de hardware. Use os arquivos de imagem PNG para os elementos de interface do usurio Os elementos de interface do usurio
pode ter uma configurao alfa, e a decodificao com software proporciona um desempenho suficientemente rpido para os elementos de interface do usurio.
Resoluo de tela A rea de visualizao segura O modo de escala do palco O alinhamento do palco O estado de exibio do palco Desenhando para vrios tamanhos de tela A configurao de qualidade do palco
Resoluo de tela Atualmente, os aparelhos de TV costumam ter uma das seguintes resolues de tela: 540p, 720p e 1080p. Essas resolues de tela resultam nos seguintes valores na classe ActionScript Capabilities:
Resoluo de tela Capabilities.screenResolutionX 540p 720p 1080p 960 1280 1920
Capabilities.screenResolutionY
128
Para escrever um aplicativo do AIR for TV de tela inteira para um dispositivo especfico, defina os cdigos Stage.stageWidth and Stage.stageHeight para a resoluo de tela do dispositivo. Contudo, para escrever um aplicativo de tela inteira que execute em vrios dispositivos, use as propriedades Capabilities.screenResolutionX e Capabilities.screenResolutionY para definir as dimenses do palco. Por exemplo:
stage.stageWidth = Capabilities.screenResolutionX; stage.stageHeight = Capabilities.screenResolutionY;
A rea de visualizao segura A rea de visualizao segura em um televisor uma rea da tela que afastada das bordas da tela. Essa rea inserida suficientemente longe paa que o usurio possa ver a rea inteira, sem que o bisel do televisor oculte qualquer parte da rea. Uma vez que o bisel, que a moldura fsica em torno da tela, varia de acordo com o fabricante, o afastamento necessrio tambm varia. A rea de visualizao segura tenta garantir que a rea visvel da tela. A rea de visualizao segura tambm conhecida como rea de ttulo segura. Overscan a rea da tela que no visvel porque est atrs do bisel. A Adobe recomenda um afastamento de 7,5% em cada borda da tela. Por exemplo:
1920 1632
918
1080
Considere sempre a rea de visualizao segura ao projetar um aplicativo do AIR for TV de tela inteira:
Use a tela inteira para os planos de fundo, tais como imagens de fundo ou cores de fundo. Use a rea de visualizao segura somente para elementos de aplicativo crticos tais como texto, imagens, vdeo e
itens de interface do usurio como botes. A tabela a seguir mostra as dimenses da rea de visualizao segura de cada resoluo de tela tpica, usando um afastamento de 7,5%.
Resoluo de tela Largura e altura de uma rea de visualizao segura 816 x 460 Largura do afastamento direita e esquerda 72 Altura do afastamento superior e inferior
960x 540
40
129
Resoluo de tela
Largura e altura de uma rea de visualizao segura 1088x 612 1632 x 918
54 81
Contudo, uma prtica melhor sempre calcular dinamicamente a rea de visualizao segura. Por exemplo:
var horizontalInset, verticalInset, safeAreaWidth, safeAreaHeight:int; horizontalInset = .075 * Capabilities.screenResolutionX; verticalInset = .075 * Capabilities.screenResolutionY; safeAreaWidth = Capabilities.screenResolutionX - (2 * horizontalInset); safeAreaHeight = Capabilities.screenResolutionY - (2 * verticalInset);
O modo de escala do palco Defina Stage.scaleMode como StageScaleMode.NO_SCALE e fique na escuta de eventos de redimensionamento de palco.
stage.scaleMode = StageScaleMode.NO_SCALE; stage.addEventListener(Event.RESIZE, layoutHandler);
Essa configurao torna as coordenadas do palco iguais s coordenadas do pixel. Junto com o estado de exibio FULL_SCREEN_INTERACTIVE e o alinhamento de palco TOP_LEFT, essa configurao permite que voc use eficientemente a rea de visualizao segura. Especificamente, nos aplicativos de tela inteira esse modo de escala significa que as propriedades stageWidth e stageHeight da classe Stage correspondem s propriedades screenResolutionX e screenResolutionY da classe Capabilities. Alm disso, quando a janela do aplicativo muda de tamanho, os contedos do palco mantm seu tamanho definido. O runtime no executa automaticamente nenhum layout ou escala. Do mesmo modo, o runtime despacha o evento resize da classe Stage quando a janela muda de tamanho. Portanto, voc tem controle completo sobre como ajustar os contedos do aplicativo quando o aplicativo inicial e quando a janela do aplicativo muda de tamanho. Nota: O comportamento NO_SCALE igual ao de qualquer aplicativo do AIR. Nos aplicativos AIR for TV, no entanto, essa configurao crtica para usar a rea de visualizao segura. O alinhamento do palco Defina Stage.align como StageAlign.TOP_LEFT:
stage.align = StageAlign.TOP_LEFT;
Esse alinhamento coloca a coordenada 0,0 no canto superior esquerdo da tela, o que conveniente para a colocao de contedo usando ActionScript. Junto com o modo de escala NO_SCALE e com o estado de exibio FULL_SCREEN_INTERACTIVE, essa configurao permite que voc use eficientemente a rea de visualizao segura. O estado de exibio do palco Defina Stage.displayState num aplicativo do AIR for TV de tela inteira como StageDisplayState.FULL_SCREEN_INTERACTIVE:
stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;
130
Este valor define o aplicativo do AIR para expandir o palco sobre a tela inteira com a entrada de teclado ativada. A Adobe recomenda o uso da configurao FULL_SCREEN_INTERACTIVE. Junto com o modo de escala NO_SCALE e com o estado de alinhamento TOP_LEFT, essa configurao permite que voc use eficientemente a rea de visualizao segura. Portanto, nos aplicativos de tela inteira, em um manipulador do evento ADDED_TO_STAGE na classe document principal, faa o seguinte:
private function onStage(evt:Event):void { stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; stage.addEventListener(Event.RESIZE, onResize); stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE; }
Compare os tamanhos da resoluo da tela com a largura e a altura do palco. Se forem iguais, o evento RESIZE
ocorreu, porque o estado de exibio do palco mudou para FULL_SCREEN_INTERACTIVE.
Quando as dimenses do palco forem iguais a Capabilities.screenResolutionX e screenResolutionY, o AIR for TV far com que o hardware libere a melhor fidelidade possvel para os vdeos e imagens. Nota: A fidelidade com a qual as imagens e o vdeo so exibidos numa tela de TV pode diferir dos valores Capabilities.screenResolutionX e screenResolutionY, que dependem do dispositivo que est excutando o AIR for TV. Por exemplo, uma caixa set-top que executa o AIR for TV pode ter uma resoluo de tela de 1280 x 720, e a TC conectada pode ter uma resoluo de tela de 1920 x 1080. Contudo, o AIR for TV faz com que o hardware libere a melhor fidelidade possvel. Portanto, nesse exemplo, o hardware exibe um vdeo de 1080p usando uma resoluo de tela de 1920 x 1080. Desenhando para vrios tamanhos de tela Voc pode desenvolver o mesmo aplicativo do AIR for TV de tela inteira para trabalhar e bem e ter uma boa aparncia em vrios dispositivos AIR for TV. Faa o seguinte:
1 Defina as propriedades de palco scaleMode, align e displayState com os valores recomendados:
StageScaleMode.NO_SCALE, StageAlign.TOP_LEFT e StageDisplayState.FULL_SCREEN_INTERACTIVE,
respectivamente.
2 Configure a rea de visualizao segura com base em Capabilities.screenResolutionX e
Capabilities.screenResolutionY.
3 Ajuste o tamanho e o layoutdo contedo de acordo com a largura e a altura da rea de visualizao segura.
131
Embora os objetos do contedo sejam grandes, especialmente quando comparados com aplicativos de dispositivos mveis, os conceitos tais como layout dinmico, posicionamento relativo e contedo adaptvel so iguais. Para mais informaes sobre o ActionScript em apoio a esses contextos, consulte Criao de contedo do Flash mvel para vrios tamanhos de tela. A qualidade do palco A propriedade Stage.quality do aplicativo do AIR for TV sempre StageQuality.High. Ela no pode ser alterada. Essa propriedade especifica a qualidade de renderizao de todos os objetos Stage.
O AIR 2.5 adicionou muitas outras constantes de Teclado para suportar entrada de controle remoto. Para mais informaes, consulte Classe keyboard no livro Referncia do ActionScript 3.0 para Adobe Flash Platform. Para garantir que seu aplicativo funcione no mximo possvel de dispositivos, a Adobe recomenda o seguinte:
Use as teclas Menu e Info se o aplicativo precisar de algo mais do que as teclas de teclado direcional.
As teclas Menu e Info so as prximas teclas mais comuns nos controles remotos.
Certifique-se de que o usurio sempre escape de uma situao usando uma das teclas do teclado direcional.
132
s vezes o seu aplicativo tem um bom motivo parfa usar uma tecla que no seja das mais comuns nos controles remotos. Proporcionar uma rota de escape com teclas de teclado direcional faz o seu aplicativo ter um comportamento agradvel em todos os dispositivos.
No exija entrada para ponteiro exceto se voc conhecer o destino para o qual o dispositivo do AIR for TV tenha
uma capacidade de entrada para ponteiro. Embora muitos aplicativos de desktop prevejam entrada para mouse, a maioria dos televisores no suporta entrada para mouse. Portanto, se voc estiver convertendo aplicativos de desktop para serem executados em televisores, certifique-se de alterar o aplicativo para no prever entrada para mouse. Essas modificaes incluem mudanas na manipulao de eventos e alteraes nas instrues ao usurio. Por exemplo, quando a tela de inicializao de um aplicativo exibida, no exiba um texto que diga Clique para iniciar.
Gerenciamento do foco
Quando um elemento de interface do usurio mantm o foco em um aplicativo de computador pessoal, objetivo do usurio introduzir eventos tais como eventos de teclado e de mouse. Alm disso, um aplicativo destaca o elemento de interface do usurio com o foco. O gverenciamento do foco em um aplicativo do AIR for TV diferente do gerenciamento do foco em um aplicativo de computador pessoal, porque:
Os aplicativos de computador pessoal frequentemente usam a tecla tab para mudar o foco para o prximo elemento
da interface do usurio. O uso da tecla tab no se aplica aos aplicativos AIR for TV. Os dispositivos de controle remoto geralmente possuem uma tecla tab. Portanto, o gerenciamento do foco com a propriedade tabEnabled de um DisplayObject como o de um computador pessoal no aplicvel.
Os aplicativos de computador pessoal frequentemente esperam que o usurio use o mouse para focalizar um
elemento da interface do usurio. Portanto, no seu aplicativo, faa o seguinte:
Adicione ao Palco um evento do escutador que escute eventos do teclado tais como KeyboardEvent.KEY_DOWN. Providencie uma lgica de aplicao para determinar qual elemento da interface do usurio ser destacado para o
usurio final. Certifique-se de destacar um elemento da interface do usurio quando o aplicativo iniciar.
Com base em sua lgica de aplicao, despache o evento Keyboard que o Palco recebeu para o objeto apropriado
do elemento da interface do usurio. Voc tambm pode usar Stage.focus ou Stage.assignFocus() para dirigir o foco para um elemento da interface do usurio. Tambm possvel adicionar um escutador de eventos ao DisplayObject de forma que ele receba eventos do teclado.
133
Responsividade Use as seguintes dicas para tornar um aplicativo do AIR for TV o mais responsivo possvel.
Faa com que o arquivo SWF inicial do aplicativo seja o menor possvel.
No arquivo SWF inicial, carregue apenas os recursos necessrios para iniciar o aplcativo. Por exemplo, carregue somente a imagem da tela de inicializao do aplicativo. Embora essas recomendaes sejam vlidas para os aplicativos AIR para computador pessoal, so ainda mais importantes para os dispositivos AIR for TV. Por exemplo, os dispositivos AIR for TV no tm potncia de processamento igual dos computadores pessoais. Do mesmo modo, eles armazenam o aplicativo na memria flash, cujo acesso no to rpido como nos discos rgidos dos computadores pessoais.
Certifique-se de que o aplicativo execute a uma taxa de quadros de ao menos 20 quadros por segundo.
Projete seus grficos para atingir essa meta. A complexidade de suas operaes grficas pode afetar a taxa de quadros por segundo. Para obter dicas sobre como melhorar o desempenho de renderizao, consulte Otimizando o desempenho para a plataforma Adobe Flash. Nota: O hardware grfico nos dispositivos AIR for TV geralmente atualizam a tela taxa de 60 Hz ou 120 Hz (60 ou 120 vezes por segundo). O hardware varre o palco em busca de atualizaes a, por exemplo, 30 quadros por segundo ou 60 quadros por segundo para exibio em tela de 60 Hz ou 120 Hz. Contudo, se o usurio experimentar essas altas taxas de quadro depender da complexidade das operaes grficas do aplicativo.
Atualiza a tela dentro de 100 - 200 milsimos de segundo a partir da entrada do usurio.
Os usurios ficam impacientes quando as atualizaes demoram demais, o que geralmente resulta em vrios toques nas teclas. Usabilidade Os usurios dos aplicativos AIR for TV esto em um ambiente de sala de estar. Eles esto sentados na sala vendo TV a cerca de 3 a 5 metros de distncia. A sala s vezes escura. Eles geralmente usam um aparelho de controle remoto para seus comandos. Mais de uma pessoa pode usar o aplicativo; s vezes usam juntos e, s vezes, em sequncia. Portanto, ao projetar a interface do usurio para melhor usabilidade num televisor, considere o seguinte:
Use um bom constraste para tornar o contedo fcil de ver e ler de qualquer parte da sala. Faa com que fique bvio qual elemento da interface do usurio est em foco, tornando-o brilhante. Use movimento apenas quando necessrio. Por exempo, passar de uma tela para outra para obter continuidade
pode funcionar bem. Contudo, o movimento pode causar distrao se no ajuda o usurio a navegar ou se no intrnseco ao aplicativo.
134
Personalidade e expectativas do usurio Considere que os usurios dos aplicativos AIR for TV esto geralmente procurando entretenimento de qualidade na TV em um ambiente divertido e descontrado. Eles no so necessariamente especialistas em computadores ou em tecnologia. Portanto, projete os seus aplicativos AIR for TV com as seguintes caractersticas:
No use termos tcnicos. Evite dilogos modais. Use instrues informais e fceis, apropriadas a um ambiente de sala de estar, no a um ambiente de trabalho ou
tcnico.
Use imagens que tenham a alta qualidade de produo que os telespectadores esperam. Crie uma interface de usurio que trabalhe de maneira fcil com um dispositivo de controle remoto. No use
interface de usurio ou elementos de design que se adaptem melhor a um aplicativo de desktop ou mvel. Por exemplo, as interfaces de usurio em dispositivos de desktop e mveis geralmente envolvem apontar ou clicar botes com um mouse ou com o dedo.
Fontes e texto
Voc pode usar fontes do dispositivo ou fontes incorporadas no seu aplicativo AIT para TV. Fontes de dispositivo so as fontes que so instaladas em um dispositivo. Todos os dispositivos AIR for TV tm as seguintes fontes de dispositivo:
Nome da fonte
_sans
Descrio A fonte de dispositivo _sans uma fonte sans-serif. A fonte de dispositivo _sans . instalada nos dispositivos AIR for TV a Myriad Pro. Normalmente, uma fonte sem serifa ter uma melhor aparncia na TV do que fontes com serifa, devido distncia de visualizao. A fonte de dispositivo _serif uma fonte serif. A fonte de dispositivo serifinstaladas em todos os dispositivos AIR for TV a Minion Pro. A fonte de dispositivo _typewriter uma fonte monospace. A fonte de dispositivo _typewriterinstalada em todos os dispositivos AIR for TV a Courier Std.
_serif
_typewriter
135
Assistir a bons programas de televiso Projetado para titulao de vdeo So fontes de contorno, no fontes bitmap
Nota: Os fabricantes de dispositivos incluem outras fontes de dispositivo no dispositivo. Essas fontes de dispositivo fornecidas pelos fabricantes so instaladas em adio s fontes do dispositivo AIR for TV. A Adobe fornece um aplicativo chamado FontMaster Deluxe, que exibe todas as fontes de dispositivo presentes no dispositivo. O aplicativo est disponvel em Flash Platform para TV. Voc tambm pode usar fontes de dispositivo no seu aplicativo AIT para TV. Para mais informaes, consulte Renderizao avanada de texto no Guia do desenvolvedor do ActionScript 3.0. A Adobe recomenda o seguinte a respeito dos campos de texto TLF:
Use os campos de texto TLF para textos em idiomais asiticos para tirar proveito do local em que o aplicativo est
sendo executado. Defina a propriedade locale no objeto TextLayoutFormat associado ao objeto TLFTextField. Para mais informaes, consulte Seleo de cdigo de idiomas no Guia do desenvolvedor do ActionScript 3.0.
Especifique o nome da fonte na propriedade fontFamily no objeto TextLayoutFormat se a fontge no for uma das
fontes do dispositivo AIR for TV. O AIR for TV usar a fonte se ela estiver disponvel no dispositivo. Se a fonte que voc deseja no estiver no dispositivo, baseada na configurao de locale, o AIR for TV substituir a fonte de dispositivo apropriada do AIR for TV.
Especifique _sans, _serif, ou _typewriter para a propriedade fontFamily, juntamente colm a configurao
da propriedade locale para fazer com que o AIR for TV escolha uma fonte de dispositivo correta para o AIR for TV. Dependendo do local, o AIR for TV escolhe seu conjunto de fontes de dispositivo asiticas ou seu conjunto de fontes de dispositivo no asiticas. Essas configuraes proporcionam um modo fcil de usar automaticamente a fonte correta para a maior parte das variaes idiomticas asiticas ou do ingls. Nota: Se voc estiver usando campos de texto clssicos para texto em idioma asitico, especifique um nome de fonte de uma fonte de dispositivo do AIR for TV para garantir uma renderizao adequada. Se voc souber que outra fonte est instalada no dispositivo de destino, tambm poder especific-la. Quanto ao desempenho do aplicativo, considere o seguinte:
Os campos de texto clssicos proporcionam um desempenho mais rpido do que os campos de texto TLF. Um campo de texto clssico que usa fontes bitmap proporciona um desempenho melhor.
As fonters bitmap proporcionam um bitmap para cada caractere, ao contrrio de outras fontes, que fornecem apenas dados de contorno de cada caractere. As duas fontes de dispositivo podem ser fontes bitmap.
Se voc especificar uma fontge de dispositivo, certifique-se de que a fonte de dispositivo esteja instalada no
dispositivo de destino. Se a fonte no estiver instgalada no dispositivo, o AIR for TV buscar e usar outra fonte que esteja instalada no dispositivo. Contudo, esse comportamento torna mais lento o desempenho do aplicativo.
Como ocorre com qualquer objeto de exibio, se um objeto TextField for na maioria das vezes inaltervel, defina
a propriedade cacheAsBitmap do objeto como true. Essa configurao melhora o desempenho em transies como mudana de intensidade (fading), deslocamento e mesclagem de alfa. Use cacheAsBitmapMatrix para escala e converso. Para obter mais informaes, consulte Acelerao por hardware de grfico na pgina 125.
136
Cookies HTTP
O AIR for TV compatvel com os cookies contnuos de HTTP e com o cookies de sesso. O AIR for TV armazena cada cookie do aplicativo do AIR em um diretrio especfico do aplicativo:
/app-storage/<app id>/Local Store
O arquivo de cookie nomeado cookies. Nota: O AIR em outros dispositivos, como dispositivos pessoais, no armazenam cookies separadamente para cada aplicativo. O armazenamento de cookie especfico de aplicativo compatvel com o modelo de aplicativo e de segurana do sistema do AIR for TV. Use a propriedade URLRequest.manageCookies do ActionScript da seguinte maneira:
Defina manageCookies como true. Este valor o padro. Isso significa que o AIR for TV adiciona cookies
automaticamente s solicitaes ao HTTP e memoriza os cookies na resposgta doe HTTP. Nota: Mesmo quando manageCookies true, o aplicativo pode adicionar um cookie manualmente a uma solicitao ao HTTP usando URLRequest.requestHeaders. Se esse cookie tiver o mesmo nomde de um cookie que o AIR for TV esteja gerenciando, a solicitao ter dois cookies com o mesmo nome. Os valores dos dois cookies podem ser diferentes.
137
Defina manageCookies como false. Esse valor significa que o aplicativo responsvel por enviar cookies
automaticamente s solicitaes ao HTTP e por memorizar os cookies na resposta do HTTP. Para obter mais informaes, consulte URLRequest.
O AIR SDK
A partir do AIR 2.5, possvel desenvolver os aplicativos usando as ferramentas da linha de comando fornecidas pelo AIR SDK. Para baixar o AIR SDK, see http://www.adobe.com/products/air/sdk/.
Configuraes do projeto
Faa o seguinte para configurar seu projeto para um aplicativo do AIR for TV:
Na guia Flash da caixa de dilogo Configuraes de Publicao, defina o valor Player em pelo menos AIR 2.5. Na guia Geral da caixa de dilogo Configuraes do Adobe AIR (Configuraes do Aplicativo e do Programa de
Instalao), defina o perfil como TV ou TV expandida.
Depurao
Voc pode executar seu aplicativo usando o AIR Debug Launcher dentro do Flash Professional. Faa o seguinte:
138
Depois de definir o perfil do AIR como TV ou TV expandida, o AIR Debug Launcher apresentar um menu chamado Botes do Controle Remoto. Voc pode usar este menu para simular a digitao de teclas em um dispositivo com controle remoto. Para obter mais informaes, consulte Depurao remota com o Flash Professional na pgina 146.
No possvel publicar o aplicativo usando o Flash Professional. Para publicar o aplicativo, use ADT. Consulte
Compactao com ADT na pgina 143.
No possvel executar ou depurar o aplicativo usando o Flash Professional. Para depurar o aplicativo na mquina
de desenvolvimento, use ADL. Consulte Simulao de dispositivos utilizando ADL na pgina 144.
Configurando o aplicativo
Certifique-se de que o seu aplicativo:
Utilize o elemento Application como a classe container no arquivo MXML, se voc estiver usando um arquivo MXML:
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx"> <!-- Place elements here. --> </s:Application>.
Importante: Os aplicativos AIR for TV no suportam o elemento WindowedApplication. Nota: Voc no precisa usar um arquivo MXML em nenhuma hiptese. Em vez disso, pode criar um projeto do ActionScript 3.0.
Utilize somente classes e mtodos do ActionScript 3.0 que sejam suportados pelos perfis tv e extendedTV do AIR.
Para obter detalhes, consulte Perfis de dispositivo na pgina 245. Alm disso, no arquivo XML do seu aplicativo, certifique-se de que:
139
sem os recursos do modo de depurao. Uma vez que voc definiu o elemento supportedProfiles como TV ou TV expandida, o AIR Debug Launcher apresenta um menu chamado Botes do Controle Remoto. Voc pode usar este menu para simular a digitao de teclas em um dispositivo com controle remoto. Para obter mais informaes, consulte Depurao remota com o Flash Builder na pgina 147.
No possvel publicar o aplicativo usando o Flash Builder. Para publicar o aplicativo, use ADT. Consulte
Compactao com ADT na pgina 143.
No possvel executar ou depurar o aplicativo usando o Flash Builder. Para depurar o aplicativo na mquina de
desenvolvimento, use ADL. Consulte Simulao de dispositivos utilizando ADL na pgina 144.
Configuraes comuns
Vrias configuraes de descritor de aplicativo so importantes para todos os aplicativos de perfil de TV.
140
Identidade do aplicativo
Diversas configuraes devem ser exclusivas para cada aplicativo que voc publicar. Essas configuraes incluem os elementos id, nome e nome de arquivo.
<id>com.example.MyApp</id> <name>My Application</name> <filename>MyApplication</filename>
Verso do aplicativo
Especifique a verso do aplicativo no elemento versionNumber. Ao especificar um valor para versionNumber, voc pode usar uma sequncia de at trs nmeros separados por pontos, como: "0.1.2". Cada segmento do nmero de verso pode ter at trs dgitos. (Em outras palavras, "999.999.999" o maior nmero de verso autorizada.) Voc no precisa incluir todos os trs segmentos do nmero; "1" e "1.0" so nmeros de verso legal. Voc tambm pode especificar um rtulo para a verso com o elemento versionLabel. Quando voc adiciona um rtulo da verso este exibido em vez do nmero da verso.
<versionNumber>1.23.7<versionNumber> <versionLabel>1.23 Beta 7</versionLabel>
Voc deve incluir o arquivo no pacote AIR (usando ADT ou sua IDE). Simplesmente fazer referncia do nome no descritor do aplicativo no faz com que o arquivo seja includo no pacote de maneira automtica.
fullScreen Especifica se o aplicativo deve tomar a tela completa do dispositivo, ou se deve compartilhar a tela
O elemento visible
O elemento visible um elemento filho do elemento initialWindowinitialWindow O AIR for TV ignora o elemento visible porque o contedo de seu aplicativo est sempre visvel nos dispositivos do AIR for TV. No entanto, defina o elemento visible como true se seu aplicativo tambm for dirigido aos dispositivos de desktop.
141
Nos dispositivos de desktop, o valor do elemento adota o padro false. Portanto, se voc no incluir o elemento visible, o contedo do aplicativo no ficar visvel nos dispositivos de desktop. Embora voc possa usar a classe NativeWindow do ActionScript para tornar o contedo visvel nos dispositivos de desktop, os perfis de aparelhos de TV no suportam a classe NativeWindow. Se voc tentar usar a classe NativeWindow em um aplicativo a ser executado em um dispositivo do AIR for TV, ocorrer uma falha no carregamento do aplicativo. No importa se voc chamar ou no um mtodo da classe NativeWindow; um aplicativo que utilize a classe no carregado em um dispositivo do AIR for TV.
Perfis disponveis
Se o seu aplicativo s fizer sentido em um aparelho de televiso, ento voc poder impedir sua instalao em outros tipos de dispositivos de computao. Exclua os outros perfis da lista suportada no elemento supportedProfiles:
<supportedProfiles>tv extendedTV</supportedProfiles>
Se um aplicativo usar uma extenso nativa, inclua somente o perfil extendedTV na lista de perfis suportados:
<supportedProfiles>extendedTV</supportedProfiles>
Se voc omitir o elemento supportedProfiles , pressupe-se que o aplicativo seja compatvel com todos os perfis. No inclua somente o perfil de tv na lista supportedProfiles. Alguns aparelhos de TV sempre executam o AIR for TV em um modo que corresponde ao perfil extendedTV. Esse comportamento ocorre para que o AIR for TV possa executar aplicativos que utilizam extenses nativas. Se seu elemento supportedProfiles especificar somente tv, ele est declarando que seu contedo incompatvel com o modo extendedTV do AIR for TV. Portanto, alguns dispositivos para TV no carregam um aplicativo que especifica somente o perfil tv. Para uma lista de classes ActionScript disponveis nos perfis tv e extendedTV, consulte Capacidades de perfis diferentes na pgina 246.
Se uma extenso no estiver listada, o aplicativo no poder us-la. O elemento extensionID tem o mesmo valor que o elemento id no arquivo descritor de extenso. O arquivo descritor da extenso um arquivo XML chamado extension.xml. Ele empacotado no arquivo ANE que voc recebe do fabricante do dispositivo. Se voc listar uma extenso no elementoextensions, mas o dispositivo do AIR for TV no tiver uma extenso instalada, o aplicativo no poder ser executado. A exceo a essa regra ocorre quando o arquivo ANE que voc empacotou com o aplicativo do AIR for TV tem uma verso do componente da extenso. Em caso afirmativo, o aplicativo poder ser executado e usar a verso do componente da extenso. A verso do componente tem o cdigo do ActionScript, mas nenhum cdigo nativo.
142
cones de aplicativos
Os requisitos relativos aos cones do aplicativo nos aparelhos de televiso dependem de cada aparelho. Por exemplo, o fabricante do aparelho especifica:
cones e tamanhos de cones necessrios. Tipos de arquivos e convenes de nomenclatura necessrias. Como fornecer cones para o seu aplicativo, como se os cones sero empacotados com o seu aplicativo. Se possvel especificar os cones em um elemento cone no arquivo descritor do aplicativo. O comportamento, se o aplicativo no fornecer cones.
Consulte o fabricante do aparelho para obter detalhes.
Configuraes ignoradas
Aplicativos em aparelhos de televiso ignoram as configuraes de aplicativo que se aplicam janela nativa e mvel, ou aos recursos do sistema operacional de rea de trabalho. As configuraes ignoradas so:
allowBrowserInvocation aspectRatio autoOrients customUpdateUI fileTypes height installFolder maximizable maxSize minimizable minSize programMenuFolder renderMode resizable systemChrome title transparent visible width x y
143
O caminho da ferramenta ADT est na definio de caminho do shell da linha de comando. (Consulte Variveis
de ambiente do caminho na pgina 304.)
O certificado codesign.p12 est no diretrio pai do qual voc execugta o comando ADT.
Execute o comando a partir de um diretrio que contm os arquivos do aplicativo. Os arquivos do aplicativo no exemplo so myApp-app.xml (o arquivo descritor do aplicativo), myApp.swf, e um diretrio de cones. Quando voc executa o comando, como demonstrado, a ADT solicitar a senha do armazenamento de chaves. Nem todos os programas de shell exibem os caracteres de senha que voc digita; simplesmente pressione Enter quando estiver digitando. Alternativamente, voc pode usar o parmetro storepass para incluir a senha no comando ADT. Criao de um pacote AIRN Se o aplicativo do AIR for TV usar uma extenso nativa, crie um pacote AIRN em vez de um pacote AIR. Para criar um pacote AIRN, use o comando de pacote ADT, definindo o tipo de destino como airn.
adt -package -storetype pkcs12 -keystore ../codesign.p12 -target airn myApp.airn myApp-app.xml myApp.swf icons -extdir C:\extensions
O caminho da ferramenta ADT est na definio de caminho do shell da linha de comando. (Consulte Variveis
de ambiente do caminho na pgina 304.)
O certificado codesign.p12 est no diretrio pai do qual voc execugta o comando ADT. O parmetro -extdir denomina um diretrio que contm os arquivos ANE que o aplicativo usa.
Esses arquivos ANE contm um fragmento somente para ou uma verso de simulador da extenso ActionScript. A verso da extenso que contm o cdigo nativo est instalada no dispositivo AIR for TV. Execute o comando a partir de um diretrio que contm os arquivos do aplicativo. Os arquivos do aplicativo no exemplo so myApp-app.xml (o arquivo descritor do aplicativo), myApp.swf, e um diretrio de cones. Quando voc executa o comando, como demonstrado, a ADT solicitar a senha do armazenamento de chaves. Nem todos os programas de shell exibem os caracteres de senha que voc digita; simplesmente pressione Enter quando estiver digitando. Alternativamente, voc pode usar o parmetro storepass para incluir a senha no comando.
144
Tambm possvel criar um arquivo AIRI para um aplicativo do AIR for TV que use extenses nativas. O arquivo AIRI semelhante ao arquivo AIRN, exceto por no ser assinado. Por exemplo:
adt -prepare myApp.airi myApp.xml myApp.swf icons -extdir C:\extensions
Voc pode, ento, criar um arquivo AIRN a partir de um arquivo AIRI quando estiver pronto para assinar o aplicativo:
adt -package -storetype pkcs12 -keystore ../codesign.p12 -target airn myApp.airn myApp.airi
Para obter mais informaes, consulte Desenvolvimento de extenses nativas para Adobe AIR.
Empacotar aplicativos AIR com o Flash Builder Publicao no Adobe AIR usando Flash Professional
Se mais de um perfil estiver listado, o ADL usa o primeiro na lista. Voc tambm pode usar o parmetro -profile da ADL para selecionar um dos outros perfis na lista
supportedProfiles .
(Se voc no incluir um elemento supportedProfiles no descritor do aplicativo, qualquer perfil poder ser
especificado para o argumento -profile.) Por exemplo, use o seguinte comando para iniciar um aplicativo para simular o perfil tv:
adl -profile tv myApp-app.xml
Ao simular o perfil tv ou extendedTV na rea de trabalho com o ADL, o aplicativo executado em um ambiente que mais se aproxima de um dispositivo de destino. Por exemplo:
As APIs do ActionScript que no fazem parte do perfil no argumento -profile no esto disponveis. A ADL permite a entrada de controles de entrada de dispositivo, tais como controles remotos, por meio dos
comandos de menu.
A especificao de tv ou extendedTVno
rea de trabalho.
145
A especificao extendedTV no argumento -profile permite que o aplicativo use fragmentos ou simuladores de
extenses nativas empacotados com o arquivo AIRN do aplicativo. No entanto, como ADL executa o aplicativo no ambiente de trabalho, os testes dos aplicativos AIR for TV usando o ADL tem limitaes:
No simula as limitaes do objeto StageVideo. Normalmente voc usa a classe StageVideo e no a classe Video
para reproduzir um vdeo ao direcionar dispositivos AIR for TV. A classe StageVideo aproveita os benefcios de desempenho de hardware do dispositivo, mas tem limitaes de exibio. O ADL reproduz o vdeo na rea de trabalho sem essas limitaes. Por isso, teste a reproduo de vdeo no dispositivo de destino.
No se pode simular o cdigo nativo de uma extenso nativa. Voc pode, no entanto, especificar o perfil
extendedTV, que suporta extenses nativas, no argumento -profile da ADL. A ADL permite realizar testes com a verso do fragmento ou simulador somente para da exenso ActionScript includa no pacote ANE. No entanto, de modo geral a extenso correspondente, que instalada no dispositivo, tambm inclui cdigo nativo. Para realizar testes usando a extenso com seu cdigo nativo, execute o aplicativo no dispositivo de destino.
Para obter mais informaes, consulte AIR Debug Launcher (ADL) na pgina 160. Utilizao de extenses nativas Se o seu aplicativo usar extenses nativas, o comando ADL ter a aparncia semelhante ao seguinte exemplo:
adl -profile extendedTV -extdir C:\extensionDirs myApp-app.xml
O caminho da ferramenta ADL est na definio de caminho do shell da linha de comando. (Consulte Variveis
de ambiente do caminho na pgina 304.)
O diretrio atual contm os arquivos do aplicativo. Esses arquivos incluem os arquivos SWF e o arquivo descritor
do aplicativo, que myApp-app.xml neste exemplo.
O parmetro -extdir nomeia um diretrio que contm um diretrio para cada extenso nativa que o aplicativo
utiliza. Cada um desses diretrios contm o arquivo ANE desempacotado da extenso nativa. Por exemplo:
146
C:\extensionDirs extension1.ane META-INF ANE default library.swf extension.xml signatures.xml catalog.xml library.swf mimetype extension2.ane META-INF ANE default library.swf extension.xml signatures.xml catalog.xml library.swf mimetype
Esses arquivos ANE desempacotados contm somente um fragmento ou uma verso de simulador da extenso ActionScript. A verso da extenso que contm o cdigo nativo est instalada no dispositivo AIR for TV. Para obter mais informaes, consulte Desenvolvimento de extenses nativas para Adobe AIR. Entrada de controle O ADL simula as teclas do controle remoto de um aparelho de TV. Voc pode enviar as entradas destes botes para o dispositivo simulado usando o menu exibido quando o ADL ativado atravs de um dos perfis de TV. Tamanho da tela Voc pode testar seu aplicativo em telas de tamanho diferente, definindo o parmetro -screensize do ADL. Voc pode especificar uma string contendo os quatro valores que representam as larguras e alturas de telas normais e maximizadas. Sempre especifique as dimenses de pixel para o layout retrato, o que significa especificar a largura como um valor menor do que o valor da altura. Por exemplo:
adl -screensize 728x1024:768x1024 myApp-app.xml
Instrues de rastreio
Ao executar o aplicativo de TV na rea de trabalho, a sada de rastreio impressa para o depurador ou para a janela de terminal usada para ativar o ADL.
147
Independentemente do dispositivo de destino, execute as seguintes etapas para preparar a depurao remota:
1 Na caixa de dilogo Configuraes de Publicao, na guia Flash, selecione Permitir Depurao.
Esta opo faz com que o Flash Professional inclua informaes de depurao em todos os arquivos SWF que cria a partir do seu arquivo FLA.
2 Na guia Assinatura da caixa de dilogo Configuraes do Adobe AIR (Configuraes do Aplicativo e do Programa
de Instalao), selecione a opo para preparar um arquivo intermedirio do AIR (AIRI - AIR Intermediate). Quando voc ainda estiver desenvolvendo seu aplicativo, a utilizao de um arquivo AIRI, que no requer nenhuma assinatura, ser suficiente.
3 Publique o seu aplicativo criando o arquivo AIRI.
As ltimas etapas so instalar e executar o aplicativo no dispositivo de destino. No entanto, essas etapas dependem do dispositivo.
AIR (AIRI - AIR Intermediate). Quando voc ainda estiver desenvolvendo seu aplicativo, a utilizao de um arquivo AIRI, que no requer nenhuma assinatura, ser suficiente.
2 Publique o seu aplicativo criando o arquivo AIRI. 3 Altere o pacote AIRI do aplicativo para que contenha arquivos SWF que contenham informaes de depurao.
Os arquivos SWF que contm informaes de depurao do aplicativo em um diretrio chamado bin-debug esto localizados no diretrio de projeto do Flash Builder. Substitua os arquivos SWF do pacote AIRI por arquivos SWF do diretrio bin-debug. Em uma mquina de desenvolvimento em Windows, voc pode fazer essa substituio da seguinte maneira:
1 Renomeie o pacote AIRI para que tenha a extenso de nome de arquivo .zip, em vez de .airi. 2 Extraia o contedo do arquivo ZIP. 3 Substitua os arquivos SWF que esto na estrutura do diretrio de extrao pelos arquivos da depurao de bin. 4 Compacte os arquivos novamente no diretrio de extrao. 5 Altere o arquivo compactado para que tenha novamente a extenso de nome de arquivo .airi.
Se voc estiver usando uma mquina de desenvolvimento em Mac, as etapas dessa substituio dependero do dispositivo No entanto, elas geralmente envolvem o seguinte:
1 Instalar o pacote AIRI no dispositivo de destino. 2 Substituir os arquivos SWF do diretrio de instalao do pacote no dispositivo de destino por arquivos SWF do
diretrio bin-debug.
148
Por exemplo, considere o dispositivo includo com o Kit de Desenvolvimento de Hardware MAX 2010 do Adobe AIR for TV . Instale o pacote AIRI como descrito na documentao do kit. Em seguida, faa telnet na linha de comando de sua mquina de desenvolvimento em Mac para acessar o dispositivo de destino. Substitua os arquivos SWF do diretrio de instalao do aplicativo em /opt/adobe/stagecraft/apps/<nome do aplicativo>/ por arquivos SWF do diretrio bin-debug. As etgapas a seguir so relativas depurao remota com o Flash Builoder e o dispositivo includo com o Kit de Desenvolvimento de Hardware MAX 2010 do Adobe AIR for TV.
1 No computador que executa o Flash Builder, o seu computador de desenvolvimento, execute o Conector de
Dispositivos do AIR for TV que vem com o Kit de Desenvolvimento de Hardware MAX 2010. Ele mostra o endereo IP do seu computador de desenvolvimento.
2 No dispositivo do kit de hardware, ative o aplicativo DevMaster, que tambm fornecido com o kit de
desenvolvimento.
3 No aplicativo DevMaster, insira o endereo IP do seu computador de desenvolvimento como demonstrtado no
Conector do AIR for TV. Se a informao de rastreio no for exibida, o computador de desenvolvimento e o dispositivo do kitg de hardware no estaro conectados. Certifique-se de que a porta do computador de desenvolvimento que usada para a informao de rastreio esteja disponvel. Voc mpode escolher uma porta diferente no Conector do AIR for TV. Certifique-se tambm de que o seu firewall permita o acesso porta escolhida. Em seguida, inicie o depurador no Flash Builder. Faa o seguinte:
1 No Flash Builder, selecione Executar > Configuraes de Depurao. 2 Na configurao de depurao existente, que se destina depurao local, copie o nome do projeto. 3 Na caixa de dilogo Configuraes de Depurao, selecione Aplicativo da Web. Em seguida, selecione o cone
campo de texto.
6 Selecione Aplicar para salvar as alteraes. 7 Selecione Depurar para iniciar o depurador do Flash Builder. 8 Abra o seu aplicativo no dispositivo do kit de hardware.
Agora voc pode usar o depurador do Flash Builder para, por exemplo, definir pontos de quebra e examinar variveis.
149
A implementao do cdigo nativo fornece o acesso aos recursos especficos da plataforma. Esses recursos
especficos da plataforma no esto disponveis nas classes ActionScript embutidas, e no possvel os implementar nas classes ActionScript especficas do aplicativo. A implementao do cdigo nativo pode fornecer essa funcionalidade porque tem acesso ao hardware e ao software especficos do dispositivo.
Uma implementao do cdigo nativo s vezes pode ser mais rpida do que uma implementao que utilize
somente o ActionScript.
A implementao do cdigo nativo pode fornecer ao ActionScript o acesso ao cdigo nativo legado.
Alguns exemplos de extenses nativas esto no Centro do Desenvolvedor da Adobe. Por exemplo, uma extenso nativa fornece aos aplicativos AIR o acesso ao recurso de vibrao do Android. Consulte Native extensions for Adobe AIR.
Inclua o arquivo ANE no caminho da biblioteca do aplicativo da mesma maneira que voc incluiu um arquivo SWC
no caminho da biblioteca. Esse procedimento permite que o aplicativo busque referncias das extenses das classes ActionScript. Nota: Ao compilar seu aplicativo certifique-se de usar um vnculo dinmico para o ANE. Se voc usa o Flash Builder, especifique Externo no painel Propriedades do caminho no ActionScript Builder. Caso use a linha de comando, especifique -external-library-path.
150
Somente o perfil extendedDesktop do AIR suporta a classe NativeProcess. Portanto, para aplicativos com os perfis
mobileDevice e extendedMobileDevice do AIR, as extenses nativas so a nica escolha.
Os desenvolvedores de extenses nativas geralmente fornecem implementaes nativas para vrias plataformas,
mas a API do ActionScript que eles fornecem so geralmente as mesmas plataformas cruzadas. Ao usar a classe NativeProcess, o cdigo do ActionScript para iniciar o processo nativo pode variar entre as diferentes plataformas.
A classe NativeProcess inicia um processo separado, enquanto que a extenso nativa executada no mesmo
processo do aplicativo do AIR. Portanto, se voc est preocupado com o bloqueio de cdigos, o uso da classe NativeProcess mais seguro. No entanto, o processo separado significa que provavelmente voc tem uma manipulao de comunicao de interprocessos para implementar.
Dispositivos suportados
A partir do AIR 3, possvel utilizar extenses nativas em aplicativos para os seguintes dispositivos:
151
Dispositivos do iOS, a partir do iOS 4.0 Simulador iOS, a partir do AIR 3.3 Blackberry PlayBook Dispositivos pessoais do Windows que suportam o AIR 3.0 Dispositivos pessoais do Mac OS X que suportam o AIR 3.0
Geralmente, a mesma extenso nativa direcionada para mltiplas plataformas. O arquivo ANE da extenso contm bibliotecas do ActionScript e nativas para cada plataforma suportada. Geralmente, as bibliotecas do ActionScript possuem as mesmas interfaces pblicas para todas as plataformas. As bibliotecas nativas so basicamente diferentes. s vezes, uma extenso nativa compatvel com uma plataforma padro. A implementao da plataforma padro tem somente o cdigo do ActionScript, mas nenhum cdigo nativo. Se voc empacotar um aplicativo para uma plataforma que a extenso no suporte especificamente, o aplicativo utilizar a implementao padro ao ser executado. Por exemplo, considere uma extenso que fornece um recurso que se aplica somente a dispositivos mveis. A extenso tambm poder fornecer uma implementao padro que um aplicativo de desktop poder utilizar para simular o recurso.
extendedDesktop, a partir do AIR 3.0 mobileDevice, a partir do AIR 3.0 extendedMobileDevice, a partir do AIR 3.0
152
O elemento extensionID tem o mesmo valor que o elemento id no arquivo descritor de extenso. O arquivo descritor da extenso um arquivo XML chamado extension.xml. Ele empacotado em um arquivo ANE. possvel utilizar uma ferramenta de extrao de arquivo morto para visualizar o arquivo extension.xml.
localizar o arquivo.
2 Selecione Projeto > Propriedades no seu projeto do Flash Builder. 3 Selecione Caminho de Criao do Flex na caixa de dilogo Propriedades. 4 Na guia Caminho da Biblioteca, selecione Adicionar SWC.... 5 Navegue para o arquivo SWC e selecione Abrir. 6 Selecione OK na caixa de dilogo Adicionar SWC...
O arquivo ANE agora aparece na guia Caminho da Biblioteca, na caixa de dilogo Propriedades.
7 Expanda a entrada do arquivo SWC. Clique duas vezes em Tipo de Link para abrir a caixa de dilogo Opes de
Agora voc pode compilar o seu aplicativo usando, por exemplo, Projeto > Criar Projeto.
153
O arquivo SWC agora aparece na guia Caminho da Biblioteca na caixa de dilogo Configuraes Avanadas do ActionScript 3.0.
6 Com o arquivo SWC selecionado, selecione o boto Selecionar Opes de Ligao com uma Biblioteca. 7 Na caixa de dilogo Opes do Item do Caminho da Biblioteca, altere o tipo de link para Externo.
Observe o seguinte:
Utilize um tipo de pacote de instalador nativo. Especifique o diretrio da extenso. Certifique-se de que o arquivo ANE suporte o dispositivo de destino do aplicativo.
154
Para criar um pacote de aplicativo do Android, o arquivo ANE dever incluir a plataforma Android-ARM.
Alternativamente, o arquivo ANE dever incluir a plataforma padro e pelo menos uma outra plataforma.
Para criar um pacote de aplicativo do iOS, o arquivo ANE dever incluir a plataforma iPhone-ARM.
Alternativamente, o arquivo ANE dever incluir a plataforma padro e pelo menos uma outra plataforma.
Para criar um pacote de aplicativo do simulador iOS, o arquivo ANE dever incluir a plataforma iPhone-x86. Para criar um pacote de aplicativo do Mac OS X, o arquivo ANE dever incluir a plataforma MacOS-x86 .
Alternativamente, o arquivo ANE dever incluir a plataforma padro e pelo menos uma outra plataforma.
Para criar um pacote de aplicativo do Windows, o arquivo ANE dever incluir a plataforma Windows-x86.
Alternativamente, o arquivo ANE dever incluir a plataforma padro e pelo menos uma outra plataforma.
155
amxmlc chama mxmlc para compilar classes de aplicativos acompc chama compc para compilar bibliotecas e classes de componentes aasdoc chama asdoc para gerar arquivos de documentao a partir dos comentrios do cdigo-fonte
A nica diferena entre as verses Flex e AIR os utilitrios que as verses AIR carregam as opes de configurao do arquivo air-config.xml, em vez do arquivo flex-config.xml. As ferramentas Flex SDK e as suas opes de linha de comando so descritas em detalhes na Documentao do Flex. As ferramentas Flex SDK so descritas aqui em nvel bsico para ajud-lo a iniciar e para apontar as diferenas entre criar aplicativos Flex e aplicativos AIR.
Configurao do compilador
Geralmente voc deve especificar as opes de compilao tanto na linha de comando quanto com um ou mais arquivos de configurao. O arquivo de configurao GlobalFlex SDK contm valores padro que so usados sempre que os compiladores esto executando. Voc pode editar este arquivo para que se adapte ao seu ambiente de desenvolvimento. Existem dois arquivos de configurao global do Flex, situados no diretrio da estrutura da sua instalao do Flex SDK. O arquivo air-config.xml usado ao executar o compilador amxmlc. Este arquivo configura o compilador do AIR incluindo bibliotecas do AIR. O arquivo flex-config.xml usado ao executar mxmlc. Os valores de configurao padro so adequados para descobrir como o Flex e o AIR funcionam, mas quando voc embarcar em um projeto de larga escala examine as opes disponveis mais atentamente. Voc pode fornecer valores especficos ao projeto para as opes do compilador m um arquivo de configurao local que tem precedncia sobre os valores globais para um determinado projeto. Nota: Nenhuma opo de compilao usada para aplicativos AIR, mas voc deve consultar as biblioteca do AIR ao compilar um aplicativo do AIR. Geralmente, estas bibliotecas referem-se a um arquivo de configurao em nvel de projeto, em um arquivo para uma ferramenta de criao como Ant ou diretamente na linha de comando.
156
em que [compiler options] especifica as opes de linha de comando usadas para compilar o aplicativo do AIR. O comando amxmlc invoca o compilador mxmlc padro do Flex com um parmetro adicional, +configname=air. Esse parmetro instrui o compilador a usar o arquivo air-config.xml em vez do arquivo flex-config.xml. Usar amxmlc , de outro modo, idntico a usar mxmlc. O compilador carrega o arquivo de configurao air-config.xml especificando as bibliotecas do AIR e do Flex normalmente necessrias para compilar um aplicativo do AIR. Voc tambm pode usar um arquivo de configurao de nvel de projeto local para substituir ou adicionar opes adicionais configurao global. Tipicamente, a maneira mais fcil de criar um arquivo de configurao local editar uma cpia da verso global. Voc pode carregar o arquivo local com a opo -load-config: -load-config=project-config.xml Substitui opes globais. -load-config+=project-config.xml Adiciona valores adicionais quelas opes globais que levam mais de um valor, como a opo -library-path. Opes globais que levam apenas um nico valor so substitudas. Se voc usar uma conveno de nomenclatura especial para o arquivo de configurao local, o compilador amxmlc carrega o arquivo local automaticamente. Por exemplo, se o arquivo MXML principal RunningMan.mxml, nomeie o arquivo de configurao local: RunningMan-config.xml. Agora, para compilar o aplicativo, voc apenas precisa digitar:
amxmlc RunningMan.mxml RunningMan-config.xml carregado automaticamente, uma vez que seu nome de arquivo corresponde quele do
arquivo MXML compilado. exemplos de amxmlc Os seguintes exemplos demonstram o uso do compilador amxmlc. (Apenas os ativos do ActionScript e MXML do seu aplicativo devem ser compilados.) Compilar um arquivo MXML do AIR:
amxmlc myApp.mxml
157
Compilar um arquivo MXLM do AIR sem usar um arquivo de configurao (Mac OS X ou Linux):
mxmlc -library-path [AIR SDK]/frameworks/libs/air/airframework.swc, \ [AIR SDK]/frameworks/libs/air/airframework.swc, \ -library-path [Flex 3 SDK]/frameworks/libs/framework.swc \ -- myApp.mxml
Compilar um arquivo MXML do AIR para usar uma biblioteca compartilhada de runtime:
amxmlc -external-library-path+=../lib/myLib.swc -runtime-shared-libraries=myrsl.swf -myApp.mxml
Copie um arquivo AIR MXML para usar um ANE, certifique-se de usar -external-library-path para o ANE:
amxmlc -external-library-path+=../lib/myANE.ane -output=myAneApp.swf -- myAneApp.mxml
A opo flexlib identifica a localizao do seu diretrio de estruturas do SDK do Flex, permitindo que o compilador localize o arquivo flex_config.xml. Compilao de Java (sem o caminho de classe definido):
java -jar [Flex SDK 2]/lib/mxmlc.jar +flexlib [Flex SDK 3]/frameworks +configname=air [additional compiler options] -- myApp.mxml
Para invocar o compilador usando o Apach Ant (o exemplo usa uma tarefa Java para executar mxmlc.jar):
<property name="SDK_HOME" value="C:/Flex46SDK"/> <property name="MAIN_SOURCE_FILE" value="src/myApp.mxml"/> <property name="DEBUG" value="true"/> <target name="compile"> <java jar="${MXMLC.JAR}" fork="true" failonerror="true"> <arg value="-debug=${DEBUG}"/> <arg value="+flexlib=${SDK_HOME}/frameworks"/> <arg value="+configname=air"/> <arg value="-file-specs=${MAIN_SOURCE_FILE}"/> </java> </target>
158
Voc deve especificar que classes dentro da base do cdigo para incluir na biblioteca ou no componente. O acompc no procura um arquivo de configurao local automaticamente. Para usar um arquivo de configurao
de projeto, voc deve usar a opo load-config. O comando acompc invoca o compilador de componentes compc padro do Flex, mas carrega suas opes de configurao do arquivo air-config.xml em vez do arquivo flex-config.xml.
(Digite o comando inteiro em uma linha ou use o caractere de continuao de linha para seu shell de comando.)
Exemplos de acompc
Esses exemplos supem que voc est usando um arquivo de configurao chamado myLib-config.xml. Compilar um componente ou uma biblioteca do AIR:
acompc -load-config myLib-config.xml -output lib/myLib.swc
159
(Observe, a pasta lib deve existir e estar vazia antes de executar o comando.)
160
Uso do ADL
Para executar um aplicativo com o ADL, use o seguinte padro:
adl application.xml
Em que application.xml o arquivo do descritor do aplicativo para o aplicativo. A sintaxe completa para o ADL :
adl [-runtime runtime-directory] [-pubid publisher-id] [-nodebug] [-atlogin] [-profile profileName] [-screensize value] [-extdir extension-directory] application.xml [root-directory] [-- arguments]
(Itens entre colchetes, [], so opcionais.) -runtime runtime-directory Especifica o diretrio que contm o runtime a ser usado. Se no especificado, o diretrio do runtime no mesmo SDK do programa ADL usado. Se voc mover o ADL para fora da pasta SDK, especifique o diretrio de runtime. No Windows e no Linux, especifique o diretrio que contm o diretrio do Adobe AIR . No Mac OS X, especifique o diretrio que contm a estrutura do Adobe AIR.
161
-pubid publisher-id Atribui o valor especificado como o ID do editor do aplicativo do AIR para essa execuo. Especificar um ID de editor temporria permite que voc teste recursos de um aplicativo do AIR, como comunicao por uma conexo local, que usa o ID do editor para ajudar a identificar unicamente um aplicativo. A partir do AIR 1.5.3, voc tambm pode especificar o ID do editor no arquivo descritor do aplicativo (e no deve utilizar este parmetro). Nota: A partir do AIR 1.5.3, o ID do editor no mais automaticamente calculado e atribudo a um aplicativo do AIR. Voc pode especificar um ID de editor durante a criao de uma atualizao para um aplicativo do AIR, mas aplicativos novos no necessitam disso e voc no deve especificar um ID de editor. -nodebug Desativa o suporte para depurao. Se usado, o processo de aplicativo no poder se conectar ao depurador do Flash e as caixas de dilogo para excees no manipuladas so suprimidas. (No entanto, instrues de rastreamento ainda sero impressas na janela do console.) Desativar a depurao permite que o seu aplicativo seja executado um pouco mais rapidamente e tambm emula mais rigorosamente o modo de execuo de um aplicativo instalado. -atlogin Simula a execuo do aplicativo no login. Esta flag permite testar a lgica do aplicativo executada somente quando o aplicativo est configurado para iniciar no login do usurio. Quando -atlogin utilizado, a propriedade reason do objeto InvokeEvent enviado para o aplicativo ser login, em vez de standard (a no ser que o aplicativo j esteja sendo executado). -profile profileName O ADL depura o aplicativo utilizando o perfil especificado. O profileName pode ser um dos seguintes valores:
162
Tipo de tela iPadRetina iPhone iPhoneRetina iPhone5Retina iPod iPodRetina iPod5Retina NexusOne QVGA SamsungGalaxyS SamsungGalaxyTab WQVGA WVGA
Largura x altura normal 1536 x 2008 320 x 460 640x 920 640x1096 320 x 460 640x 920 640x1096 480x 762 240 x 320 480x 762 600x 986 240 x 400 480 x 800
Largura x altura tela cheia 1536 x 2048 320 x 480 640x 960 640x1136 320 x 480 640x 960 640x1136 480 x 800 240 x 320 480 x 800 600 x 1024 240 x 400 480 x 800
Sempre especifique as dimenses de pixel para o layout retrato, o que significa especificar a largura como um valor menor do que o valor da altura. Por exemplo, a tela NexusOne pode ser especificada com:
-screensize 480x762:480x800
-extdir extension-directory O diretrio no qual o runtime deve buscar extenses nativas. O diretrio contm um subdiretrio para cada extenso nativa que o aplicativo utilizar. Cada um desses subdiretrios contm o arquivo ANE desempacotado de uma extenso. Por exemplo:
163
C:\extensionDirs\ extension1.ane\ META-INF\ ANE\ Android-ARM\ library.swf extension1.jar extension.xml signatures.xml catalog.xml library.swf mimetype extension2.ane\ META-INF\ ANE\ Android-ARM\ library.swf extension2.jar extension.xml signatures.xml catalog.xml library.swf mimetype
O comando ADL exige que cada um dos diretrios especificados tenha a extenso do nome de arquivo .ane. No
entanto, o trecho do nome de arquivo antes do sufixo .ane pode ser qualquer nome de arquivo vlido. Eleno precisa corresponder ao valor do elemento extensionID do arquivo de indexao do aplicativo.
possvel especificar o parmetro -extdir mais de uma vez. O uso do parmetro-extdir diferente para a ferramenta ADT e a ferramenta ADL. Na ADT, o parmetro
especifica um diretrio que contenha arquivos ANE.
Exemplos de ADL
Execute um aplicativo no diretrio atual:
adl myApp-app.xml
164
Execute um aplicativo no perfil do dispositivo mvel e simular o tamanho da tela do Nexus One:
adl -profile mobileDevice -screensize NexusOne myMobileApp-app.xml
Execute um aplicativo usando Apache Ant para executar o aplicativo (os caminhos mostrados no exemplo so para Windows):
<property <property <property <property name="SDK_HOME" value="C:/AIRSDK"/> name="ADL" value="${SDK_HOME}/bin/adl.exe"/> name="APP_ROOT" value="c:/dev/MyApp/bin-debug"/> name="APP_DESCRIPTOR" value="${APP_ROOT}/myApp-app.xml"/>
<target name="test"> <exec executable="${ADL}"> <arg value="${APP_DESCRIPTOR}"/> <arg value="${APP_ROOT}"/> </exec> </target>
Inicializao bem-sucedida. O ADL encerrado aps o aplicativo do AIR ser encerrado. Invocao bem-sucedida de um aplicativo do AIR j em execuo. O ADL encerrado imediatamente. Erro de uso. Os argumentos fornecidos ao ADL esto incorretos. O runtime no pode ser encontrado. O runtime no pode ser iniciado. Muitas vezes, isso ocorre porque a verso especificada no aplicativo no corresponde verso do runtime. Ocorreu um erro de causa desconhecida. O arquivo do descritor do aplicativo no pode ser encontrado. O contedo do descritor do aplicativo no vlido. Esse erro normalmente indica que o XML no bem formado. O principal arquivo de contedo do aplicativo (especificado no elemento <content> do arquivo do descritor do aplicativo) no pode ser encontrado.
5 6 7
165
Cdigo de sada 9 10 11
Descrio
O principal arquivo de contedo do aplicativo no um arquivo SWF ou HTML vlido. Este aplicativo no possui suporte ao perfil especificado com a opo -profile. O argumento -screensize no compatvel no perfil atual.
166
Compactar um aplicativo do AIR como um arquivo de instalao .air Configure um aplicativo do AIR como um instalador nativo - por exemplo, como um arquivo de instalao .exe no
Windows, .ipa no iOS ou .apk no Android
Empacote uma extenso nativa como um arquivo de Extenso Nativa do AIR (ANE) Assinar um aplicativo do AIR com um certificado digital Mudar (migrar) a assinatura digital utilizada para atualizaes de aplicativos Determinar os dispositivos conectados a um computador Criar um certificado de assinatura do cdigo digital autoassinado Instalar, lanar e desinstalar remotamente um aplicativo em um dispositivo mvel Instalar e desinstalar remotamente o runtime do AIR em um dispositivo mvel
ADT um programa Java includo no AIR SDK. Voc deve ter o Java 1.5 ou superior para utiliz-lo. O SDK inclui um arquivo de script para chamar o ADT. Para usar este script, a localizao do programa Java deve ser includo na varivel de ambiente do caminho. Se o diretrio bin do AIR SDK tambm estiver listado na varivel de ambiente do caminho, voc pode digitar adt na linha de comando, com os argumentos adequados, para chamar o ADT. (Se voc no sabe como definir sua varivel de ambiente do caminho, consulte a documentao do seu sistema operacional. Como uma ajuda adicional, os procedimentos para definir o caminho na maioria dos sistemas de computador so descritos em Variveis de ambiente do caminho na pgina 304). So necessrios pelo menos 2GB de memria de computador ao usar o ADT. Se voc tem menos memria do que isso, o ADT pode ficar sem memria, especialmente quando ao compactar aplicativos para o iOS. Pressupondo que o diretrio bin de Java e AIR SDK estejam ambos includos na varivel de caminho, voc pode executar o ADT usando a seguinte sintaxe bsica:
adt -command options
Nota: A maioria dos ambientes de desenvolvimento integrados, incluindo Adobe Flash Builder e Adobe Flash Professional podem empacotar aplicativos do AIR para voc. Normalmente, voc no precisa usar o ADT para essas tarefas comuns quando j utiliza um ambiente de desenvolvimento. No entanto, voc ainda pode precisar utilizar o ADT como ferramenta de linha de comando para funes que no disponveis no seu ambiente de desenvolvimento integrado. Alm disso, voc pode usar ADT como ferramenta de linha de comando como parte de um processo de compilao automatizado.
Comandos do ADT
O primeiro argumento passado para ADT especifica um dos seguintes comandos.
-package compacta um aplicativo do AIR ou AIR Native Extension (ANE). -prepare compacta um aplicativo do AIR como arquivo intermedirio (AIRI), mas no o assina. Arquivos do
AIRI no podem ser instalados.
167
-sign assina um pacote do AIRI produzido com o comando -prepare. Os comandos -prepare e -sign permitem
que a compactao e a assinatura sejam feitas em momentos diferentes. Voc tambm pode usar o comando -sign para assinar ou reassinar um pacote ANE.
-migrate aplica uma assinatura de migrao para um pacote do AIR assinado, o que permite a utilizao de um
certificado novo ou renovado de assinatura do cdigo.
-certificate cria um certificado de assinatura de cdigo digital autoassinado. -checkstore verifica se um certificado digital em um armazenamento de chaves pode ser acessado. -installApp instala um aplicativo do AIR em um dispositivo ou emulador de dispositivo. -launchApp ativa um aplicativo do AIR em um dispositivo ou emulador de dispositivo. -appVersion informa a verso de um aplicativo do AIR instalado atualmente em um dispositivo ou emulador de
dispositivo.
-uninstallApp desinstala um aplicativo do AIR de um dispositivo ou emulador de dispositivo. -installRuntime instala o runtime do AIR em um dispositivo ou emulador de dispositivo. -runtimeVersion informa a verso de runtime do AIR instalado atualmente em um dispositivo ou emulador de
dispositivo.
-uninstallRuntime desinstala o runtime do AIR instalado de um dispositivo ou emulador de dispositivo. -version informa o nmero de verso do ADT. -devices informa as informaes do dispositivo a respeito de dispositivos mveis conectados ou emuladores. -help exibe a lista de comandos e opes.
Muitos comandos do ADT compartilham conjuntos relacionadas de parmetros e sinalizadores de opo. Estes conjuntos de opo so descritos em detalhe separadamente:
Opes de assinatura de cdigo ADT na pgina 180 Opes de caminho e arquivo na pgina 182 Opes de conexo do depurador na pgina 184 Opes de extenso nativas na pgina 184
168
adt -package AIR_SIGNING_OPTIONS -target packageType DEBUGGER_CONNECTION_OPTIONS -airDownloadURL URL NATIVE_SIGNING_OPTIONS output app_descriptor -platformsdk path FILE_OPTIONS
Crie um pacote nativo que inclua uma extenso nativa dos arquivos componentes do aplicativo:
adt -package AIR_SIGNING_OPTIONS -migrate MIGRATION_SIGNING_OPTIONS -target packageType DEBUGGER_CONNECTION_OPTIONS -airDownloadURL URL NATIVE_SIGNING_OPTIONS output app_descriptor -platformsdk path FILE_OPTIONS
Nota: No necessrio assinar um arquivo ANE, pois os parmetros AIR_SIGNING_OPTIONS so opcionais neste exemplo. AIR_SIGNING_OPTIONS As opes de assinatura do AIR identificam o certificado usado para assinar um arquivo de instalao do AIR. As opes de assinatura so totalmente descritas em Opes de assinatura de cdigo ADT na pgina 180. -migrate Este sinalizador especifica que o aplicativo assinado com um certificado de migrao, alm do certificado especificado nos parmetros AIR_SIGNING_OPTIONS. Este sinalizador vlido apenas se voc estiver empacotando um aplicativo de desktop como um instalador nativo e o aplicativo usar uma extenso nativa. Em outros casos ocorre um erro. As opes de assinatura para o certificado de migrao so especificados como os parmetros MIGRATION_SIGNING_OPTIONS. Essas opes de assinatura so descritas por completo nas Opes de assinatura de cdigo ADT na pgina 180. Usar o sinalizador -migrate permite que voc crie uma atualizao para um instalador de aplicativo de desktop nativo que use uma extenso nativa e altera o cdigo do certificado de assinatura do aplicativo, como quando expira o certificado original. Para obter mais informaes, consulte Assinatura de uma verso atualizada de um aplicativo do AIR na pgina 201. O sinalizador -migrate do comando -package est disponvel no AIR 3.6 e posterior.
169
air um pacote do AIR. air o valor padro e o sinalizador -target no precisa ser especificado ao criar arquivos
do AIR ou AIRI.
airn um pacote de aplicativo nativo para dispositivos no perfil televiso estendida. ane um pacote de extenso nativa do AIR Destinos dos pacotes Android: apk um pacote do Android. Um pacote produzido com este destino s pode ser instalado em um dispositivo
Android e no em um emulador.
apk-captive-runtime um pacote Android que inclui a verso aplicativo e uma verso cativa do AIR runtime.
Um pacote produzido com este destino s pode ser instalado em um dispositivo Android e no em um emulador.
apk-debug um pacote do Android com informaes extras de depurao. (Os arquivos SWF no aplicativo
tambm devem ser compilados com o suporte de depurao.)
apk-emulator um pacote do Android para o uso em um emulador sem suporte de depurao. (Use o destino
apk-debug para permitir a depurao dos emuladores e dos dispositivos.)
Destinos dos pacotes iOS: ipa-ad-hoc um pacote do iOS para distribuio ad hoc. ipa-app-store um pacote do iOS para distribuio App Store da Apple ipa-debug um pacote do Android com informaes extras de depurao. (Os arquivos SWF no aplicativo
tambm devem ser compilados com o suporte de depurao.)
ipa-test um pacote de IOS compilado sem otimizao ou informaes de depurao. ipa-debug-interpreter funcionalmente igual a um pacote de depurao, mas compila mais rapidamente. No
entanto, o ActionScript bytecode interpretado e no convertido para cdigo de mquina. Como resultado, a execuo do cdigo mais lenta num pacote do intrprete.
native um instalador desktop nativo. O tipo de arquivo produzido o formato de instalao nativo do sistema
operacional no qual o comando executado:
EXE Windows DMG Mac DEB Ubuntu Linux (AIR 2.6 ou anterior) RPM Fedora ou Linux OpenSuse (AIR 2.6 ou anterior)
170
Para obter mais informaes, consulte Compactao de um instalador desktop nativo na pgina 55. -amostra (apenas iOS, AIR 3.4 ou superior) Ativa a amostra baseada em telemetria do ActionScript em aplicativos iOS. O uso desse sinalizador permite que voc crie o perfil do aplicativo com o Adobe Scout. Embora o Scout possa criar o perfil de qualquer contedo da plataforma Flash, a ativao de telemetria detalhada oferece uma viso mais profunda da temporizao de funo do ActionScript, do DisplayList, da renderizao do Stage3D e muito mais. Observe que o uso desse sinalizador ter um pequeno impacto no desempenho, portanto, no use em aplicativos de produo. -hideAneLibSymbols (apenas iOS, AIR 3.4 ou superior). Os desenvolvedores de aplicativos podem usar vrias extenses nativas de diferentes fontes e, se o ANE compartilhar um nome de smbolo comum, o ADT gerar um erro de "smbolo duplicado no arquivo do objeto". Em alguns casos, esse erro pode se manifestar at mesmo como um travamento no runtime. Voc pode usar a opo hideAneLibSymbols para especificar se os smbolos da biblioteca ANE ficaro visveis apenas para as fontes da biblioteca (yes) ou para todos (no):
yes Oculta os smbolos ANE, que resolvem qualquer conflito de smbolo indesejado. no (Padro) No oculta os smbolos ANE. Este o comportamento antes do AIR 3.4.
DEBUGGER_CONNECTION_OPTIONS As opes de conexo do depurador especificam se um pacote de depurao dever tentar se conectar a um depurador remoto que esteja executando num computador ou se dever ficar na escuta de uma conexo a partir de um depurador remoto. Este conjunto de opes suportado somente para pacotes de depurao mveis (destinos apk-debug e ipa-debug). Essas opes so descritas em Opes de conexo do depurador na pgina 184. -airDownloadURL Especifica um URL alternativo para baixar e instalar o runtime do AIR em dispositivos Android. Se no for especificado, um aplicativo do AIR redirecionar o usurio para um runtime do AIR no Android Market se o runtime ainda no estiver instalado. Se o seu aplicativo for distribudo por meio de um marketplace alternativo (diferente do Android Market administrado pelo Google), ento voc poder precisar especificar o URL para baixar o runtime do AIR do mercado. Alguns mercados alternativos no permitem que os aplicativos solicitem um download de fora do mercado. Essa opo s suportada para pacotes Android. NATIVE_SIGNING_OPTIONS As opes de assinatura nativa identificam o certificado usado para assinar um arquivo de pacote nativo. Estas opes de assinatura so usadas para aplicar uma assinatura utilizada pelo sistema operacional nativo, no o AIR. As opes so idnticas s AIR_SIGNING_OPTIONS e so completamente descritas em Opes de assinatura de cdigo ADT na pgina 180. Assinaturas nativas esto disponveis no Windows e no Android. No Windows, as opes de assinatura do AIR e as nativas devem ser especificadas. No Android apenas as opes de assinatura nativa podem ser especificadas. Em muitos casos, voc pode usar o mesmo certificado de assinatura de cdigo para aplicar tanto uma assinatura do AIR e uma nativa. Contudo, isso no verdade em todos os casos. Por exemplo, a poltica do Google para aplicativos enviados ao Android Market determina que todos os aplicativos devam ser assinados com um certificado vlido pelo menos at 2033. Isto significa que um certificado emitido por uma autoridade de certificao conhecida, recomendado quando se aplica uma assinatura do AIR, no deve ser usado para assinar um aplicativo do Android. (Nenhuma autoridade de certificao emitir um certificado de assinatura de cdigo com este longo perodo de validade). output O nome do arquivo do pacote a ser criado. A especificao da extenso do arquivo opcional. Se no especificada, adicionada uma extenso adequada para o valor -target e para o sistema operacional atual. app_descriptor O caminho para o arquivo do descritor do aplicativo. O caminho pode ser especificado em relao ao diretrio atual ou como um caminho absoluto. (O arquivo de descritor do aplicativo renomeado como application.xml no arquivo do AIR.)
171
Android - O AIR 2.6+ SDK inclui as ferramentas do Android SDK necessrias para implementar os comandos
relevantes do ADT. Somente defina este valor para usar uma verso diferente do Android SDK. Alm disso, o caminho SDK da plataforma no precisa ser fornecido na linha do comando se a varivel de ambiente AIR_ANDROID_SDK_HOME j estiver definida. (Se ambos estiverem definidos, o caminho fornecido na linha de comando usado.)
iOS - O AIR SDK enviado com um iOS SDK cativo. A opo -platformsdk permite que voc empacote aplicativos
com um SDK externo para que no fique restrito ao iOS SDK cativo. Por exemplo, se voc criou uma extenso com o iOS SDK mais recente, voc pode especificar esse SDK ao empacotar seu aplicativo. Alm disso, ao usar o ADT com o simulador iOS, voc precisa sempre incluir a opo -platformsdk especificando o caminho do SDK do simulador iOS. FILE_OPTIONS Identifica os arquivos do aplicativo a serem includos no pacote. As opes de arquivo esto descritas na ntegra em Opes de caminho e arquivo na pgina 182. No especifique as opes de arquivo ao criar um pacote nativo de um arquivo do AIR ou AIRI. input_airi Especifique ao criar um pacote nativo de um arquivo do AIRI. As AIR_SIGNING_OPTIONS so necessrias se o destino for air (ou se nenhum destino for especificado). input_airi Especifique ao criar um pacote nativo de um arquivo do AIR. No especifique AIR_SIGNING_OPTIONS. ANE_OPTIONS Identifica as opes e arquivos para criar um pacote de extenso nativa. As opes de pacote de extenso so descritas em detalhes em Opes de extenso nativas na pgina 184.
Arquivos de aplicativo especfico ao pacote no diretrio atual para um aplicativo do AIR baseado em HTML:
adt package -storetype pkcs12 -keystore cert.p12 myApp.air myApp.xml myApp.html AIRAliases.js image.gif
Nota: O arquivo de armazenamento de chaves contm a chave privada usada para assinar seu aplicativo. Nunca inclua o certificado de assinatura no pacote do AIR! Se voc usar caracteres curinga no comando do ADT, coloque o arquivo de armazenamento de chaves em um local diferente para que ele no seja includo no pacote. Neste exemplo, o arquivo de armazenamento de chaves, cert.p12, reside no diretrio pai. Empacote apenas os arquivos principais e um subdiretrio de imagens:
adt package -storetype pkcs12 -keystore cert.p12 myApp.air myApp.xml myApp.swf images
Empacote um aplicativo baseado em HTML e todos os arquivos nos subdiretrios de HTML, scripts e imagens:
adt package -storetype pkcs12 -keystore cert.p12 myApp.air myApp.xml index.html AIRALiases.js html scripts images
Empacote ativos de mais de um lugar no seu sistema de arquivo de criao. Neste exemplo, os ativos do aplicativo so localizados nas seguintes pastas antes do empacotamento:
172
/devRoot /myApp /release /bin myApp-app.xml myApp.swf or myApp.html /artwork /myApp /images image-1.png ... image-n.png /libraries /release /libs lib-1.swf lib-2.swf lib-a.js AIRAliases.js
Execute ADT como um programa Java para um aplicativo simples baseado em SWF (sem configurar o classpath):
java jar {AIRSDK}/lib/ADT.jar package -storetype pkcs12 -keystore cert.p12 myApp.air myApp.xml myApp.swf
Execute ADT como um programa Java para um aplicativo simples baseado em HTML (sem configurar o classpath):
java jar {AIRSDK}/lib/ADT.jar package -storetype pkcs12 -keystore cert.p12 myApp.air myApp.xml myApp.html AIRAliases.js
Execute o ADT como um programa Java (com o caminho da classe Java definido para incluir o pacote ADT.jar):
java -com.adobe.air.ADT package -storetype pkcs12 -keystore cert.p12 myApp.air myApp.xml myApp.swf
173
Execute o ADT como uma tarefa Java no Apache Ant (embora seja melhor usar o comando diretamente nos scripts Ant). Os caminhos mostrados no exemplo so para o Windows:
<property name="SDK_HOME" value="C:/AIRSDK"/> <property name="ADT.JAR" value="${SDK_HOME}/lib/adt.jar"/> target name="package"> <java jar="${ADT.JAR}" fork="true" failonerror="true"> <arg value="-package"/> <arg value="-storetype"/> <arg value="pkcs12"/> <arg value="-keystore"/> <arg value="../../ExampleCert.p12"/> <arg value="myApp.air"/> <arg value="myApp-app.xml"/> <arg value="myApp.swf"/> <arg value="icons/*.png"/> </java> </target>
Nota: Em alguns sistemas de computadores, os caracteres de bytes duplos nos caminhos do sistema de arquivos pode ser mal-interpretado. Se isto acontecer, tente definir o JRE usado para executar o ADT para usar o conjunto de caracteres UTF-8. Isso feito por padro no script usado para iniciar o ADT no Mac e no Linux. No arquivo adt.bat do Windows, ou ao executar o ADT diretamente do Java, especifique a opo -Dfile.encoding=UTF-8 na linha de comando Java.
output O nome do arquivo do AIRI criado. app_descriptor O caminho para o arquivo do descritor do aplicativo. O caminho pode ser especificado em relao ao diretrio atual ou como um caminho absoluto. (O arquivo de descritor do aplicativo renomeado como application.xml no arquivo do AIR.) FILE_OPTIONS Identifica os arquivos do aplicativo a serem includos no pacote. As opes de arquivo esto descritas na ntegra em Opes de caminho e arquivo na pgina 182.
AIR_SIGNING_OPTIONS As opes de assinatura do AIR identificam o certificado usado para assinar um arquivo de pacote. As opes de assinatura so totalmente descritas em Opes de assinatura de cdigo ADT na pgina 180. input O nome do arquivo do AIRI ou ANE a ser criado. output O nome do pacote assinado a ser criado.
174
Se um arquivo ANE j estiver assinado, a assinatura antiga descartada. (Os arquivos AIR no podem ser assinados novamente para usar uma nova assinatura para uma atualizao do aplicativo, use o comando -migrate.)
AIR_SIGNING_OPTIONS As opes de assinatura do AIR que identificam o certificado original usado para assinar as verses existentes do aplicativo do AIR. As opes de assinatura so totalmente descritas em Opes de assinatura de cdigo ADT na pgina 180. input O arquivo do AIR j assinado com o NOVO certificado do aplicativo. output O nome das assinaturas de tolerncia do pacote final dos certificados novos e antigos. Os nomes de arquivos usados para os arquivos do AIR de entrada e de sada devem ser diferentes. Nota: O comando migrate do ADT no pode ser usado com aplicativos AIR para desktop que incluem extenses nativas, pois estes so empacotados como os instaladores nativos, no como arquivos .air. Para alterar certificados para um aplicativo AIR para desktop que inclua uma extenso nativa, empacote o aplicativo usando o Comando package do ADT na pgina 167 com o sinalizador -migrate.
SIGNING_OPTIONS As opes de assinatura que identificam o armazenamento de chaves para validao. As opes de assinatura so totalmente descritas em Opes de assinatura de cdigo ADT na pgina 180.
175
adt -certificate -cn name -ou orgUnit -o orgName -c country -validityPeriod years key-type output password
-cn A sequncia de caracteres atribuda como o nome comum do novo certificado. -ou Uma sequncia de caracteres atribuda como a unidade organizacional que emite o certificado. (Opcional.)
-o Uma sequncia de caracteres atribuda como a organizao que emite o certificado. (Opcional.) -c Um cdigo de pas de duas letras ISO-3166. Um certificado no gerado se um cdigo invlido fornecido. (Opcional.) -validityPeriod O nmero de anos nos quais o certificado vlido. Se no for especificada, atribuda uma validade
output O caminho e o nome do arquivo para o arquivo do certificado a ser gerado. password A senha para acessar o novo certificado. A senha necessria ao assinar arquivos do AIR com esse certificado.
-platform O nome da plataforma do dispositivo. Especifique ios ou android. -platformsdk O caminho para a plataforma SDK para o dispositivo de destino (opcional):
Android - O AIR 2.6+ SDK inclui as ferramentas do Android SDK necessrias para implementar os comandos
relevantes do ADT. Somente defina este valor para usar uma verso diferente do Android SDK. Alm disso, o caminho SDK da plataforma no precisa ser fornecido na linha do comando se a varivel de ambiente AIR_ANDROID_SDK_HOME j estiver definida. (Se ambos estiverem definidos, o caminho fornecido na linha de comando usado.)
iOS - O AIR SDK enviado com um iOS SDK cativo. A opo -platformsdk permite que voc empacote aplicativos
com um SDK externo para que no fique restrito ao iOS SDK cativo. Por exemplo, se voc criou uma extenso com o iOS SDK mais recente, voc pode especificar esse SDK ao empacotar seu aplicativo. Alm disso, ao usar o ADT com o simulador iOS, voc precisa sempre incluir a opo -platformsdk especificando o caminho do SDK do simulador iOS. -device Especifica ios_simulator, o nmero de srie (Android) ou identificador (iOS) do dispositivo conectado. No iOS, esse parmetro obrigatrio. No Android, esse parmetro precisa ser especificado somente quando mais de um dispositivo Android ou emulador conectado ao seu computador e executado. Se o dispositivo especificado no estiver conectado, o ADT retorna o cdigo de sada 14: Erro de dispositivo (Android) ou Dispositivo invlido especificado (iOS). Se mais de um dispositivo ou emulador estiver conectado e um dispositivo no for especificado, o ADT retorna o cdigo de sada 2: Erro de uso. Nota: A instalao de um arquivo IPA diretamente em um dispositivo iOS est disponvel no AIR 3.4 e superior e precisa do iTunes 10.5.0 ou superior.
176
Use o comando adt -devices (disponvel no AIR 3.4 e superior) para determinar o identificador ou o nmero de srie dos dispositivos conectados. Observe que no iOS voc usa o identificador, no o UUID do dispositivo. Para obter mais informaes, consulte Comando de dispositivos do ADT na pgina 179. Alm disso, use a ferramenta ADB do Android para listar os nmeros de srie dos dispositivos conectados e emuladores em execuo:
adb devices
-package O nome do arquivo do pacote a ser instalado. No iOS, ele deve ser um arquivo IPA. No Android este deve ser um pacote APK. Se o pacote especificado j estiver instalado, o ADT retorna o cdigo de erro 14: Erro do dispositivo.
-platform O nome da plataforma do dispositivo. Especifique ios ou android. -platformsdk O caminho para a plataforma SDK do dispositivo de destino:
Android - O AIR 2.6+ SDK inclui as ferramentas do Android SDK necessrias para implementar os comandos
relevantes do ADT. Somente defina este valor para usar uma verso diferente do Android SDK. Alm disso, o caminho SDK da plataforma no precisa ser fornecido na linha do comando se a varivel de ambiente AIR_ANDROID_SDK_HOME j estiver definida. (Se ambos estiverem definidos, o caminho fornecido na linha de comando usado.)
iOS - O AIR SDK enviado com um iOS SDK cativo. A opo -platformsdk permite que voc empacote aplicativos
com um SDK externo para que no fique restrito ao iOS SDK cativo. Por exemplo, se voc criou uma extenso com o iOS SDK mais recente, voc pode especificar esse SDK ao empacotar seu aplicativo. Alm disso, ao usar o ADT com o simulador iOS, voc precisa sempre incluir a opo -platformsdk especificando o caminho do SDK do simulador iOS. -device especifique ios_simulator ou o nmero de srie do dispositivo. O dispositivo s deve ser especificado quando mais de um dispositivo ou emulador Android estiver conectado ao computador e em funcionamento. Se o dispositivo especificado no estiver conectado, o ADT retorna cdigo de sada 14: Erro do dispositivo. Se mais de um dispositivo ou emulador estiver conectado e um dispositivo no for especificado, o ADT retorna o cdigo de sada 2: Erro de uso. No Android, use a ferramenta ADB do Android para listar os nmeros de srie dos dispositivos conectados e emuladores em execuo:
adb devices
-appid O ID do aplicativo do AIR do aplicativo instalado. Se nenhum aplicativo com o ID especificada estiver instalado no dispositivo, o ADT retorna o cdigo de sada 14: Erro do dispositivo.
177
-platform O nome da plataforma do dispositivo. Especifique ios ou android. -platformsdk O caminho para a plataforma SDK do dispositivo de destino:
Android - O AIR 2.6+ SDK inclui as ferramentas do Android SDK necessrias para implementar os comandos
relevantes do ADT. Somente defina este valor para usar uma verso diferente do Android SDK. Alm disso, o caminho SDK da plataforma no precisa ser fornecido na linha do comando se a varivel de ambiente AIR_ANDROID_SDK_HOME j estiver definida. (Se ambos estiverem definidos, o caminho fornecido na linha de comando usado.)
iOS - O AIR SDK enviado com um iOS SDK cativo. A opo -platformsdk permite que voc empacote aplicativos
com um SDK externo para que no fique restrito ao iOS SDK cativo. Por exemplo, se voc criou uma extenso com o iOS SDK mais recente, voc pode especificar esse SDK ao empacotar seu aplicativo. Alm disso, ao usar o ADT com o simulador iOS, voc precisa sempre incluir a opo -platformsdk especificando o caminho do SDK do simulador iOS. -device especifique ios_simulator ou o nmero de srie do dispositivo. O dispositivo s deve ser especificado quando mais de um dispositivo ou emulador Android estiver conectado ao computador e em funcionamento. Se o dispositivo especificado no estiver conectado, o ADT retorna cdigo de sada 14: Erro do dispositivo. Se mais de um dispositivo ou emulador estiver conectado e um dispositivo no for especificado, o ADT retorna o cdigo de sada 2: Erro de uso. No Android, use a ferramenta ADB do Android para listar os nmeros de srie dos dispositivos conectados e emuladores em execuo:
adb devices
-appid O ID do aplicativo do AIR do aplicativo instalado. Se nenhum aplicativo com o ID especificada estiver instalado no dispositivo, o ADT retorna o cdigo de sada 14: Erro do dispositivo.
-platform O nome da plataforma do dispositivo. Especifique ios ou android. -platformsdk O caminho para a plataforma SDK do dispositivo de destino:
Android - O AIR 2.6+ SDK inclui as ferramentas do Android SDK necessrias para implementar os comandos
relevantes do ADT. Somente defina este valor para usar uma verso diferente do Android SDK. Alm disso, o caminho SDK da plataforma no precisa ser fornecido na linha do comando se a varivel de ambiente AIR_ANDROID_SDK_HOME j estiver definida. (Se ambos estiverem definidos, o caminho fornecido na linha de comando usado.)
iOS - O AIR SDK enviado com um iOS SDK cativo. A opo -platformsdk permite que voc empacote aplicativos
com um SDK externo para que no fique restrito ao iOS SDK cativo. Por exemplo, se voc criou uma extenso com o iOS SDK mais recente, voc pode especificar esse SDK ao empacotar seu aplicativo. Alm disso, ao usar o ADT com o simulador iOS, voc precisa sempre incluir a opo -platformsdk especificando o caminho do SDK do simulador iOS. -device especifique ios_simulator ou o nmero de srie do dispositivo. O dispositivo s deve ser especificado quando mais de um dispositivo ou emulador Android estiver conectado ao computador e em funcionamento. Se o dispositivo especificado no estiver conectado, o ADT retorna cdigo de sada 14: Erro do dispositivo. Se mais de um dispositivo ou emulador estiver conectado e um dispositivo no for especificado, o ADT retorna o cdigo de sada 2: Erro de uso.
178
No Android, use a ferramenta ADB do Android para listar os nmeros de srie dos dispositivos conectados e emuladores em execuo:
adb devices
-appid O ID do aplicativo do AIR do aplicativo instalado. Se nenhum aplicativo com o ID especificada estiver instalado no dispositivo, o ADT retorna o cdigo de sada 14: Erro do dispositivo.
-platform O nome da plataforma do dispositivo. No momento este comando est disponvel apenas na plataforma do Android. Use o nome, android. -platformsdk O caminho para a plataforma SDK para o dispositivo de destino. No momento a nica plataforma SDK disponvel Android. O AIR 2.6 SDK inclui as ferramentas do Android SDK necessrias para implementar os comandos relevantes do ADT. Somente defina este valor para usar uma verso diferente do Android SDK. Alm disso, o caminho SDK da plataforma no precisa ser fornecido na linha do comando se a varivel de ambiente AIR_ANDROID_SDK_HOME j estiver definida. (Se ambos estiverem definidos, o caminho fornecido na linha de comando usado.) -device O nmero de srie do dispositivo. O dispositivo s deve ser especificado quando mais de um dispositivo ou emulador estiver conectado ao computador e em funcionamento. Se o dispositivo especificado no estiver conectado, o ADT retorna cdigo de sada 14: Erro do dispositivo. Se mais de um dispositivo ou emulador estiver conectado e um dispositivo no for especificado, o ADT retorna o cdigo de sada 2: Erro de uso. No Android, use a ferramenta ADB do Android para listar os nmeros de srie dos dispositivos conectados e emuladores em execuo:
adb devices
-package O nome do arquivo do runtime a ser instalado. No Android este deve ser um pacote APK. Se nenhum pacote for especificado, o runtime adequado para o dispositivo ou emulador escolhido entre os disponveis no AIR SDK. Se o runtime j estiver instalado, o ADT retorna o cdigo de erro 14: Erro do dispositivo.
-platform O nome da plataforma do dispositivo. No momento este comando est disponvel apenas na plataforma do Android. Use o nome, android.
179
-platformsdk O caminho para a plataforma SDK para o dispositivo de destino. No momento a nica plataforma SDK disponvel Android. O AIR 2.6 SDK inclui as ferramentas do Android SDK necessrias para implementar os comandos relevantes do ADT. Somente defina este valor para usar uma verso diferente do Android SDK. Alm disso, o caminho SDK da plataforma no precisa ser fornecido na linha do comando se a varivel de ambiente AIR_ANDROID_SDK_HOME j estiver definida. (Se ambos estiverem definidos, o caminho fornecido na linha de comando usado.) -device O nmero de srie do dispositivo. O dispositivo s deve ser especificado quando mais de um dispositivo ou emulador estiver conectado ao computador e em funcionamento. Se o runtime no estiver instalado ou o dispositivo especificado no estiver conectado, o ADT retorna o cdigo de sada 14: Erro do dispositivo. Se mais de um dispositivo ou emulador estiver conectado e um dispositivo no for especificado, o ADT retorna o cdigo de sada 2: Erro de uso. No Android, use a ferramenta ADB do Android para listar os nmeros de srie dos dispositivos conectados e emuladores em execuo:
adb devices
-platform O nome da plataforma do dispositivo. No momento este comando est disponvel apenas na plataforma do Android. Use o nome, android. -platformsdk O caminho para a plataforma SDK para o dispositivo de destino. No momento a nica plataforma SDK disponvel Android. O AIR 2.6 SDK inclui as ferramentas do Android SDK necessrias para implementar os comandos relevantes do ADT. Somente defina este valor para usar uma verso diferente do Android SDK. Alm disso, o caminho SDK da plataforma no precisa ser fornecido na linha do comando se a varivel de ambiente AIR_ANDROID_SDK_HOME j estiver definida. (Se ambos estiverem definidos, o caminho fornecido na linha de comando usado.) -device O nmero de srie do dispositivo. O dispositivo s deve ser especificado quando mais de um dispositivo ou emulador estiver conectado ao computador e em funcionamento. Se o dispositivo especificado no estiver conectado, o ADT retorna cdigo de sada 14: Erro do dispositivo. Se mais de um dispositivo ou emulador estiver conectado e um dispositivo no for especificado, o ADT retorna o cdigo de sada 2: Erro de uso. No Android, use a ferramenta ADB do Android para listar os nmeros de srie dos dispositivos conectados e emuladores em execuo:
adb devices
-platform O nome da plataforma a ser verificada. Especifique android ou iOS. Nota: No iOS, esse comando precisa do iTunes 10.5.0 ou superior.
180
adt -help
<> itens entre colchetes angulares indicam as informaes que voc deve fornecer. () itens entre parnteses indicam as opes tratadas como um grupo na sada do comando help. ALL_CAPS itens escritos em letras maisculas indicam um conjunto de opes descrito separadamente. | Ou. Por exemplo, ( A | B ), significa item A ou item B. ? 0 ou 1. Um ponto de interrogao na sequncia de um item indica que um item opcional e que somente uma
instncia pode ocorrer, se utilizado.
* 0 ou mais. Um asterisco na sequncia de um item indica que um item opcional e que qualquer nmero de
instncias pode ocorrer.
+ 1 ou mais. Um sinal de mais na sequncia de um item indica que um item obrigatrio e que vrias instncias
podem ocorrer.
sem smbolo - Se um item no tiver nenhum smbolo de sufixo, esse item obrigatrio e somente uma instncia
pode ocorrer.
181
-alias O alias de uma chave no armazenamento de chaves. Especificar um alias no necessrio quando um armazenamento de chaves contm apenas um nico certificado. Se nenhum alias for especificado, o ADT usar a primeira chave do armazenamento de chaves. Nem todos os aplicativos de gerenciamento do armazenamento de chaves permitem que um alias seja atribudo a certificados. Ao usar o armazenamento de chaves do sistema Windows, por exemplo, use o nome distinto do certificado como o alias. Voc pode usar o utilitrio Java Keytool para listar os certificados disponveis para que possa determinar o alias. Por exemplo, executar o comando:
keytool -list -storetype Windows-MY
Para se referir a esse certificado na linha de comando do ADT, defina o alias como:
CN=TestingCert,OU=QE,O=Adobe,C=US
No Mac OS X, o alias de um certificado no Keychain o nome exibido no aplicativo Keychain Access. -storetype O tipo de armazenamento de chaves, determinado pela implementao do armazenamento de chaves. A implementao de armazenamento de chaves padro includa na maioria das instalaes de Java suporta os tipos JKS e PKCS12. O Java 5.0 inclui suporte para o tipo PKCS11, para acessar armazenamentos de chaves em tokens de hardware e para o tipo Keychain, para acessar o chaveiro do Mac OS X. O Java 6.0 inclui suporte para o tipo MSCAPI (no Windows). Se outros provedores de JCA tiverem sido instalados e configurados, tipos adicionais de armazenamentos de chaves podem estar disponveis. Se nenhum tipo de armazenamento de chave for especificado, o tipo padro para o provedor de JCA padro ser usado.
Tipo de armazenamento JKS Formato de armazenamento de chave Arquivo de armazenamento de chave Java (.keystore) Arquivo PKCS12 (.p12 ou .pfx) Token de hardware Chaveiro do Mac OS X MSCAPI Verso mnima de Java
1.2
-keystore O caminho para o arquivo de armazenamento de chaves para tipos de armazenamento com base no arquivo. -storepass A senha exigida para acessar o armazenamento de chaves. Se no especificada, o ADT solicita a senha. -keypass A senha exigida para acessar a chave privada usada para assinar o aplicativo do AIR. Se no especificada, o ADT solicita a senha. Nota: Se voc digitar uma senha como parte do comando do ADT, os caracteres da senha so gravados no histrico da linha de comando. Portanto, o uso de opes -keypass ou -storepass no recomendado quando a segurana do certificado importante. Observe tambm que ao omitir as opes de senha, os caracteres que voc digita nos prompts de senha no so exibidos (por razes de segurana). Basta digitar a senha e pressionar a tecla Enter. -providerName O provedor de JCA para o tipo de armazenamento de chaves especificado. Se no especificado, o ADT usa o provedor padro para esse tipo de armazenamento de chave.
182
-tsa Especifica a URL de um servidor compatvel com carimbo de data e hora RFC3161 para carimbar com data e hora a assinatura digital. Se nenhuma URL for especificada, um servidor padro com carimbo de data/hora fornecido pela Geotrust ser usado. Quando a assinatura de um aplicativo do AIR receber uma marca de data/hora, o aplicativo poder ainda ser instalado depois que o certificado de assinatura expirar, porque a marca de data/hora verifica se o certificado era vlido no momento da assinatura. Se o ADT no puder se conectar ao servidor de carimbo de data/hora, a assinatura ser cancelada e nenhum empacotamento ser produzido. Especifique -tsa none para desabilitar o carimbo de data/hora. No entanto, um aplicativo do AIR empacotado sem um carimbo de data/hora deixa de poder ser instalado depois que o certificado de assinatura expira. Nota: Muitas das opes de assinatura so equivalentes mesma opo do utilitrio Java Keytool. Voc pode usar o utilitrio Keytool para examinar e gerenciar armazenamentos de chaves no Windows. O utilitrio de segurana da Apple tambm pode ser usado para esse fim no Mac OS X. -provisioning-profile O arquivo de aprovisionamento iOS da Apple. (Obrigatrio apenas para compactao de aplicativos iOS.) Exemplos de opo de assinatura Assinatura com um arquivo .p12:
-storetype pkcs12 -keystore cert.p12
Assinatura com um token de hardware (consulte as instrues do fabricante do token sobre como configurar Java para usar o token e para o valor correto de providerName):
-alias AIRCert -storetype pkcs11 -providerName tokenProviderName
183
file_and_dirs Os arquivos e diretrios a empacotar no arquivo do AIR. Qualquer nmero de arquivos e diretrios pode ser especificado, delimitado por um espao em branco. Se voc listar um diretrio, todos os arquivos e subdiretrios dentro dele, exceto arquivos ocultos, sero adicionados ao pacote. (Alm disso, se o arquivo do descritor do aplicativo for especificado, diretamente ou por caractere curinga ou expanso de diretrio, ele ser ignorado e no adicionado ao pacote uma segunda vez.) Arquivos e diretrios especificados devem estar no diretrio atual ou em um de seus subdiretrios. Use a opo -C para alterar o diretrio atual. Importante: Caracteres curinga no podem ser usados nos argumentos file_or_dir depois da opo C. (Shells de comando expandem os caracteres curinga antes de transmitir os argumentos para o ADT, o que faz com que o ADT procure arquivos no lugar errado.) Voc pode, no entanto, usar ainda o caractere de ponto, ".", para representar o diretrio atual. Por exemplo, -C assets. copia tudo no diretrio de ativos, incluindo qualquer subdiretrio, para o nvel raiz do pacote do aplicativo.
-C dir files_and_dirs Altera o diretrio de trabalho para o valor de dir antes de processar arquivos e diretrios
subsequentes adicionados ao pacote do aplicativo (especificado em files_and_dirs). Os arquivos ou diretrios so adicionados raiz do pacote do aplicativo. A opo C pode ser usada quantas vezes for preciso para incluir arquivos de vrios pontos no sistema de arquivos. Se um caminho relativo for especificado para dir, o caminho sempre resolvido do diretrio de trabalho original. medida que o ADT processa os arquivos e diretrios includos no pacote, os caminhos relativos entre o diretrio atual e os arquivos de destino so armazenados. Esses caminhos so expandidos na estrutura do diretrio do aplicativo quando o pacote instalado. Portanto, especificar -C release/bin lib/feature.swf coloca o arquivo release/bin/lib/feature.swf no subdiretrio lib da pasta do aplicativo raiz.
-e file_or_dir dir Coloca o arquivo ou diretrio no diretrio do pacote especificado. Essa opo no pode ser
usada ao compactar um arquivo ANE. Nota: O elemento <content> do arquivo do descritor do aplicativo deve especificar o local final do arquivo do aplicativo principal na rvore do diretrio do pacote do aplicativo. -extdir dir O valor dedir o nome de um diretrio onde buscar extenses nativas (arquivos ANE). Especifique um caminho absoluto ou um caminho relativo para o diretrio atual. possvel especificar a opo -extdirvrias vezes. O diretrio especificado contm arquivos ANE de extenses nativas que o aplicativo utiliza. Cada arquivo ANE nesse diretrio tem uma extenso de nome de arquivo .ane. Contudo, o nome de arquivo antes da extenso de nome de arquivo .ane no precisa corresponder ao valor do elemento extensionID do arquivo descritor do aplicativo. Por exemplo, se voc utilizar -extdir ./extensions, as extenses do diretrio podero ter a aparncia semelhante seguinte:
extensions/ extension1.ane extension2.ane
Nota: O uso da opo -extdir diferente para a ferramenta ADT e para a ferramenta ADL. Na ADL, a opo especifica um diretrio que contm subdiretrios, cada um contendo um arquivo ANE desempacotado. Na ADT, as opes especificam um diretrio que contm arquivos ANE.
184
-connect Se estiver presente, o aplicativo tentar se conectar a um depurador remoto. hostString Uma sequncia de caracteres que identifica o computador que est executando a ferramenta de depurao Flash FDB. Se no for especificado, o aplicativo tentar se conectar a um depurador em execuo no computador no qual o pacote criado. A sequncia de caracteres de host pode ser um nome de domnio totalmente qualificado do computador: machinename.subgroup.example.com, ou um endereo IP: 192.168.4.122. Se a mquina especificada (ou padro) no puder ser encontrada, o runtime exibir uma caixa de dilogo solicitando um nome de host vlido. A opo --listenusa a seguinte sintaxe:
-listen port
-listen Se estiver presente, o tempor de execuo ir aguardar uma conexo proveniente de um depurador remoto. port (Opcional) A porta que ser escutada. Por padro, o runtime escuta na porta 7936. Para mais informaes sobre o uso da opo -listen, consulte Depurao remota com FDB atravs de USB na pgina 105.
-preloadSWFPath Se estiver presente, o aplicativo tentar localizar o arquivo SWF pr-carregado no diretrio especificado. Se no for especificado, o ADT inclui o arquivo SWF pr-carregado do AIR SDK. directory O diretrio que contm o arquivo SWF pr-carregado do gerador de perfis.
extension-descriptor O arquivo de indexao para a extenso nativa. -swc O arquivo SWC contendo o cdigo ActionScript e recursos para a extenso nativa. -platform O nome da plataforma que oferece suporte para este arquivo ANE. possvel incluir vrias opes de platform, cada uma com suas FILE_OPTIONS.
185
-platformoptions O caminho para um arquivo de opes de plataforma (platform.xml). Use este arquivo para especificar opes de vinculao no padro, as bibliotecas compartilhadas e bibliotecas estticas de terceiros usadas usadas pela extenso. Para obter mais informaes e exemplos, consulte bibliotecas iOS nativas. FILE_OPTIONS Identifica os arquivos de plataforma nativos a serem includos no pacote, como bibliotecas a serem includas no pacote de extenso nativa. As opes de arquivo esto descritas na ntegra em Opes de caminho e arquivo na pgina 182. (Observe que a opo -e no pode ser usada ao compactar um arquivo ANE.)
101 102
103
105
106
No possvel usar algumas configuraes de janela, como transparency = true e systemChrome = standard juntas. Altere uma das configuraes incompatveis.
107
O tamanho mnimo da janela maior que o Altere a configurao do tamanho mnimo tamanho mximo da janela ou do mximo. Atributo j usado no elemento anterior Elemento duplicado. necessrio pelo menos um elemento do tipo especificado. Remove o elemento duplicado. Adicione o elemento ausente.
186
Descrio
Observaes
Nenhum dos perfis listados no descritor do Adicione um perfil para a lista aplicativo compatvel com extenses supportedProfies que oferece suporte para nativas. extenses do nativas. O destino do AIR no oferece extenses nativas. <nativeLibrary> e <initializer> devem ser fornecidos juntos. Escolha um destino que suporte extenses nativas. Uma funo de inicializao dever ser especificada para cada biblioteca nativa na extenso nativa. No especifique um finalizador a menos que a plataforma use uma biblioteca nativa. No especifique uma biblioteca nativa no elemento da plataforma padro.
112
113
114
115
116
A execuo do navegador no suportada O elemento <allowBrowserInvocation> no pode para esse destino. ser true para o destino de compactao especificado. Esse destino exige pelo menos um namespace para empacotar extenses nativas. Altere o namespace na indexao do aplicativo para um valor suportado.
117
Consulte Arquivos descritores do aplicativo do AIR na pgina 206 para obter informaes sobre namespaces, elementos, atributos e seus valores vlidos. Erros do cone do aplicativo
Cdigo do erro 200 Descrio No possvel abrir o arquivo de cone Observaes Verifique se o arquivo existe no caminho especificado. Use outro aplicativo para garantir que o arquivo possa ser aberto. 201 cone no tamanho errado O tamanho do cone (em pixels) deve corresponder tag XML. Por exemplo, dado o elemento do descritor do aplicativo:
<image32x32>icon.png</image32x3 2>
A imagem em icon.png deve ser exatamente de 32x32 pixels. 202 O arquivo do cone contm um formato de Somente o formato PNG tem suporte. imagem sem suporte Converta imagens em outros formatos antes de empacotar o aplicativo.
187
Descrio Arquivo ausente ou no possvel abrir arquivo Arquivo do descritor de aplicativo ausente ou no possvel abri-lo
Observaes No possvel encontrar ou abrir um arquivo especificado na linha de comando. O arquivo do descritor do aplicativo no pode ser encontrado no caminho especificado ou no pode ser aberto. necessrio adicionar o arquivo SWF ou HTML referenciado no elemento <content> do descritor do aplicativo ao pacote incluindo-o nos arquivos listados na linha de comando do ADT. necessrio adicionar os arquivos de cone especificados no descritor do aplicativo ao pacote incluindo-os entre os arquivos listados na linha de comando do ADT. Os arquivos de cone no so adicionados automaticamente. O arquivo referenciado no elemento
<content> do descritor do aplicativo no
301
302
303
304
reconhecido como arquivo HTML ou SWF vlido. 305 A verso inicial do SWF de contedo da janela excedeu a verso do espao para nomes A verso SWF do arquivo referenciado no elemento <content> do descritor do aplicativo no tem suporte da verso do AIR especificado no espao para nomes do descritor. Por exemplo, se voc tentar empacotar um arquivo SWF10 (Flash Player 10) como contedo inicial de um aplicativo do AIR 1.1, gerar esse erro. O perfil que voc est especificando no descritor do aplicativo no suportado. Consulte supportedProfiles na pgina 239. Use o namespace adequado para os recursos usados no aplicativo (como o namespace 2.0).
306
Perfil no suportado.
307
Erro desconhecido
No foi possvel gravar no diretrio de sada Verifique se o diretrio de sada especificado (ou implcito) est acessvel e se a unidade que o contm tem espao em disco suficiente.
188
Observaes Verifique se o caminho para o armazenamento de chaves est especificado corretamente. Verifique se o certificado do armazenamento de chaves pode ser acessado. O utilitrio Java 1.6 Keytool pode ser usado para ajudar a solucionar problemas de acesso ao certificado.
Certificado invlido
O arquivo de certificado foi malformado, modificado, expirado ou revogado. Verifique as opes de assinaturas enviadas para o ADT.
10
No foi possvel criar um carimbo de data e O ADT no estabeleceu uma conexo com hora o servidor do carimbo de data e hora. Se voc se conecta Internet por meio de um servidor proxy, pode precisar definir as configuraes de proxy do JRE. Erro de criao do certificado Verifique os argumentos de linha de comando usados para criar assinaturas. Verifique os caminhos e outros argumentos enviados para o ADT na linha de comando. Verifique a configurao do SDK do dispositivo. O ADT no consegue localizar o SDK do dispositivo necessrio para executar o comando especificado. O ADT no pode executar o comando por causa de um problema ou restrio de dispositivo. Por exemplo, este cdigo de sada emitido ao tentar desinstalar um aplicativo que no esteja realmente instalado. Verifique se um dispositivo est conectado e ativado ou se um emulador est em execuo. O AIR SDK atual no inclui todos os componentes necessrios para executar a operao de solicitao. No foi possvel criar o pacote porque alguns componentes do sistema operacional esperados esto ausentes.
11
12
Entrada invlida
13
14
Erro de dispositivo
15
Nenhum dispositivo
16
17
Erros do Android
189
Descrio
Observaes
Verifique se o nome do atributo foi escrito corretamente e se um atributo vlido para o elemento no qual ele aparece. Voc pode precisar configurar o sinalizador platformsdk no comando do ADT se o atributo foi introduzido aps o Android 2.2. Verifique se o valor do atributo est escrito corretamente e se um valor vlido para o atributo. Voc pode precisar configurar o sinalizador -platformsdk no comando do ADT se o valor do atributo foi introduzido aps o Android 2.2. Verifique se o nome da marca XML est correta e o elemento do documento de manifesto do Android vlido. Voc pode precisar configurar o sinalizador platformsdk no comando do ADT se o elemento foi introduzido aps o Android 2.2.
401
402
403
A marca Android no tem permisso para O aplicativo est tentando substituir um ser substituda elemento do manifesto do Android que est reservado para uso pelo AIR. Consulte Configuraes do Android na pgina 76. O atributo do Android no tem permisso O aplicativo est tentando substituir um para ser substitudo atributo do manifesto do Android que est reservado para uso pelo AIR. Consulte Configuraes do Android na pgina 76. A marca %1 do Android dever ser o primeiro elemento na marca manifestAdditions O atributo %1 da marca %2 do Android possui um valor de %3 invlido. Mude a marca especificada para o local exigido.
404
405
406
190
AIR_EXTENSION_PATH especifica uma lista de diretrios para buscar extenses nativas exigidas por um aplicativo. A lista de diretrios pesquisada em ordem aps quaisquer diretrios de extenso nativa especificados na linha de comando da ADT. O comando ADL tambm utiliza essa varivel de ambiente. Nota: Em alguns sistemas de computadores, caracteres de bytes duplos nos caminhos do sistema de arquivos armazenados nessas variveis de ambiente podem ser mal-interpretados. Se isto acontecer, tente definir o JRE usado para executar o ADT para usar o conjunto de caracteres UTF-8. Isso feito por padro no script usado para iniciar o ADT no Mac e no Linux. No arquivo adt.bat do Windows, ou ao executar o ADT diretamente do Java, especifique a opo Dfile.encoding=UTF-8 na linha de comando Java.
191
Se voc assinar um aplicativo com um certificado autoassinado (ou um certificado que no esteja ligado a um certificado confivel), o usurio dever assumir um risco de segurana maior ao instalar o seu aplicativo. As caixas de dilogo de instalao refletem este risco adicional:
Importante: Uma entidade mal-intencionada poderia falsificar um arquivo AIR com sua identidade se ela, de alguma forma, obtiver seu arquivo de armazenamento de chaves de assinatura ou descobrir sua chave privada.
192
193
No AIR 1.5.3 e posterior, o ID do editor no mais atribuddo pelo AIR. Um aplicativo publicado com o AIR 1.5.3 pode especificar uma cadeia de caracteres de ID do editor no descritor do aplicativo. Voc somente deve especificar um ID do editor ao publicar atualizaes de aplicativos originalmente publicados em verses do AIR anteriores 1.5.3. Se voc no especificar o ID original no descritor do aplicativo, o novo pacote AIR no ser tratado como uma atualizao de um aplicativo existente. Para descobrir o ID do editor original, localize o arquivopublisherid no subdiretrio META-INF/AIR onde o aplicativo original est instalado. A sequncia de caracteres no arquivo o ID do editor. O descritor o aplicativo deve especificar o runtime AIR 1.5.3 (ou posterior) na declarao de espao de nome do arquivo descritor do aplicativo para especificar o ID do editor manualmente. O ID do editor, quando existir, utilizado para os seguintes fins:
Como parte da chave de criptografia o armazenamento local criptografado Como parte o caminho para o diretrio de armazenamento do aplicativo Como parte da sequncia de caracteres de conexo para conexes locais
Como parte da sequncia de caracteres de identidade utilizada para chamar o aplicativo com a API interna de navegador AIR
ChosenSecurity ID de editor TC para Adobe AIR GlobalSign Certificado de assinatura de cdigo ObjectSign Thawte: Certificado do desenvolvedor do AIR Certificado do desenvolvedor Apple Certificado do desenvolvedor JavaSoft
194
Certificado Microsoft Authenticode VeriSign: ID digital do Adobe AIR ID digital Microsoft Authenticode ID digital de assinatura Sun Java
Nota: O certificado deve ser criado para assinatura de cdigo. Voc no pode usar um SSL ou outro tipo de certificado para assinar arquivos do AIR.
Carimbos de data/hora
Quando voc assina um arquivo AIR, a ferramenta de empacotamento consulta o servidor de uma autoridade de carimbo de data/hora para obter uma data e hora da assinatura independentemente verificveis. a marca de data/hora est incorporado no arquivo AIR. Desde que o certificado de assinatura seja vlido no momento da assinatura, o arquivo AIR poder ser instalado, mesmo depois que o certificado expirar. Por outro lado, se nenhum carimbo de data/hora for obtido, o arquivo AIR no poder mais ser instalado quando o certificado expirar ou for revogado. Por padro, as ferramentas de empacotamento do AIR obtm um carimbo de data/hora. No entanto, para permitir que aplicativos sejam empacotados quando o servio de carimbo de data/hora estiver indisponvel, voc pode desativar o recurso de carimbo de data/hora. A Adobe recomenda que todos os arquivos do AIR distribudos publicamente incluam um carimbo de data/hora. A autoridade padro de carimbo de data/hora usada pelas ferramentas de empacotamento do AIR Geotrust.
Obteno de um certificado
Para obter um certificado, voc normalmente visitaria o site da autoridade de certificao na Web e completaria o processo de obteno da empresa. As ferramentas usadas para produzir o arquivo de armazenamento de chave necessrio pelas ferramentas do AIR dependem do tipo de certificado adquirido, de como o certificado armazenado no computador recebedor e, em alguns casos, o navegador usado para obter o certificado. Por exemplo, para obter e exportar um certificado do Adobe Developer do Thawte, voc deve usar o Mozilla Firefox. O certificado pode ento ser exportado como um arquivo .12 diretamente da interface do usurio do Firefox. Nota: Verses do Java 1.5 e acima no aceitam caracteres ASCII superiores nas senhas usadas para proteger arquivos de certificado PKCS12. O Java usado pelas ferramentas de desenvolvimento do AIR para criar os pacotes assinados do AIR. Quando voc exportar o certificado como um arquivo .p12 ou .pfx, use somente caracteres ASCII normais na senha. Voc pode gerar um certificado autoassinado usando a ferramenta para desenvolvedores do AIR (ADT) usada para empacotar arquivos de instalao do AIR. Algumas ferramentas de terceiros tambm podem ser usadas. Para obter instrues como gerar um certificado autoassinado, bem como instrues sobre como assinar um arquivo do AIR, consulte AIR Developer Tool (ADT) na pgina 166. Voc tambm pode exportar e assinar arquivos do AIR usando o Flash Builder, Dreamweaver e a atualizao do AIR para o Flash. O exemplo a seguir descreve como obter um Certificado de desenvolvedor do AIR da autoridade de certificao Thawte e prepar-lo para o uso com o ADT.
195
Para adquirir um certificado do desenvolvedor do AIR, o site da Thawte na Web requer que voc use o navegador Mozilla Firefox. A chave privada para o certificado armazenada no armazenamento de chave do navegador. Verifique se o armazenamento de chave do Firefox protegido por uma senha mestre e se o computador em si fisicamente seguro. (Voc pode exportar e remover o certificado e a chave privada do armazenamento de chave do navegador quando o processo de obteno estiver concludo.) Como parte do processo de inscrio do certificado, gerado um par de chave privada/pblica. A chave privada armazenada automaticamente no armazenamento de chave do Firefox. Voc deve usar o mesmo computador e navegador para solicitar e recuperar o certificado do site da Thawte na Web.
1 Visite o site da Thawte na Web e navegue at Pgina de produtos para certificados de assinatura de cdigo. 2 Da lista de certificados de assinatura de cdigo, selecione o certificado do desenvolvedor do Adobe AIR. 3 Complete o processo de inscrio de trs etapas. Voc precisa fornecer informaes organizacionais e de contato.
A Thawte executa ento seu processo de verificao de identidade e pode solicitar informaes adicionais. Aps a concluso da verificao, a Thawte enviar um e-mail com instrues sobre como recuperar o certificado. Nota: informaes adicionais sobre o tipo de documentao necessria podem ser encontradas aqui: https://www.thawte.com/ssl-digital-certificates/free-guides-whitepapers/pdf/enroll_codesign_eng.pdf.
4 Recupere o certificado emitido do site da Thawte. O certificado salvo automaticamente no armazenamento de
chave do Firefox.
5 Exporte um arquivo de armazenamento de chave contendo a chave privada e o certificado do armazenamento de
chave do Firefox usando as seguintes etapas: Nota: Ao exportar a chave privada/certificado do Firefox, ele exportado em um formato de .p12 (pfx) que o ADT, Flex, Flash e o Dreamweaver podem usar.
a Abra a caixa de dilogo do gerenciador de certificados do Firefox: b No Windows: abra Tools (Ferramentas) -> Options (Opes) -> Advanced (Avanadas) -> Encryption
Digite um nome de arquivo e a localizao para a qual exportar o arquivo de armazenamento de chave e clique em Save (Salvar). segurana do software para exportar o arquivo. (Essa senha usada apenas pelo Firefox.)
g Se estiver usando a senha mestre do Firefox, ser solicitado que voc digite sua senha para o dispositivo de h Na caixa de dilogo Choose a Certificate Backup Password (Escolha uma senha de backup de certificado), crie
uma senha para o arquivo de armazenamento de chave. Importante: Essa senha protege o arquivo de armazenamento de chave e necessria quando o arquivo usado para assinar aplicativos do AIR. Uma senha segura deve ser escolhida.
i
Clique em OK. Voc deve receber uma mensagem de senha de backup bem-sucedida. O arquivo de armazenamento de chave contendo a chave privada e o certificado salvo com uma extenso de arquivo .p12 (no formato PKCS12)
6 Use o arquivo de armazenamento de chave exportado com o ADT, Flash Builder, Flash Professional ou
Dreamweaver. A senha criada para o arquivo necessria sempre que um aplicativo do AIR assinado.
196
Importante: A chave privada e o certificado ainda so armazenados no armazenamento de chave do Firefox. Enquanto isso permite que voc exporte uma cpia adicional do arquivo de certificado, tambm fornece outro ponto de acesso que deve ser protegido para manter a segurana do seu certificado e da chave privada.
Alterao de certificados
Em alguns casos, voc deve alterar o certificado utilizado para assinar atualizaes para seu aplicativo do AIR. Tais circunstncias incluem:
Renovando o certificado de assinatura original. Atualizao de um certificado autoassinado para um certificado emitido por uma autoridade de certificao Alterao de um certificado autoassinado prestes a expirar para outro Alterar de um certificado comercial para outro, por exemplo, quando sua identidade corporativa for alterada
Para que o AIR reconhea um arquivo AIR como uma atualizao, voc deve assinar o arquivo AIR original e a atualizao como mesmo certificado ou aplicar uma assinatura de migrao de certificado atualizao. Uma assinatura de migrao a segunda assinatura aplicada ao pacote AIR de atualizao, utilizando o certificado original. A assinatura de migrao usa o certificado original para estabelecer que o signatrio o editor original do aplicativo. Aps o arquivo AIR com a assinatura de migrao ser instalado, o novo certificado tornar-se o certificado primrio. Atualizaes subsequentes no requerem uma assinatura de migrao. No entanto, voc deve aplicar assinaturas de migrao pelo mximo de tempo possvel, para acomodar usurios que ignoram atualizaes. Importante: Voc deve alterar o certificado e aplicar uma assinatura de migrao para a atualizao com o certificado original, antes que este expire. Caso contrrio, os usurios devem desinstalar a verso existente do aplicativo antes de instalar uma nova verso. Para o AIR 1.5.3 ou posterior, voc pode aplicar uma assinatura de migrao utilizando um certificado expirado dentro de um perodo de tolerncia de 365 dias depois que ele expirar. Contudo, no possvel utilizar um certificado expirado para aplicar a assinatura de aplicativo principal. Para alterar os certificados:
1 Crie uma atualizao para o seu aplicativo 2 Empacote e assine o arquivo de atualizao do AIR com o novo certificado 3 Assine o arquivo AIR novamente com o certificado original (usando o comando -migrate do ADT)
Um arquivo AIR com uma assinatura de migrao , em outros aspectos, um arquivo AIR normal. Se o aplicativo instalado em um sistema sem a verso original, o AIR instala a nova verso da maneira normal. Nota: Antes ddo AIR 1.5.3, a assinatura de um aplicativo do AIR com um certificado renovado nem sempre requeria uma assinatura de migrao. A partir do AIR 1.5.3, uma assinatura de migrao obrigatria para certificados renovados. Para aplicar uma assinatura de migrao, use o Comando migrate do ADT na pgina 174, como descrito em Assinatura de uma verso atualizada de um aplicativo do AIR na pgina 201. Nota: O comando migrate do ADT no pode ser usado com aplicativos AIR para desktop que incluem extenses nativas, pois estes so empacotados como os instaladores nativos, no como arquivos .air. Para alterar certificados para um aplicativo AIR para desktop que inclua uma extenso nativa, empacote o aplicativo usando o Comando package do ADT na pgina 167 com o sinalizador -migrate.
197
Alteraes de identiade de aplicativo Antes do AIR 1.5.3, a identidade de um aplicativo do AIR era alterada quando uma atualizao assinada com uma assinatura de migrao era instalada. A alterao da identidade de um aplicativo possui diversas implicaes, incluindo:
A nova verso do aplicativo no pode acessar dados no armazenamento local criptografado existente. O local do diretrio de armazenamento do aplicativo alterado. Os dados no local antigo no so copiados para o
novo diretrio. (Mas o novo aplicativo pode localizar o diretrio original com base no ID do editor antigo).
O aplicativo no pode mais abrir conexes locais usando o ID do editor antigo. A sequncia de caracteres de identidade utilizada para acessar o aplicativo a partir de uma pgina da web era
alterada.
O OSID do aplicativo era alterado. (O OSID utilizado durante o desnvolvimento de programas personalizados de
instalao/desinstalao). Ao publicar uma atualizao do AIR 1.5.3 ou posterior, a identidade do aplicativo no pode ser alterada. Os ID de editor e o aplicativo original devem ser especificados no descritor do aplicativo o arquivo AIR de atualizao. De outra forma, o novo pacote no reconhecido como uma atualizao. Nota: Ao publicar um novo aplicativo do AIR com o AIR 1.5.3 ou superior, voc no deve especificar um ID do editor.
Terminologia
Esta seo fornece um glossrio de um pouco da terminologia principal que voc deve entender ao tomar decises sobre como assinar seu aplicativo para distribuio pblica.
Termo Autoridade de certificao (CA) Descrio Uma entidade em uma rede de infraestrutura de chave pblica que serve como um terceiro confivel e, por ltimo, certifica a identidade do proprietrio de uma chave pblica. Uma CA normalmente emite certificados digitais, assinados por sua prpria chave privada, para atestar que ela verificou a identidade do proprietrio do certificado. Apresenta as prticas e polticas da autoridade de certificao em emitir e verificar certificados. A CPS parte do contrato entre a CA e seus assinantes e terceiros. Ela tambm resume as polticas para verificao de identidade e o nvel de garantias oferecidas pelos certificados que elas fornecem.
Lista de revogao de certificado (CRL) Uma lista de certificados emitidos que foram revogados e nos quais no se deve mais confiar. O AIR verifica o CRL no momento em que um aplicativo do AIR assinado e, se nenhum carimbo de data/hora estiver presente, novamente quando o aplicativo for instalado. Cadeia de certificados Uma cadeia de certificados uma sequncia de certificados na qual cada certificado da cadeia foi assinado pelo certificado seguinte. Um documento digital que contm informaes sobre a identidade do proprietrio, a chave pblica do proprietrio e a identidade do certificado em si. Um certificado emitido por uma autoridade de certificao em si assinado por um certificado que pertence CA emissora. Uma mensagem criptografada ou uma compilao que pode apenas ser descriptografada com metade da chave pblica de um par de chave pblica-privada. Em uma PKI, uma assinatura digital contm um ou mais certificados digitais rastreveis, por ltimo, para a autoridade de certificao. Uma assinatura digital pode ser usada para validar que uma mensagem (ou arquivo do computador) no foi alterada desde que ela foi assinada (nos limites da garantia fornecida pelo algoritmo criptogrfico usado) e, supondo que algum confia na autoridade de certificao emissora, a identidade do signatrio. Um banco de dados contendo certificados digitais e, em alguns casos, as chaves privadas relacionadas.
Certificado digital
Assinatura digital
Armazenamento de chave
198
Descrio Uma arquitetura extensvel para gerenciar e acessar armazenamentos de chaves. Consulte o Guia de referncia da arquitetura de criptografia Java para obter mais informaes. O padro de interface de token criptogrfico da RSA Laboratories. Um armazenamento de chave baseado em token de hardware. O padro de sintaxe do Exchange de informaes pessoais da RSA Laboratories. Um armazenamento de chave baseado em arquivo que normalmente contm uma chave privada e seu certificado digital associado. A metade privada de um sistema criptogrfico assimtrico de chave pblica-privada de duas partes. A chave privada deve ser mantida em segredo e nunca deve ser transmitida pela rede. Mensagens assinadas digitalmente so criptografadas com a chave privada pelo signatrio. A metade pblica de um sistema criptogrfico assimtrico de chave pblica-privada de duas partes. A chave pblica est abertamente disponvel e usada para descriptografar mensagens criptografadas com a chave privada. Um sistema de confiana no qual as autoridades de certificao atestam para a identidade dos proprietrios de chaves pblicas. Clientes da rede confiam nos certificados digitais emitidos por uma CA confivel para verificar a identidade do signatrio de uma mensagem digital (ou arquivo). Um dado assinado digitalmente contendo a data e hora em que um evento ocorreu. O ADT pode incluir um carimbo de data/hora de um servidor compatvel com hora RFC 3161 em um pacote do AIR. Quando presente, o AIR usa o carimbo de data/hora para estabelecer a validade de um certificado no momento da assinatura. Isso permite que um aplicativo do AIR seja instalado aps seu certificado de assinatura ter expirado. Uma autoridade que emite carimbos de data/hora. Para ser reconhecido pelo AIR, o carimbo de data/hora deve estar em conformidade com RFC 3161 e a assinatura de carimbo de data/hora deve ser vinculada a um certificado raiz confivel na mquina de instalao.
PKCS n 11
PKCS n 12
Chave privada
Chave pblica
Carimbo de data/hora
Certificados do iOS
Os certificados de assinatura de cdigo emitidos pela Apple so usados para aplicaes de assinatura do iOS, incluindo aqueles desenvolvidos com o Adobe AIR. necessria a aplicao de uma assinatura com um certificado de desenvolvimento da Apple para instalar uma aplicao em dispositivos de teste. necessria a aplicao de uma assinatura com um certificado de distribuio para distribuir o aplicativo concludo. Para assinar um aplicativo, o ADT requer acesso ao certificado de assinatura do cdigo e chave privada associada. O arquivo de certificado, por si s, no inclui a chave privada Voc deve criar um armazenamento de chave sob a forma de arquivo .P12 ou .pfx (Personal Information Exchange) que contm o certificado e a chave privada. Consulte Converter um certificado de desenvolvedor em um arquivo de armazenamento de chave P12 na pgina 199.
199
Gerar a solicitao de assinatura de certificado no Windows Para desenvolvedores do Windows, talvez seja mais fcil obter o certificado de desenvolvedor de iPhone em um computador Mac. No entanto, possvel obter o certificado em um computador Windows. Primeiro, crie o arquivo CSR (Certificate Signing Request) usando o OpenSSL:
1 Instale o OpenSSL em seu computador Windows. (V para http://www.openssl.org/related/binaries.html).
Voc deve instalar os arquivos do Visual C++ 2008 Redistributable, indicados na pgina de download do Open SSL. (A instalao do Visual C++ no computador no necessria).
2 Abra a sesso de comandos do Windows e CD para o diretrio OpenSSL bin (por exemplo, c:\OpenSSL\bin\). 3 Crie a chave particular digitando as informaes abaixo na linha de comando:
openssl genrsa -out mykey.key 2048
Salve o arquivo de chave particular. O arquivo ser utilizado posteriormente. No ignore as mensagens de erro ao utilizar o OpenSSL. Mesmo que o OpenSSL gere uma mensagem de erro, ele ainda pode gerar os arquivos. No entanto, estes arquivos podem no ser utilizveis. Se ocorrerem erros, verifique a sintaxe e execute o comando novamente.
4 Crie o arquivo CSR digitando as informaes abaixo na linha de comando:
openssl req -new -key mykey.key -out CertificateSigningRequest.certSigningRequest "/emailAddress=yourAddress@example.com, CN=John Doe, C=US" -subj
Substitua os valores de endereo de e-mail, CN (nome de certificado) e C (pas) pelos seus valores.
5 Faa o upload do arquivo CSR para a Apple no site de desenvolvedor iPhone. (Consulte Registrar-se para obter
O desenvolvedor de iPhone identifica a chave particular: Certificado pblico <nome> <sobrenome> com o qual coincide.
5 Clique com a tecla Command no certificado de desenvolvedor do iPhone e selecione Exportar "iPhone Developer:
Name...".
6 Salve o armazenamento de chave no formato de arquivo .p12 (Personal Information Exchange).
200
7 Ser solicitado que voc crie uma senha usada ao utilizar o armazenamento de chave para assinar aplicativos ou
para transferir a chave e o certificado neste armazenamento de chave para outro. Converter um certificado de desenvolvedor da Apple em um arquivo P12 no Windows Para desenvolver aplicativos AIR for iOS, voc deve usar um arquivo de certificado P12. Crie esse certificado com base no arquivo de certificado de desenvolvedor de iPhone da Apple que voc recebe da Apple.
1 Converta o arquivo de certificado de desenvolvedor que recebe da Apple em um arquivo de certificado PEM. Digite
2 Se estiver usando a chave particular de um keychain em um computador Mac, converta-a em uma chave PEM.
openssl pkcs12 -nocerts -in mykey.p12 -out mykey.pem
3 possvel criar um arquivo P12 vlido, com base na chave e na verso PEM do certificado de desenvolvedor de
iPhone:
openssl pkcs12 -export -inkey mykey.key -in developer_identity.pem -out iphone_dev.p12
Se estiver usando a chave do Mac OS Keychain, use a verso PEM que criou na etapa anterior. Do contrrio, use a chave do OpenSSL que criou anteriormente (no Windows).
201
SIGNING_OPTIONS As opes de assinatura identificam a chave privada e o certificado com o qual o arquivo AIR ser assinado. Essas opes so descritas em Opes de assinatura de cdigo ADT na pgina 180. airi_file O caminho para o arquivo intermedirio no assinado do AIR a ser assinado. air_file O nome do arquivo AIR a ser criado. Exemplo do commando -sign do ADT
adt -sign -storetype pkcs12 -keystore cert.p12 unsignedMyApp.airi myApp.air
Para obter mais informaes, consulte Comando sign do ADT na pgina 173.
Para aplicar uma assinatura de migrao, o certificado original deve ser vlido ou estar expirado por no mximo
365 dias. Esse perodo denominado como o "perodo de prorrogao" e a durao pode mudar no futuro. Nota: At o AIR 2.6, o perodo de prorrogao era de 180 dias.
Voc no pode aplicar uma assinatura de migrao aps o certificado expirar e transcorrerem os 365 dias do
perodo de prorrogao. Neste caso, os usurios devem desinstalar a verso existente antes da instalao da verso atualizada.
O perodo de tolerncia de 365 dias somente se aplica a aplicativos que especificam o AIR verso 1.5.3 ou superior
no namespace do descritor do aplicativo. Importante: As atualizaes de assinatura com assinaturas de migrao de certificados expirados uma soluo temporria. Para uma soluo global, crie um fluxo de trabalho de assinatura padronizada para gerenciar a implementao de atualizaes de aplicativos. Por exemplo, assine cada atualizao com o certificado mais recente e aplique um certificado de migrao utilizando o certificado usado para assinar a atualizao anterior (se aplicvel). Carregue cada atualizao em seu prprio URL para que os usurios possam baixar o aplicativo. Para obter mais informaes, consulte Marcando o fluxo de trabalho para atualizaes do aplicativo na pgina 260. A tabela e a figura a seguir resumem o fluxo de trabalho para assinaturas de migrao:
202
Cenrio
Ao do desenvolvedor
Ao do usurio
Nenhuma ao necessria Aplicativo atualizado automaticamente Nenhuma ao necessria Aplicativo atualizado automaticamente
Assine o aplicativo com o novo certificado. Aplique uma assinatura de migrao usando o certificado expirado.
Expirado e fora do Voc no pode aplicar a assinatura de migrao Desinstale a verso atual do perodo de prorrogao para a atualizao do aplicativo do AIR. aplicativo do AIR e instale a verso mais recente Em vez disso, voc deve publicar uma outra verso do aplicativo do AIR usando um novo certificado. Os usurios podem instalar a nova verso depois de desinstalar a existente do aplicativo do AIR.
Aplicativo com base em runtime do Adobe AIR verso 1.5.2 ou inferior O ID de editor no descritor do aplicativo da atualizao corresponde ao ID de editor da verso anterior Aplicativo com base em runtime do Adobe AIR verso 1.5.2 ou inferior O ID de editor no descritor do aplicativo da atualizao no corresponde ao ID de editor da verso anterior
Vlido
Expirado e fora do Voc no pode aplicar a assinatura de migrao Desinstale a verso atual do perodo de prorrogao para a atualizao do aplicativo do AIR. aplicativo do AIR e instale a verso mais recente Em vez disso, voc deve publicar uma outra verso do aplicativo do AIR usando um novo certificado. Os usurios podem instalar a nova verso depois de desinstalar a existente do aplicativo do AIR.
Qualquer elemento
Assine o aplicativo AIR usando um certificado vlido e publique a verso mais recente do aplicativo AIR
203
Um arquivo AIR assinado com o comando -migrate tambm pode ser usado para instalar uma nova verso do aplicativo, assim como ser usado para atualizar qualquer verso anterior assinada com o certificado antigo. Nota: Ao atualizar um aplicativo publicado para uma verso do AIR anterior a 1.5.3, especifique o ID de editor original no descritor do aplicativo. De outra forma, os usurios de seu aplicativo devem desinstalar a verso anterior, antes de instalar a atualizao. Use o comando do ADT -migrate com a seguinte sintaxe:
adt -migrate SIGNING_OPTIONS air_file_in air_file_out
SIGNING_OPTIONS As opes de assinatura identificam a chave privada e o certificado com o qual o arquivo
AIR ser assinado. Essas opes devem identificar o certificado de assinatura original e so descritas em Opes de assinatura de cdigo ADT na pgina 180.
air_file_in O arquivo AIR para a atualizao, assinado com o certificado novo. air_file_out O arquivo AIR a ser criado.
Nota: Os nomes de arquivos usados para os arquivos do AIR de entrada e de sada devem ser diferentes. O exemplo a seguir demonstra uma chamada ADT com o sinalizador -migrate para aplicar uma assinatura de migrao a uma verso atualizada de um aplicativo AIR:
adt -migrate -storetype pkcs12 -keystore cert.p12 myAppIn.air myApp.air
perfis desktop profile e extendedDesktop (ou remova a marca <supportedProfiles> do descritor do aplicativo).
3 Empacote e assine o aplicativo atualizado como um arquivo .air usando o comando ADT -package com o novo
certificado.
4 Aplique o certificado de migrao ao arquivo .air usando o comando ADT -migrate com o certificado original
(como descrito anteriormente em Migrao de um aplicativo do AIR para usar um novo certificado na pgina 202).
5 Empacote o arquivo .air em um instalador nativo usando o comando ADT -package com o sinalizador -target
native. Como o aplicativo j est assinado, voc no precisa especificar um certificado de assinatura como parte desta etapa.
O exemplo a seguir demonstra as etapas 3 a 5 deste processo. O cdigo chama o ADT com os comandos -package, migrate e novamente com o comando -package para empacotar uma verso atualizada do aplicativo AIR como um instalador nativo:
adt -package -storetype pkcs12 -keystore new_cert.p12 myAppUpdated.air myApp.xml myApp.swf adt -migrate -storetype pkcs12 -keystore original_cert.p12 myAppUpdated.air myAppMigrate.air adt -package -target native myApp.exe myAppMigrate.air
204
Migrar um aplicativo AIR que usa uma extenso nativa para usar um novo certificado
Um aplicativo AIR que usa uma extenso nativa no pode ser assinado usando o comando ADT -migrate. Ele tambm no pode ser migrado usando o procedimento de migrao de um aplicativo AIR com instalador nativo, pois ele no pode ser publicado como um arquivo .air intermedirio. Em vez disso, para migrar um aplicativo AIR que usa uma extenso nativa para um novo certificado:
1 Crie uma atualizao para o seu aplicativo 2 Empacote e assine o instalador nativo de atualizao usando o comando ADT -package. Empacote o aplicativo
com o novo certificado e inclua o sinalizador -migrate especificando o certificado original. Use a sintaxe a seguir para chamar o comando ADT -package com o sinalizador -migrate:
adt -package AIR_SIGNING_OPTIONS -migrate MIGRATION_SIGNING_OPTIONS -target package_type NATIVE_SIGNING_OPTIONS output app_descriptor FILE_OPTIONS
As outras opes so as mesmas usadas para empacotar um instalador nativo do aplicativo AIR e so descritas no
Comando package do ADT na pgina 167. O exemplo a seguir demonstra a chamada do ADT com o comando -package e o sinalizador -migrate para empacotar uma verso atualizada de um aplicativo AIR e usa uma extenso nativa e aplicar uma assinatura de migrao atualizao.
adt -package -storetype pkcs12 -keystore new_cert.p12 -migrate -storetype pkcs12 -keystore original_cert.p12 -target native myApp.exe myApp.xml myApp.swf
Nota: O sinalizador -migrate do comando -package est disponvel no ADT no AIR 3.6 e posterior.
205
O certificado e a chave privada associada gerados pelo ADT so armazenados em um arquivo de armazenamento de chaves do tipo PKCS12. A senha especificada definida na chave em si, e no no armazenamento de chaves. Exemplos de gerao de certificado
adt -certificate -cn SelfSign -ou QE -o "Example, Co" -c US 2048-RSA newcert.p12 39#wnetx3tl adt -certificate -cn ADigitalID 1024-RSA SigningCert.p12 39#wnetx3tl
Para usar esses certificados para assinar arquivos do AIR, voc usa as seguintes opes de assinatura com os comandos -package ou -prepare do ADT:
-storetype pkcs12 -keystore newcert.p12 -storepass 39#wnetx3tl -storetype pkcs12 -keystore SigningCert.p12 -storepass 39#wnetx3tl
Nota: Verses do Java 1.5 e acima no aceitam caracteres ASCII superiores nas senhas usadas para proteger arquivos de certificado PKCS12. Use somente caracteres ASCII normais nas senhas.
206
Se o aplicativo usa um arquivo HTML como seu contedo raiz em vez de um arquivo SWF, apenas o elemento <content> diferente:
<content> HelloWorld.html </content>
207
aspectRatio autoOrients fullScreen image29x29 (consulte imageNxN) image57x57 image72x72 image512x512 iPhone renderMode supportedProfiles
208
colorDepth
direct como valor direto de renderMode renderMode no mais ignorado em plataformas de rea de trabalho O elemento <uses-sdk> do Android pode ser especificado. (No era permitido anteriormente.)
depthAndStencil supportedLanguages
image50x50 (consulte imageNxN na pgina 226) image58x58 (consulte imageNxN na pgina 226) image100x100 (consulte imageNxN na pgina 226) image1024x1024 (consulte imageNxN na pgina 226)
requestedDisplayResolution na pgina 236 no elemento iPhone na pgina 230 agora inclui um atributo
excludeDevices, permitindo que voc especifique quais destinos do iOS usam resoluo alta ou padro.
209
novo elemento requestedDisplayResolution na pgina 236 em initialWindow na pgina 228 especifica quando
usar a resoluo alta ou padro nas plataformas de desktop, como Macs com telas de alta resoluo
O elemento iPhone na pgina 230 agora fornece um elemento externalSwfs na pgina 221, que permite que voc especifique uma lista de SWFs a ser carregada no tempo de execuo. pgina 224, que permite que voc force o modo de renderizao da CPU para um conjunto de dispositivos especificado.
210
<contedo>...</contedo> <depthAndStencil>...</depthAndStencil> <fullScreen>...</fullScreen> <height>...</height> <maximizable>...</maximizable> <maxSize>...</maxSize> <minimizable>...</minimizable> <minSize>...</minSize> <renderMode>...</renderMode> <requestedDisplayResolution>...</requestedDisplayResolution> <resizable>...</resizable> <softKeyboardBehavior>...</softKeyboardBehavior> <systemChrome>...</systemChrome> <title>...</title> <transparent>...</transparent> <visible>...</visible> <width>...</width> <x>...</x> <y>...</y> </initialWindow> <installFolder>...</installFolder> <iPhone> <Entitlements>...</Entitlements> <InfoAdditions>...</InfoAdditions> <requestedDisplayResolution>...</requestedDisplayResolution> <forceCPURenderModeForDevices>...</forceCPURenderModeForDevices> <externalSwfs>...</externalSwfs> </iPhone> <nome> <texto xml:lang="...">...</texto> </nome> <programMenuFolder>...</programMenuFolder> <publisherID>...</publisherID> <supportedLanguages na pgina 238>...</supportedLanguages na pgina 238> <supportedProfiles>...</supportedProfiles> <versionNumber>...</versionNumber> <versionLabel>...</versionLabel> </aplicativo>
allowBrowserInvocation
Adobe AIR 1.0 e posterior - Opcional Permite que a API no navegador AIR detecte e ative o aplicativo. Se voc definiu esse valor como true, certifique-se de considerar implicaes de segurana. Elas so descritas em Invocao de um aplicativo do AIR do navegador (para desenvolvedores em ActionScript) ou em Invoking an AIR application from the browser (para desenvolvedores em HTML). Para obter mais informaes, consulte Inicializao de um aplicativo do AIR instalado do navegador na pgina 256.
211
Elemento pai:aplicativo na pgina 211 Elementos filho: nenhum Contedo true ou false (padro) Exemplo
<allowBrowserInvocation>true </allowBrowserInvocation>
android
Adobe AIR 2.5 e posterior - opcional Permite adicionar elementos ao arquivo de manifesto do Android. O AIR cria o arquivo AndroidManifest.xml para cada pacote APK. Voc pode usar o elemento android no descritor do aplicativo do AIR para adicionar outros itens adicionais a este. Ignorado em todas as plataformas, exceto no Android. Elemento pai:aplicativo na pgina 211 Elementos filho:
aplicativo
Adobe AIR 1.0 e posterior - Necessrio O elemento raiz de um documento de descrio do aplicativo do AIR. Elementos pai: nenhum Elementos filho:
212
copyright na pgina 217 customUpdateUI na pgina 217 descrio na pgina 218 extenses na pgina 220 nome de arquivo na pgina 221 fileTypes na pgina 223 cone na pgina 225 id na pgina 226 initialWindow na pgina 228 installFolder na pgina 229 iPhone na pgina 230 nome na pgina 234 programMenuFolder na pgina 235 publisherID na pgina 235 supportedLanguages na pgina 238 supportedProfiles na pgina 239 verso na pgina 242 versionLabel na pgina 242 versionNumber na pgina 242
Atributos minimumPatchLevel O nvel mnimo de caminho do runtime AIR exigido por esta aplicao. xmlns o atributo de namespace XML determina a verso do runtime AIR necessria ao aplicativo. O namespace alterado com cada verso principal do AIR (mas no com patches secundrios). O ltimo segmento do espao para nomes, como "3.0", indica a verso em runtime exigida pelo aplicativo. Os valores xmlns para as principais verses AIR so:
xmlns="http://ns.adobe.com/air/application/1.0" xmlns="http://ns.adobe.com/air/application/1.1" xmlns="http://ns.adobe.com/air/application/1.5" xmlns="http://ns.adobe.com/air/application/1.5.2" xmlns="http://ns.adobe.com/air/application/1.5.3" xmlns="http://ns.adobe.com/air/application/2.0" xmlns="http://ns.adobe.com/air/application/2.5" xmlns="http://ns.adobe.com/air/application/2.6" xmlns="http://ns.adobe.com/air/application/2.7" xmlns="http://ns.adobe.com/air/application/3.0" xmlns="http://ns.adobe.com/air/application/3.1" xmlns="http://ns.adobe.com/air/application/3.2" xmlns="http://ns.adobe.com/air/application/3,3" xmlns="http://ns.adobe.com/air/application/3.4" xmlns="http://ns.adobe.com/air/application/3.5" xmlns="http://ns.adobe.com/air/application/3.6" xmlns="http://ns.adobe.com/air/application/3.7"
213
Nos aplicativos baseados em SWF, a verso do runtime do AIR especificada na descrio do aplicativo determina a verso mxima do SWF que pode ser carregada como o contedo inicial do aplicativo. Aplicativos que especificam AIR 1.0 ou AIR 1.1 s podem usar arquivos SWF9 (Flash Player 9) como contedo inicial, mesmo quando executados usando o runtime do AIR 2. Os aplicativos que especificam AIR 1.5 (ou posteriores) podem usar arquivos SWF9 ou SWF10 (Flash Player 10) como contedo inicial. A verso do SWF determina que verso do AIR e APIs do Flash Player esto disponveis. Se um arquivo SWF9 for usado como contedo inicial de um aplicativo do AIR 1.5, esse aplicativo s ter acesso ao AIR 1.1 e s APIs do Flash Player 9. Alm disso, alteraes de comportamento feitas em APIs existentes no AIR 2.0 ou no Flash Player 10.1 no sero eficazes. (Alteraes importantes relacionadas segurana, feitas em APIs, so uma exceo a esse princpio e podem ser aplicadas de forma retroativa em patches atuais ou futuros do runtime). Em aplicativos baseados em HTML, a verso do runtime especificada na descrio do aplicativo determina qual verso do AIR e de APIs do Flash Player esto disponveis para o aplicativo. Os comportamentos de HTML, CSS e JavaScript so sempre determinados pela verso do Webkit usada no runtime do AIR instalado, no pela descrio do aplicativo. Quando um aplicativo do AIR carrega contedo SWF, a verso do AIR e das APIs do Flash Player disponveis para esse contedo depende de como o contedo carregado. s vezes, a verso efetiva determinada pelo espao de nome do descritor do aplicativo, s vezes determinada pela verso do contedo de carregamento e s vezes determinada pela verso do contedo carregado. A tabela a seguir mostra como a verso da API determinada com base no mtodo de carregamento:
Como o contedo carregado Contedo inicial, aplicativo baseado em SWF Contedo inicial, aplicativo baseado em HTML SWF carregado pelo contedo SWF Biblioteca SWF carregada pelo contedo HTML usando a tag <script> SWF carregado pelo contedo HTML usando o AIR ou as APIs do Flash Player (como flash.display.Loader) SWF carregado pelo contedo HTML usando as tags <object> ou <embed> (ou as APIs de JavaScript equivalentes) Como a verso da API determinada Verso SWF do arquivo carregado Espao para nomes da descrio do aplicativo Verso do contedo carregado Espao para nomes da descrio do aplicativo
Ao carregar um arquivo SWF de uma verso diferente do contedo carregado, voc pode se deparar com dois problemas:
Carregamento de uma verso mais recente de SWF por uma verso mais antiga de SWF As referncias a APIs
adicionadas nas novas verses do AIR e do Flash Player no contedo carregado ficaro sem ser resolvidas.
Carregamento de uma verso mais antiga de SWF por uma verso mais recente de SWF As APIs alteradas nas
novas mais recentes do AIR e do Flash Player podero se comportar de forma inesperada pelo contedo carregado. Contedo O elemento do aplicativo contm elementos filho que definem as propriedades de um aplicativo do AIR.
214
Exemplo
<?xml version="1.0" encoding="utf-8" ?> <application xmlns="http://ns.adobe.com/air/application/3.0"> <id>HelloWorld</id> <version>2.0</version> <filename>Hello World</filename> <name>Example Co. AIR Hello World</name> <description> <text xml:lang="en">This is an example.</text> <text xml:lang="fr">C'est un exemple.</text> <text xml:lang="es">Esto es un ejemplo.</text> </description> <copyright>Copyright (c) 2010 Example Co.</copyright> <initialWindow> <title>Hello World</title> <content> HelloWorld.swf </content> <systemChrome>none</systemChrome> <transparent>true</transparent> <visible>true</visible> <minSize>320 240</minSize> </initialWindow> <installFolder>Example Co/Hello World</installFolder> <programMenuFolder>Example Co</programMenuFolder> <icon> <image16x16>icons/smallIcon.png</image16x16> <image32x32>icons/mediumIcon.png</image32x32> <image48x48>icons/bigIcon.png</image48x48> <image128x128>icons/biggestIcon.png</image128x128> </icon> <customUpdateUI>true</customUpdateUI> <allowBrowserInvocation>false</allowBrowserInvocation> <fileTypes> <fileType> <name>adobe.VideoFile</name> <extension>avf</extension> <description>Adobe Video File</description> <contentType>application/vnd.adobe.video-file</contentType> <icon> <image16x16>icons/avfIcon_16.png</image16x16> <image32x32>icons/avfIcon_32.png</image32x32> <image48x48>icons/avfIcon_48.png</image48x48> <image128x128>icons/avfIcon_128.png</image128x128> </icon> </fileType> </fileTypes> </application>
aspectRatio
Adobe AIR 2.0 e posterior, iOS e Android opcional Especifica a taxa de proporo do aplicativo.
215
Se no for especificado, o aplicativo abrir com a proporo natural e com a orientao do dispositivo. A orientao natural varia de dispositivo para dispositivo. Geralmente, a proporo retrato em dispositivos de tela pequena tais como telefones. Em alguns dispositivos, como o tablete iPad, o aplicativo se abre na orientao atual. No AIR 3.3 e superior, isso se aplica a todo o aplicativo, no apenas exibio inicial. Elemento pai:initialWindow na pgina 228 Elementos filho: nenhum Contedo
retrato, paisagem ou qualquer uma
Exemplo
<aspectRatio> landscape</aspectRatio>
autoOrients
Adobe AIR 2.0 e posterior, iOS e Android opcional Especifica se a orientao do contedo no aplicativo reorienta automaticamente quando o prprio dispositivo altera a orientao fsica. Para obter mais informaes, consulte Orientao do palco. Ao usar auto-orientao, considere a configurao das propriedades align e scaleMode do Palco para o seguinte:
stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE;
Essas configuraes permitem que o aplicativo gire em torno dos cantos superior e esquerdo e impedem que o contedo do seu aplicativo seja escalado automaticamente. Embora os outros modos de escala faam ajustes no contedo para adaptarem-se s dimenses do palco submetido rotao, eles tambm recortam , distorcem ou comprimem excessivamente esse contedo. Melhores resultados quase sempre podem ser obtidos quando voc mesmo redesenha ou retransmite o contedo. Elemento pai:initialWindow na pgina 228 Elementos filho: nenhum Contedo
true ou false (padro)
Exemplo
<autoOrients>true </autoOrients>
colorDepth
Adobe AIR 3 e posterior - Opcional Especifica a utilizao da cor de 16 bits ou de 32 bits. A utilizao da cor de 16 bits pode aumentar o desempenho de renderizao, mas em detrimento da fidelidade de cor. Antes do AIR 3, a cor de 16 bits foi sempre usada no Android. No AIR 3, a cor de 32 bits usada por padro. Nota: Se o seu aplicativo usar a classe StageVideo, voc dever usar cor de 32 bits. Elemento pai:android na pgina 211
216
16 bits 32 bits
Exemplo
<android> <colorDepth>16bit</colorDepth> <manifestAdditions>...</manifestAdditions> </android>
contedo
Adobe AIR 1.0 e posterior - Necessrio O valor especificado para o elemento content a URL para o arquivo principal de contedo do aplicativo. Isso pode ser um arquivo SWF ou HTML. A URL especificada em relao raiz da pasta de instalao do aplicativo. (Ao executar um aplicativo do AIR com o ADL, a URL relativa pasta que contm o arquivo do descritor do aplicativo. Voc pode usar o parmetro root-dir do ADL para especificar um diretrio de raiz diferente.) Elemento pai:initialWindow na pgina 228 Elementos filho: nenhum Contedo Uma URL relativa ao diretrio do aplicativo. Como o valor do elemento content tratado como uma URL, os caracteres no nome do arquivo de contedo devem ser codificados por URL de acordo com as regras definidas em RFC 1738. Caracteres de espao, por exemplo, devem ser codificados como %20. Exemplo
<content>TravelPlanner.swf </content>
contentType
Adobe AIR 1.0 a 1.1 opcional; AIR 1.5 e posterior obrigatrio O contentType exigido no AIR 1.5 (ele era opcional no AIR 1.0 e 1.1). A propriedade ajuda alguns sistemas operacionais a localizarem o melhor aplicativo para abrir um arquivo. O valor deve ser o tipo MIME do contedo do arquivo. Observe que o valor ser ignorado no Linux se o tipo de arquivo j estiver registrado e tiver um tipo MIME atribudo. Elemento pai:fileType na pgina 222 Elementos filho: nenhum Contedo O tipo e subtipo de MIME. Consulte RFC2045 para obter mais informaes sobre tipos de MIME.
217
Exemplo
<contentType> text/plain</contentType>
copyright
Adobe AIR 1.0 e posterior - Opcional As informaes de copyright para o aplicativo do AIR. No Mac OS, o texto de copyright exibido caixa de dilogo Sobre para o aplicativo instalado. No Mac OS, as informaes de copyright tambm so usadas no campo NSHumanReadableCopyright no arquivo Info.plist para o aplicativo. Elemento pai:aplicativo na pgina 211 Elementos filho: nenhum Contedo Uma sequncia de caracteres que contm as informaes de copyright do aplicativo. Exemplo
<copyright> 2010, Examples, Inc.All rights reserved. </copyright>
customUpdateUI
Adobe AIR 1.0 e posterior - Opcional Indica se um aplicativo fornecer seus prprios dilogos de atualizao. Se false, o AIR apresenta os dilogos de atualizao padro para o usurio. Somente os aplicativos distribudos como arquivos AIR podem usar o sistema incorporado de atualizao do AIR. Quando a verso instalada do aplicativo tiver o elemento customUpdateUI configurado para true e, em seguida, o usurio clicar duas vezes no arquivo AIR para obter uma nova verso ou instalar uma atualizao do aplicativo usando o recurso de instalao contnua, o runtime abre a verso instalada do aplicativo. O runtime no abre o instalador do aplicativo padro do AIR. A lgica do seu aplicativo pode ento determinar como proceder com a operao de atualizao. (O ID do aplicativo e o ID do editor no arquivo AIR devem corresponder aos valores no aplicativo instalado para que uma atualizao prossiga.) Nota: O mecanismo customUpdateUI apenas comea a funcionar quando o aplicativo j est instalado e o usurio clica duas vezes no arquivo de instalao do AIR que contm uma atualizao ou instala uma atualizao do aplicativo usando o recurso de instalao direta. Voc pode baixar e iniciar uma atualizao pela lgica do seu aplicativo, exibindo sua interface de usurio personalizada conforme necessrio, seja customUpdateUItrue ou no. Para obter mais informaes, consulte Atualizao de aplicativos do AIR na pgina 258. Elemento pai:aplicativo na pgina 211 Elementos filho: nenhum Contedo true ou false (padro) Exemplo
<customUpdateUI> true</customUpdateUI>
218
depthAndStencil
Adobe AIR 3.2 e posterior - Opcional Indica que o aplicativo exige o uso do buffer de profundidade ou de estncil. Normalmente, voc usa esses buffers ao trabalhar com contedo 3D. Por padro, o valor desse elemento false para desativar os buffers de profundidade e de estncil. Esse elemento necessrio, pois os buffers devem ser alocados ao inicializar o aplicativo, antes de carregar qualquer contedo. A configurao desse elemento deve corresponder ao valor passado para o argumento enableDepthAndStencil para o mtodo Context3D.configureBackBuffer(). Se os valores no corresponderem, o AIR emite um erro. Esse elemento aplicvel somente quando renderMode = direct. Se renderMode no equivaler a direct, o ADT emite o erro 118:
<depthAndStencil> element unexpected for render mode cpu. It requires "direct" render mode.
Exemplo
<depthAndStencil> true</depthAndStencil>
descrio
Adobe AIR 1.0 e posterior - Opcional A descrio do aplicativo, exibida no instalador do aplicativo do AIR. Se voc especificar um nico n de texto (e no vrios elementos text), o instalador do aplicativo do AIR usar essa descrio, independentemente do idioma do sistema. Caso contrrio, o instalador do aplicativo do AIR usa a descrio que mais se aproxima do idioma da interface do usurio do sistema operacional do usurio. Por exemplo, considere uma instalao na qual o elemento description do arquivo do descritor do aplicativo inclui um valor para o local en (ingls). O instalador do aplicativo do AIR usar a descrio en se o sistema do usurio identificar en (ingls) como o idioma da interface do usurio. Ele tambm usa a descrio en se o idioma da interface do usurio do sistema for enUS (ingls norte-americano). No entanto, se o idioma da interface do usurio do sistema en-US e o arquivo do descritor do aplicativo define os nomes en-US e en-GB, o instalador do aplicativo do AIR usa o valor en-US. Se o aplicativo no define nenhuma descrio que corresponda ao idioma da interface do usurio do sistema, o instalador do aplicativo do AIR usa o primeiro valor description definido no arquivo do descritor do aplicativo. Para obter mais informaes sobre o desenvolvimento de aplicativos com vrios idiomas, consulte Localizao de aplicativos AIR na pgina 293. Elemento pai:aplicativo na pgina 211 Elementos filho:texto na pgina 240 Contedo O esquema do descritor do aplicativo do AIR 1.0 permite apenas um simples n de texto a ser definido para o nome (e no vrios elementos text).
219
No AIR 1.1 (ou acima), voc pode especificar vrios idiomas no elemento description. O atributo xml:lang para cada elemento de texto especifica um cdigo de idioma, como definido em RFC4646 (http://www.ietf.org/rfc/rfc4646.txt). Exemplo Descrio com n de texto simples:
<description>This is a sample AIR application.</description>
Descrio com elementos do texto traduzido para ingls, francs e espanhol (vlido no AIR 1.1 e posterior):
<description> <text xml:lang="en">This is an example.</text> <text xml:lang="fr">C'est un exemple.</text> <text xml:lang="es">Esto es un ejemplo.</text> </description>
descrio
Adobe AIR 1.0 e posterior - Necessrio A descrio do tipo de arquivo exibida para o usurio pelo sistema operacional. A descrio do tipo de arquivo no traduzida. Consulte tambm: descrio na pgina 218 como filho do elemento do aplicativo Elemento pai:fileType na pgina 222 Elementos filho: nenhum Contedo Uma sequncia de caracteres que descreve o contedo do arquivo. Exemplo
<description> PNG image</description>
Entitlements
Adobe AIR 3.1 e posterior - somente iOS, opcional O iOS usa propriedades chamadas entitlements para fornecer o acesso do aplicativo a recursos adicionais. Use o elemento Entitlements para especificar esta informao em um aplicativo iOS mvel. Elemento pai:iPhone na pgina 230 Elementos filho: Elementos iOS Entitlements.plist Contedo Contm elementos filho que especificam os pares com valor-chave para usar como configuraes de Entitlements.plist para o aplicativo. O contedo do elemento Entitlements deve ser includo em um bloco CDATA. Para obter mais informaes, consulte Principais referncias de Entitlement na biblioteca do desenvolvedor iOS.
220
Exemplo
<iphone> ... <Entitlements> <![CDATA[ <key>aps-environment</key> <string>development</string> ]]> </Entitlements> </iphone>
extension
Adobe AIR 1.0 e posterior - Necessrio A sequncia de caracteres de extenso de um tipo de arquivo. Elemento pai:fileType na pgina 222 Elementos filho: nenhum Contedo Uma sequncia que identifica os caracteres de extenso do arquivo (sem o ponto, "."). Exemplo
<extension> png</extension>
extensionID
Adobe AIR 2.5 e posteriores Especifica o ID de uma extenso ActionScript usada pelo aplicativo. O ID definida no documento descritor da extenso. Elemento pai:extenses na pgina 220 Elementos filho: nenhum Contedo Uma sequncia de caracteres que identifica o ID da extenso ActionScript. Exemplo
<extensionID> com.example.extendedFeature</extensionID>
extenses
Adobe AIR 2.5 e posteriores - opcional Identifica as extenses ActionScript usadas por um aplicativo. Elemento pai:aplicativo na pgina 211 Elementos filho:extensionID na pgina 220
221
Contedo Elementos filho extensionID que contm os IDs de extenso ActionScript do arquivo descritor de extenso. Exemplo
<extensions> <extensionID>extension.first</extensionID> <extensionID>extension.next</extensionID> <extensionID>extension.last</extensionID> </extensions>
externalSwfs
Adobe AIR 3.7 e posterior, somente iOS opcional Especifica o nome de um arquivo de texto que contenha uma lista de arquivos SWF a serem configurados pelo ADT para hospedagem remota. Voc pode minimizar o tamanho inicial de download do aplicativo ao empacotar um subconjunto dos SWFs usados por seu aplicativo e carregar os SWFs externos restantes (apenas ativos) no runtime usando o mtodo Loader.load(). Para usar esse recurso, necessrio empacotar o aplicativo para que o ADT mova todo o ActionScript ByteCode (ABC) dos arquivos SWF carregados externamente para o aplicativo SWF principal, deixando um arquivo SWF que contenha todos os recursos. Isso feito para obedecer regra da Apple Store que probe o download de cdigos depois que um aplicativo instalado. Para obter mais informaes, consulte Minimizar o tamanho do download carregando SWFs externos com somente ativos na pgina 87. Elemento pai:iPhone na pgina 230, initialWindow na pgina 228 Elementos filho: nenhum Contedo O nome de um arquivo de texto que contenha uma lista determinada por linhas dos SWFs que sero hospedados remotamente. Atributos: Nenhum. Exemplos iOS:
<iPhone> <externalSwfs>FileContainingListofSWFs.txt</externalSwfs> </iPhone>
nome de arquivo
Adobe AIR 1.0 e posterior - Necessrio A sequncia de caracteres a usar como um filename do aplicativo (sem extenso) quando o aplicativo instalado. O arquivo do aplicativo inicia o aplicativo do AIR no runtime. Se nenhum valor name for fornecido, filename tambm ser usado como o nome da pasta de instalao. Elemento pai:aplicativo na pgina 211
222
Elementos filho: nenhum Contedo A propriedade filename pode conter qualquer caractere Unicode (UTF-8), exceto o seguinte, que tem o uso proibido como filenames em vrios sistemas de arquivos:
Caractere vrios * " : > < ? \ | Cdigo hexadecimal 0x00 x1F x2A x22 x3A x3C x3E x3F x5C x7C
fileType
Adobe AIR 1.0 e posterior - Opcional Descreve um tipo nico de arquivo que o aplicativo pode se cadastrar. Elemento pai:fileTypes na pgina 223 Elementos filho:
contentType na pgina 216 descrio na pgina 219 extension na pgina 220 cone na pgina 225 nome na pgina 235
Contedo Elementos que descrevem um tipo de arquivo.
223
Exemplo
<fileType> <name>foo.example</name> <extension>foo</extension> <description>Example file type</description> <contentType>text/plain</contentType> <icon> <image16x16>icons/fooIcon16.png</image16x16> <image48x48>icons/fooIcon48.png</imge48x48> <icon> </fileType>
fileTypes
Adobe AIR 1.0 e posterior - Opcional O elemento fileTypes permite que voc declare os tipos de arquivos com os quais um aplicativo do AIR pode ser associado. Quando um aplicativo do AIR for instalado, qualquer tipo de arquivo declarado registrado com o sistema operacional. Se esses tipos de arquivo ainda no estiverem associados a um outro aplicativo, eles so associados ao aplicativo do AIR. Para substituir uma associao existente entre um tipo de arquivo e outro aplicativo, use o mtodo NativeApplication.setAsDefaultApplication() em runtime (preferencialmente com a permisso do usurio). Nota: Os mtodos runtime podem apenas gerenciar associaes para os tipos de arquivos declarados no descritor do aplicativo. O elemento fileTypes opcional. Elemento pai:aplicativo na pgina 211 Elementos filho:fileType na pgina 222 Contedo O elemento fileTypes pode conter qualquer nmero de elementos fileType. Exemplo
<fileTypes> <fileType> <name>adobe.VideoFile</name> <extension>avf</extension> <description>Adobe Video File</description> <contentType>application/vnd.adobe.video-file</contentType> <icon> <image16x16>icons/AIRApp_16.png</image16x16> <image32x32>icons/AIRApp_32.png</image32x32> <image48x48>icons/AIRApp_48.png</image48x48> <image128x128>icons/AIRApp_128.png</image128x128> </icon> </fileType> </fileTypes>
224
forceCPURenderModeForDevices
Adobe AIR 3.7 e posterior, somente iOS opcional Force o CPU a entrar no modo de renderizao para um conjunto especfico de dispositivos. Esse recurso permite que voc efetivamente ative o modo de renderizao da GPU de forma seletiva para os dispositivos iOS restantes. Adicione esta tag como filha da tag iPhone e especifique uma lista separada por espaos com os nomes dos modelos de dispositivos. Os nomes de modelos de dispositivo vlidos incluem:
iPad 1.1 iPad 2.1 iPad 2.2 iPad 2.3 iPad 2.4 iPad 2.5 iPad 3.1 iPad 3.2 iPad 3.3 iPad 3.4 iPhone 1.1 iPhone 1.2 iPhone 2.1 iPhone 3.1 iPhone 3.2 iPhone 4.1 iPhone 5.1 iPod 1.1 iPod 2.1 iPod 3.3 iPod 4.1 iPod 5.1
Elemento pai:iPhone na pgina 230, initialWindow na pgina 228 Elementos filho: nenhum Contedo Lista dos nomes dos modelos de dispositivos separados por espaos. Atributos: Nenhum. Exemplos iOS:
... <renderMode>GPU</renderMode> ... <iPhone> ... <forceCPURenderModeForDevices>iPad1,1 iPhone1,1 iPhone1,2 iPod1,1 </forceCPURenderModeForDevices> </iPhone>
fullScreen
Adobe AIR 2.0 e posterior, iOS e Android opcional Especifica se o aplicativo iniciado no modo de tela cheia.
225
Elemento pai:initialWindow na pgina 228 Elementos filho: nenhum Contedo true ou false (padro) Exemplo
<fullscreen>true </fullscreen>
height
Adobe AIR 1.0 e posterior - Opcional A altura inicial da janela principal do aplicativo. Se voc no definir uma altura, esta determinada pelas configuraes no arquivo SWF raiz ou, no caso de um aplicativo do AIR baseado em HTML, pelo sistema operacional. A altura mxima de uma janela muda de 2048 para 4096 pixels no AIR 2. Elemento pai:initialWindow na pgina 228 Elementos filho: nenhum Contedo Um nmero inteiro positivo com um valor mximo de 4095. Exemplo
<height>4095 </height>
cone
Adobe AIR 1.0 e posterior - Opcional A propriedade icon especifica um ou mais arquivos de cone a serem usados pelo aplicativo. Incluir um cone opcional. Se voc no especificar uma propriedade icon, o sistema operacional exibir um cone padro. O caminho especificado relativo ao diretrio raiz do aplicativo. Os arquivos de cone devem estar no formato PNG. Voc pode especificar todos os tamanhos de cones a seguir: Se um elemento para um determinado tamanho estiver presente, a imagem no arquivo dever ser exatamente do tamanho especificado. Se todos os tamanhos no forem fornecidos, o tamanho mais prximo ser dimensionado para se ajustar para um determinado uso do cone pelo sistema operacional. Nota: Os cones especificados no so automaticamente adicionados ao pacote do AIR. Os arquivos de cone devem ser includos em seus locais corretos relativos quando o aplicativo for empacotado. Para melhores resultados, fornea uma imagem para cada um dos tamanhos disponveis. Alm disso, verifique se os cones esto apresentveis nos modos de cores de 16 e 32 bits. Elemento pai:aplicativo na pgina 211 Elementos filho:imageNxN na pgina 226
226
id
Adobe AIR 1.0 e posterior - Necessrio Uma sequncia de caracteres de identificador para o aplicativo, conhecida como O ID do aplicativo. Um identificador do estilo DNS reverso usado frequentemente, mas este estilo no necessrio. Elemento pai:aplicativo na pgina 211 Elementos filho: nenhum Contedo O valor do ID restrito aos seguintes caracteres:
09 az AZ . (ponto) - (hfen)
O valor deve conter de 1 a 212 caracteres. Esse elemento necessrio. Exemplo
<id>org.example.application</id>
imageNxN
Adobe AIR 1.0 e posterior - Opcional Define o caminho para um cone relativo ao diretrio do aplicativo. As imagens de cone a seguir podem ser usadas, cada um especificando um tamanho diferente de cone:
image16x16 image29x29 (acima de AIR 2) image32x32 image36x36 (acima de AIR 2.5) image48x48 image50x50 (acima de AIR 3.4)
227
image57x57 (acima de AIR 2) image58x58 (acima de AIR 3.4) image72x72 (acima de AIR 2) image100x100 (acima de AIR 3.4) image114x114 (acima de AIR 2.6) image128x128 image144x144 (acima de AIR 3.4) image512x512 (acima de AIR 2) image1024x1024 (acima de AIR 3.4)
O cone deve ser um grfico PNG exatamente do tamanho indicado pelo elemento de imagem. Os arquivos de cone devem ser includos no pacote de aplicativos; cones referenciados no documento de descrio do aplicativo no so includos automaticamente. Elemento pai:aplicativo na pgina 211 Elementos filho: nenhum Contedo O caminho do arquivo pode conter qualquer caractere Unicode (UTF-8), exceto o seguinte, que tem o uso proibido como filenames em vrios sistemas de arquivos:
Caractere vrios * " : > < ? \ | Cdigo hexadecimal 0x00 x1F x2A x22 x3A x3C x3E x3F x5C x7C
Exemplo
<image32x32>icons/icon32.png</image32x32>
InfoAdditions
Adobe AIR 1.0 e posterior - Opcional Permite especificar propriedades adicionais de um aplicativo iOS. Elemento pai:iPhone na pgina 230 Elementos filho: elementos Info.plist para iOS
228
Contedo Contm elementos filho que especificam os pares com valor-chave para usar como configuraes de Info.plist para o aplicativo. Contedo do elemento InfoAdditions deve ser includo em um bloco CDATA. Consulte Referncia-chave da lista de propriedade de informaes na Biblioteca de referncia do iPhone Apple para obter informaes sobre pares dos principais valores e sobre como express-los em XML. Exemplo
<InfoAdditions> <![CDATA[ <key>UIStatusBarStyle</key> <string>UIStatusBarStyleBlackOpaque</string> <key>UIRequiresPersistentWiFi</key> <string>NO</string> ]]> </InfoAdditions>
initialWindow
Adobe AIR 1.0 e posterior - Necessrio Define o principal contedo do arquivo e aparncia inicial do aplicativo. Elemento pai:aplicativo na pgina 211 Elementos filho: Todos os elementos a seguir podem aparecer como filhos do elemento initialWindow. Contudo, alguns elementos so ignorados, dependendo se o AIR est disponvel com janelas em uma plataforma:
Elemento aspectRatio na pgina 214 rea de trabalho ignorada Mvel usada usada usada usada
autoOrients na pgina 215 ignorada contedo na pgina 216 depthAndStencil na pgina 218 fullScreen na pgina 224 height na pgina 225 maximizable na pgina 232 maxSize na pgina 233 usada usada
usada
minimizable na pgina 233 usada minSize na pgina 233 renderMode na pgina 236 usada usado (AIR 3.0 e superior)
229
Elemento requestedDisplayResolutio n na pgina 236 resizable na pgina 237 softKeyboardBehavior na pgina 238 systemChrome na pgina 240 title na pgina 241 transparent na pgina 241 visible na pgina 243 width na pgina 243 x na pgina 244 y na pgina 244
Mvel ignorada
usada ignorada
ignorada usada
usada
ignorada
installFolder
Adobe AIR 1.0 e posterior - Opcional Identifica o subdiretrio do diretrio de instalao padro.
230
No Windows, o subdiretrio de instalao padro Arquivos de Programas. No Mac OS, o diretrio /Applications. No Linux, /opt/. Por exemplo, se a propriedade installFolder definida como "Acme" e um aplicativo chamado de "ExampleApp", o aplicativo instalado em C:\Arquivos de Programas\Acme\ExampleApp no Windows, em /Applications/Acme/Example.app no Mac OS e em /opt/Acme/ExampleApp no Linux. A propriedade installFolder opcional. Se voc no especificar nenhuma propriedade installFolder, o aplicativo ser instalado em um subdiretrio do diretrio de instalao padro, com base na propriedade name. Elemento pai:aplicativo na pgina 211 Elementos filho: nenhum Contedo A propriedade installFolder pode conter qualquer caractere Unicode (UTF-8), exceto aqueles cujo uso proibido como nomes de pastas em vrios sistemas de arquivos (consulte a propriedade filename para obter a lista de excees). Use o caractere de barra (/) como o caractere separador de diretrio se desejar especificar um subdiretrio aninhado. Exemplo
<installFolder>utilities/toolA</installFolder>
iPhone
Adobe AIR 2.0, somente iOS opcional Define as propriedades de aplicativos especficos para iOS. Elemento pai:aplicativo na pgina 211 Elementos filho:
Entitlements na pgina 219 externalSwfs na pgina 221 forceCPURenderModeForDevices na pgina 224 InfoAdditions na pgina 227 requestedDisplayResolution na pgina 236
manifesto
Adobe AIR 2.5 e posterior, somente Android opcional Especifica informaes para adicionar ao arquivo de manifesto do Android para o aplicativo. Elemento pai:manifestAdditions na pgina 231 Elementos filho: Definido pelo Android SDK.
231
Contedo O elemento do manifesto no , tecnicamente falando, uma parte do esquema descritor do aplicativo do AIR. a raiz do documento XML do manifesto do Android. Qualquer contedo que voc coloca dentro do elemento do manifesto deve estar em conformidade com o esquema do AndroidManifest.xml. Ao gerar um arquivo APK com as ferramentas do AIR, as informaes do elemento do manifesto copiado para a parte correspondente do AndroidManifest.xml gerado pelo aplicativo. Se voc especificar valores de manifesto do Android que esto disponveis apenas em uma verso SDK mais recente do que a suportada diretamente pelo AIR, voc precisa configurar o sinalizador -platformsdk para o ADT ao empacotar o aplicativo. Defina o sinalizador para o caminho do sistema de arquivos para um SDK do Android que suporte os valores que voc est adicionando. O prprio elemento do manifesto deve ser includo em um bloco CDATA dentro do descritor do aplicativo do AIR. Exemplo
<![CDATA[ <manifest android:sharedUserID="1001"> <uses-permission android:name="android.permission.CAMERA"/> <uses-feature android:required="false" android:name="android.hardware.camera"/> <application android:allowClearUserData="true" android:enabled="true" android:persistent="true"/> </manifest> ]]>
manifestAdditions
Adobe AIR 2.5 e posterior, somente Android Especifica informaes para adicionar ao arquivo do manifesto do Android. Cada aplicativo do Android inclui um arquivo de manifesto que define as propriedades bsicas do aplicativo. O manifesto do Android semelhante em conceito ao descritor do aplicativo do AIR. Um aplicativo do AIR for Android tem tanto um descritor de aplicativo quanto um arquivo de manifesto do Android gerado automaticamente. Quando um aplicativo do AIR for Android compactado, as informaes contidas neste elemento manifestAdditions so adicionadas s partes correspondentes do documento de manifesto do Android. Elemento pai:android na pgina 211 Elementos filho:manifesto na pgina 230 Contedo As informaes no elemento manifestAdditions so adicionadas ao documento XML do AndroidManifest. O AIR define vrias entradas de manifesto no documento de manifesto Android gerado para garantir que os recursos de aplicao e runtime funcionem corretamente. No possvel substituir as configuraes a seguir: No possvel definir os seguintes atributos do elemento de manifesto:
232
android:versionCode android:versionName
No possvel definir os seguintes atributos do elemento de atividade principal:
android:label android:icon
No possvel definir os seguintes atributos do elemento de aplicativo:
maximizable
Adobe AIR 1.0 e posterior - Opcional Especifica se a janela pode ser maximizada. Nota: Em sistemas operacionais como o Mac OS X, em que maximizar janelas uma operao de redimensionamento, tanto maximizable quanto resizable devem ser definidos como false para impedir que a janela seja ampliada ou redimensionada. Elemento pai:initialWindow na pgina 228 Elementos filho: nenhum Contedo
true (padro) ou false
233
Exemplo
<maximizable>false </maximizable>
maxSize
Adobe AIR 1.0 e posterior - Opcional O tamanho mximo da janela. Se voc no definir um tamanho mximo, este determinado pelo sistema operacional. Elemento pai:initialWindow na pgina 228 Elementos filho: nenhum Contedo Dois inteiros que representam a largura e a altura mximas, separadas por espao em branco. Nota: O tamanho mximo da janela disponvel pelo AIR aumentou de 2048x2048 para 4096x4096 pixels no AIR 2. (Como as coordenadas da tela so baseadas em zero, o valor mximo que voc pode usar para largura ou altura 4095.) Exemplo
<maxSize>1024 360</maxSize>
minimizable
Adobe AIR 1.0 e posterior - Opcional Especifica se a janela pode ser minimizada. Elemento pai:initialWindow na pgina 228 Elementos filho: nenhum Contedo
true (padro) ou false
Exemplo
<minimizable>false</minimizable>
minSize
Adobe AIR 1.0 e posterior - Opcional Especifica o tamanho mnimo permitido para a janela. Elemento pai:initialWindow na pgina 228 Elementos filho: nenhum Contedo Dois inteiros que representam a largura e a altura mnimas, separadas por espao em branco. Observe que o tamanho mnimo imposto pelo sistema operacional tem precedncia sobre o valor definido no descritor do aplicativo.
234
Exemplo
<minSize>120 60</minSize>
nome
Adobe AIR 1.0 e posterior - Opcional O ttulo do aplicativo apresentado pelo instalador do aplicativo do AIR. Se nenhum elemento name for especificado, o instalador do aplicativo do AIR exibir filename como o nome do aplicativo. Elemento pai:aplicativo na pgina 211 Elementos filho:texto na pgina 240 Contedo Se voc especificar um nico n de texto (em vez de vrios elementos <text>), o instalador do aplicativo do AIR usa esse nome, independentemente do idioma do sistema. O esquema do descritor do aplicativo do AIR 1.0 permite apenas um simples n de texto a ser definido para o nome (e no vrios elementos text). No AIR 1.1 (ou acima), voc pode especificar vrios idiomas no elemento name. O atributo xml:lang para cada elemento de texto especifica um cdigo de idioma, como definido em RFC4646 (http://www.ietf.org/rfc/rfc4646.txt). O instalador do aplicativo do AIR usa o nome que mais se aproxima do idioma da interface do usurio do sistema operacional do usurio. Por exemplo, considere uma instalao na qual o elemento name do arquivo do descritor do aplicativo inclui um valor para o local en (ingls). O instalador do aplicativo do AIR usa o nome en se o sistema operacional identifica en (ingls) como o idioma da interface do usurio. Ele tambm usa o nome en se o idioma da interface do usurio do sistema for en-US (ingls norte-americano). No entanto, se o idioma da interface do usurio en-US e o arquivo do descritor do aplicativo define os nomes en-US e en-GB, o instalador do aplicativo do AIR usa o valor en-US. Se o aplicativo no define nenhum nome que corresponda aos idiomas da interface do usurio do sistema, o instalador do aplicativo do AIR usa o primeiro valor name definido no arquivo do descritor do aplicativo. O elemento name define apenas o ttulo do aplicativo usado no instalador do aplicativo do AIR. O instalador do aplicativo do AIR suporta vrios idiomas: chins tradicional, chins simplificado, tcheco, holands, ingls, francs, alemo, italiano, japons, coreano, portugus do Brasil, russo, espanhol, sueco e turco. O instalador do aplicativo do AIR seleciona seu idioma exibido (para texto que no seja o ttulo do aplicativo e a descrio) com base no idioma da interface do usurio do sistema. Essa seleo de idioma independente das configuraes no arquivo do descritor do aplicativo. O elemento nameno define as localidades disponveis para o aplicativo instalado em execuo. Para obter detalhes sobre o desenvolvimento de aplicativos com vrios idiomas, consulte Localizao de aplicativos AIR na pgina 293. Exemplo O exemplo a seguir define um nome com um n de texto simples:
<name>Test Application</name>
O exemplo a seguir, vlido no AIR 1.1 e posterior, especifica o nome em trs idiomas (ingls, francs e espanhol), utilizando ns do elemento <text>:
235
<name> <text xml:lang="en">Hello AIR</text> <text xml:lang="fr">Bonjour AIR</text> <text xml:lang="es">Hola AIR</text> </name>
nome
Adobe AIR 1.0 e posterior - Necessrio Identifica o nome de um tipo de arquivo. Elemento pai:fileType na pgina 222 Elementos filho: nenhum Contedo Uma sequncia de caracteres que representa o nome do tipo de arquivo. Exemplo
<name>adobe.VideoFile</name>
programMenuFolder
Adobe AIR 1.0 e posterior - Opcional Identifica o local no qual colocar atalhos para o aplicativo no menu Todos os Programas do sistema operacional Windows ou no menu Aplicativos do Linux. (Essa configurao atualmente ignorada em outros sistemas operacionais.) Elemento pai:aplicativo na pgina 211 Elementos filho: nenhum Contedo A sequncia de caracteres para o valor programMenuFolder pode conter qualquer caractere Unicode (UTF-8), exceto aqueles cujo uso proibido como nomes de pastas em vrios sistemas de arquivos (consulte o elemento filename para obter a lista de excees). No use um caractere de barra (/) como o ltimo caractere desse valor. Exemplo
<programMenuFolder>Example Company/Sample Application</programMenuFolder>
publisherID
Adobe AIR 1.5.3 e posterior - opcional Identifica o ID do editor para atualizar um aplicativo do AIR criada originalmente com AIR verso 1.5.2 ou anterior. Somente especifique um ID do editor ao criar uma atualizao do aplicativo. O valor do elemento publisherID deve corresponder ID do editor gerada pelo AIR para a verso anterior do aplicativo. Para um aplicativo instalado, o ID do editor pode ser encontrada na pasta em que um aplicativo instalado, no arquivo META-INF/AIR/publisherid. Novos aplicativos criados com o AIR 1.5.3 ou posterior no devem especificar um ID do editor.
236
Para obter mais informaes, consulte Sobre identificadores de editor do AIR na pgina 192. Elemento pai:aplicativo na pgina 211 Elementos filho: nenhum Contedo Uma sequncia de caracteres do ID do editor. Exemplo
<publisherID>B146A943FBD637B68C334022D304CEA226D129B4.1</publisherID>
renderMode
Adobe AIR 2.0 e posterior - opcional Especifica se deve usar acelerao de unidade de processamento grfico (GPU), se disponvel no dispositivo de computao atual. Elemento pai:initialWindow na pgina 228 Elementos filho: nenhum Contedo Um dos seguintes valores:
auto (padro) volta no momento para o modo de CPU. cpu a acelerao por hardware no usada. direct a composio de renderizao ocorre na CPU; o blitting usa a GPU. Disponvel no AIR 3+.
Nota: Para aproveitar a acelerao GPU do contedo Flash com o AIR para plataformas mveis, o Adobe recomenda que voc use renderMode="direct", o Stage3D e no 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.
requestedDisplayResolution
Adobe AIR 2.6 ou posterior, somente iOS; Adobe AIR 3.6 e posterior OS X Opcional Especifica se o aplicativo deseja usar a resoluo padro ou alta em um dispositivo ou monitor de computador com uma tela de alta resoluo. Quando definida para padro, a tela aparecer para o aplicativo como uma tela de resoluo padro. Quando definida para alta, o aplicativo pode tratar cada pixel de alta resoluo. Por exemplo, em uma tela de iPhone de 640x960 de alta resoluo, se a configurao for standard, as dimenses do palco em tela inteira so 320x480 e cada pixel do aplicativo renderizado usando quatro pixels da tela. Se a configurao for high, as dimenses do palco em tela inteira so 640x960.
237
Em dispositivos com telas de resoluo padro, as dimenses do palco combinam com de tela, sem importar qual definio usada. Se o elemento requestedDisplayResolution estiver aninhado no elemento iPhone, ele se aplica aos dispositivos iOS. Neste caso, o atributo excludeDevices pode ser usado para especificar dispositivos aos quais a configurao no aplicada. Se o elemento requestedDisplayResolution estiver aninhado ao elemento initialWindow, ele se aplica aos aplicativos de desktop AIR nos computadores MacBook Pro compatveis com exibies em alta resoluo. O valor especificado se aplica a todas as janelas nativas usadas no aplicativo. O aninhamento do elemento requestedDisplayResolution ao elementoinitialWindow suportado no AIR 3.6 e posterior. Elemento pai:iPhone na pgina 230, initialWindow na pgina 228 Elementos filho: nenhum Contedo Seja padro ou alta. Atributo: excludeDevices uma lista de nomes de modelos do iOS ou prefixos de nomes de modelos separados por espaos. Isto permite ao desenvolvedor ter alguns dispositivos que usam alta resoluo e outros que usam resoluo padro. Este atributo est disponvel apenas no iOS (o elemento requestedDisplayResolution aninhado no elemento iPhone). O atributo excludeDevices est disponvel no AIR 3.6 e posterior. Para qualquer dispositivo cujo o nome do modelo esteja especificado neste atributo, o valor requestedDisplayResolution o oposto do valor especificado. Em outras palavras, se o valor requestedDisplayResolution for high, os dispositivos excludos usam a resoluo padro. Se o valor requestedDisplayResolution for standard, os dispositivos excludos usam a alta resoluo. Os valores so nomes de modelos de dispositivos iOS ou prefixos de nomes de modelos. Por exemplo, o valor iPad3.1 se refere especificamente a um iPad com Wi-Fi de 3 gerao (mas no aos iPads GSM ou CDMA de 3 gerao). Como alternativa, o valor iPad3 se refere a qualquer iPad de 3 gerao. Uma lista no oficial de nomes de modelos de iOS est disponvel na pgina wiki de modelos de iPhone. Exemplos Desktop:
<initialWindow> <requestedDisplayResolution>high</requestedDisplayResolution> </initialWindow>
iOS:
<iPhone> <requestedDisplayResolution excludeDevices="iPad3 iPad4">high</requestedDisplayResolution> </iPhone>
resizable
Adobe AIR 1.0 e posterior - Opcional Especifica se a janela pode ser redimensionada.
238
Nota: Em sistemas operacionais como o Mac OS X, em que maximizar janelas uma operao de redimensionamento, tanto maximizable quanto resizable devem ser definidos como false para impedir que a janela seja ampliada ou redimensionada. Elemento pai:initialWindow na pgina 228 Elementos filho: Contedo
true (padro) ou false
Exemplo
<resizable>false</resizable>
softKeyboardBehavior
Adobe AIR 2.6 e posterior (perfil mvel) - opcional Especifica o comportamento padro do aplicativo quando um teclado virtual exibido. O comportamento padro deslocar o aplicativo para cima. O runtime mantm o objeto interativo ou o campo de texto focalizado na tela. Use a opo pan se o aplicativo no fornecer sua prpria lgica de manipulao do teclado. Voc tambm pode desativar o comportamento automtico, definindo o elemento softKeyboardBehavior para nenhum. Neste caso, os campos de texto e objetos interativos enviam um SoftKeyboardEvent quando o teclado virtual gerado, mas o runtime no desloca ou redimensiona o aplicativo. responsabilidade do seu aplicativo manter a rea de entrada de texto em exibio. Elemento pai:initialWindow na pgina 228 Elementos filho: nenhum Contedo Seja none ou pan. O valor padro pan. Exemplo
<softKeyboardBehavior>none</softKeyboardBehavior>
supportedLanguages
Adobe AIR 3.2 e posterior - Opcional Identifica os idiomas suportados pelo aplicativo. Esse elemento usado apenas pelo iOS, runtime cativo do Mac e pelos aplicativos Android. Esse elemento ignorado por todos os tipos de aplicativo. Se voc no especificar esse elemento, por padro o empacotador realiza as seguintes aes com base no tipo de aplicativo:
iOS todos os idiomas suportados pelo runtime do AIR so listados na app store do iOS como idiomas suportados
do aplicativo.
239
Runtime cativo do Mac Aplicativo empacotado com conjunto cativo no possui informaes de localizao. Android O pacote do aplicativo tem recursos para todos os idiomas suportados pelo runtime do AIR.
Elemento pai:aplicativo na pgina 211 Elementos filho: nenhum Contedo Uma lista delimitada por espaos dos idiomas suportadas. Os valores de idiomas vlidos so valores ISO 639-1 para os idiomas suportados pelo runtime do AIR: en, de, es, fr, it, ja, ko, pt, ru, cs, nl, pl, sv, tr, zh. O empacotador gera um erro para um valor vazio do elemento <supportedLanguages>. Nota: Marcas localizadas (como a marca de nome) ignoram o valor de um idioma se voc usar a marca <supportedLanguages> e ela no contiver o idioma em questo. Se uma extenso nativa tem recursos para um idioma no especificado pela marca <supportedLangauges>, emitido um aviso e os recursos so ignorados para o idioma em questo. Exemplo
<supportedLanguages>en ja fr es</supportedLanguages>
supportedProfiles
Adobe AIR 2.0 e posterior - opcional Identifica os perfis que so compatveis com o aplicativo. Elemento pai:aplicativo na pgina 211 Elementos filho: nenhum Contedo Voc pode incluir qualquer um desses valores no elemento supportedProfiles:
desktop O perfil desktop para aplicativos do AIR que so instalados em um computador de mesa que usa um
arquivo do AIR. Esses aplicativos no precisam ter acesso classe NativeProcess (que fornece comunicao com os aplicativos nativos).
extendedDesktop O perfil desktop estendido define os aplicativos do AIR que esto instalados em um
computador de mesa usando um instalador do aplicativo nativo. Esses aplicativos precisam ter acesso classe NativeProcess (que fornece comunicao com os aplicativos nativos).
mobileDevice O perfil de dispositivo mvel para aplicativos mveis. extendedMobileDevice O perfil dispositivo mvel estendido no est em uso atualmente.
A propriedade supportedProfiles opcional. Quando voc no incluir este elemento no arquivo descritor do aplicativo, o aplicativo pode ser compilado e implantado para qualquer perfil. Para especificar vrios perfis, separe cada um com um caractere de espao. Por exemplo, a configurao a seguir especifica que o aplicativo somente est disponvel na rea de trabalho e nos perfis estendidos.
<supportedProfiles>desktop extendedDesktop</supportedProfiles>
Nota: Ao executar um aplicativo com ADL e no especificar um valor para a opo -profile do ADL, o primeiro perfil no descritor do aplicativo utilizado. (Se nenhum perfil estiver especificado no descritor do aplicativo, o perfil de desktop usado.)
240
Exemplo
<supportedProfiles>desktop mobileDevice</supportedProfiles>
systemChrome
Adobe AIR 1.0 e posterior - Opcional Especifica se a janela inicial do aplicativo criada com controles, bordas e barra de ttulo padro fornecidos pelo sistema operacional. A configurao do cromo do sistema da janela no pode ser alterada em runtime. Elemento pai:initialWindow na pgina 228 Elementos filho: nenhum Contedo Um dos seguintes valores:
none Nenhum cromo do sistema fornecido. O aplicativo (ou um framework do aplicativo, como Flex) responsvel por exibir o cromo da janela. standard (padro) O cromo do sistema fornecido pelo sistema operacional.
Exemplo
<systemChrome>standard</systemChrome>
texto
Adobe AIR 1.1 e posterior - opcional Especifica uma sequncia de caracteres traduzida. O atributo xml:lang de um elemento de texto especifica um cdigo de idioma, como definido em RFC4646 (http://www.ietf.org/rfc/rfc4646.txt). O instalador do aplicativo do AIR usa o elemento text com o valor de atributo xml:lang que mais se aproxima do idioma da interface do sistema operacional do usurio. Por exemplo, considere uma instalao na qual um elemento text inclui um valor para o local en (ingls). O instalador do aplicativo do AIR usa o nome en se o sistema operacional identifica en (ingls) como o idioma da interface do usurio. Ele tambm usa o nome en se o idioma da interface do usurio do sistema for en-US (ingls norte-americano). No entanto, se o idioma da interface do usurio en-US e o arquivo do descritor do aplicativo define os nomes en-US e en-GB, o instalador do aplicativo do AIR usa o valor en-US. Se o aplicativo no define nenhum elemento text que corresponda aos idiomas da interface do usurio do sistema, o instalador do aplicativo do AIR usa o primeiro valor name definido no arquivo do descritor do aplicativo.
241
Elementos pai:
title
Adobe AIR 1.0 e posterior - Opcional Especifica o ttulo exibido na barra de ttulo da janela inicial do aplicativo. Um ttulo exibido apenas se o elemento systemChrome estiver definido para standard. Elemento pai:initialWindow na pgina 228 Elementos filho: nenhum Contedo Uma sequncia de caracteres que contm o ttulo da janela. Exemplo
<title>Example Window Title</title>
transparent
Adobe AIR 1.0 e posterior - Opcional Especifica se a janela inicial do aplicativo alfa mesclada com o desktop. Uma janela com transparncia ativada pode ser desenhada mais lentamente e exigir mais memria. A configurao de transparente no pode ser alterada em runtime. Importante: Voc pode definir apenas transparent como true quando systemChrome for none. Elemento pai:initialWindow na pgina 228 Elementos filho: nenhum Contedo
true ou false (padro)
Exemplo
<transparent>true</transparent>
242
verso
Adobe AIR 1.0 a 2.0 obrigatrio; no permitido em AIR 2.5 e posterior Especifica as informaes de verso para o aplicativo. A sequncia de caracteres da verso um designador definido pelo aplicativo. O AIR no interpreta de maneira nenhuma a string de verso. Portanto, no se supe que a verso 3.0 mais atual que a verso 2.0. Exemplos: "1.0", ".4", "0.5", "4.9", "1.3.4a". Em AIR 2.5 e posterior, o elemento version substitudo pelos elementos versionNumber e versionLabel. Elemento pai:aplicativo na pgina 211 Elementos filho: nenhum Contedo Uma sequncia de caracteres que contm uma verso do aplicativo. Exemplo
<version>0.1 Alpha</version>
versionLabel
Adobe AIR 2.5 e posterior - opcional Especifica uma sequncia de caracteres da verso legvel por pessoas. O valor do rtulo da verso exibido em dilogos de instalao em vez de o valor do elemento versionNumber. Se versionLabel no for usado, o versionNumber usado para ambos. Elemento pai:aplicativo na pgina 211 Elementos filho: nenhum Contedo Uma sequncia de caracteres que contm o texto da verso exibida publicamente. Exemplo
<versionLabel>0.9 Beta</versionlabel>
versionNumber
Adobe AIR 2.5 e posterior - obrigatrio O nmero da verso do aplicativo. Elemento pai:aplicativo na pgina 211 Elementos filho: nenhum Contedo O nmero da verso pode conter uma sequncia de at trs nmeros inteiros separados por pontos. Cada inteiro deve ser um nmero entre 0 e 999 (inclusive).
243
Exemplos
<versionNumber>1.0.657</versionNumber> <versionNumber>10</versionNumber> <versionNumber>0.01</versionNumber>
visible
Adobe AIR 1.0 e posterior - Opcional Especifica se a janela inicial do aplicativo fica visvel assim que criada. Janelas do AIR, incluindo a janela inicial, so criadas em estado invisvel por padro. Voc pode exibir a janela chamando o mtodo activate() do objeto NativeWindow ou definindo a propriedade visible como true. Voc pode querer deixar a janela principal oculta inicialmente, para que alteraes na posio da janela, no tamanho da janela e o layout de seu contedo no sejam exibidos. O componente mx:WindowedApplication do Flex exibe e ativa de maneira automtica a janela imediatamente antes que o evento applicationComplete seja despachado, a menos que o atributo visible seja definido como false na definio MXML. Nos dispositivos em perfis mveis, que no so compatveis com janelas, a configurao visvel ignorada. Elemento pai:initialWindow na pgina 228 Elementos filho: nenhum Contedo
true ou false (padro)
Exemplo
<visible>true</visible>
width
Adobe AIR 1.0 e posterior - Opcional A largura inicial da janela principal do aplicativo. Se voc no definir uma largura, esta determinada pelas configuraes no arquivo SWF raiz ou, no caso de um aplicativo do AIR baseado em HTML, pelo sistema operacional. A largura mxima de uma janela muda de 2048 para 4096 pixels no AIR 2. Elemento pai:initialWindow na pgina 228 Elementos filho: nenhum Contedo Um nmero inteiro positivo com um valor mximo de 4095. Exemplo
<width>1024</width>
244
x
Adobe AIR 1.0 e posterior - Opcional A posio horizontal da janela inicial do aplicativo. Na maioria dos casos, melhor deixar o sistema operacional determinar a posio inicial da janela em vez de atribuir um valor fixo. A origem do sistema de coordenadas da tela (0,0) o canto superior esquerdo da tela principal do desktop (conforme determinado pelo sistema operacional). Elemento pai:initialWindow na pgina 228 Elementos filho: nenhum Contedo Um valor inteiro. Exemplo
<x>120</x>
y
Adobe AIR 1.0 e posterior - Opcional A posio vertical da janela inicial do aplicativo. Na maioria dos casos, melhor deixar o sistema operacional determinar a posio inicial da janela em vez de atribuir um valor fixo. A origem do sistema de coordenadas da tela (0,0) o canto superior esquerdo da tela principal do desktop (conforme determinado pelo sistema operacional). Elemento pai:initialWindow na pgina 228 Elementos filho: nenhum Contedo Um valor inteiro. Exemplo
<y>250</y>
245
246
Desktop estendido O perfil desktop estendido define um conjunto de capacidades para os aplicativos AIR que compem o pacote e so instaladas com um programa de instalao nativo. Estes programas de instalao nativos so arquivos EXE no Windows, arquivos DMG no Mac OS, e arquivos DEB ou RPM no Linux. Os aplicativos com o perfil desktop estendido tm capacidades adicionais que no esto disponveis nos aplicativos com o perfil desktop. Para obter mais informaes, consulte Compactao de um instalador desktop nativo na pgina 55. Dispositivo mvel O perfil dispositivo mvel define um conjunto de capacidades para aplicativos que so instalados
em dispositivos mveis, tais como telefones celulares e tablets. Esses aplicativos so instalados e executados em plataformas mveis suportadas, incluindo Android, Blackberry Tablet OS e iOS.
Dispositivo mvel estendido O perfil dispositivo mvel define um extenso conjunto de capacidades para aplicativos
que so instalados em dispositivos mveis. Atualmente, no existem dispositivos que suportam este perfil.
Quando este elemento definido, o aplicativo pode ser empacotado nos perfis que voc listar. Use os seguintes valores:
desktop O perfil desktop extendedDesktop O perfil desktop estendido mobileDevice O perfil dispositivo mvel
O elemento supportedProfiles opcional. Quando voc no incluir este elemento no arquivo e descrio do aplicativo, o aplicativo poder ser compilado e implementado para qualquer perfil. Para especificar vrios perfis no elemento supportedProfiles, separe cada um com um caractere de espao como no exemplo a seguir:
<supportedProfiles>desktop extendedDesktop</supportedProfiles>
247
Classe ou recurso
desktop
mobileDevice
Acelermetro (Accelerometer.isSupported)
No
Verificar No No
Acessibilidade (Capabilities.hasAccessibility) Sim Eliminao de eco acstico (microfonia) (Microphone.getEnhancedMicrophone()) ActionScript 2 Matriz CacheAsBitmap Cmera (Camera.isSupported) CameraRoll CameraUI (CameraUI.isSupported) Conjuntos de runtime cativo ContextMenu (ContextMenu.isSupported) DatagramSocket (DatagramSocket.isSupported) DockIcon (NativeApplication.supportsDockIcon) Drag-and-drop (NativeDragManager.isSupported) EncyptedLocalStore (EncyptedLocalStore.isSupported) Acesso Flash (DRMManager.isSupported) GameInput (GameInput.isSupported) Geolocalizao (Geolocation.isSupported) HTMLLoader (HTMLLoader.isSupported) IME (IME.isSupported) LocalConnection (LocalConnection.isSupported) Microfone (Microphone.isSupported) udio multicanal (Capabilities.hasMultiChannelAudio()) Extenses Nativas NativeMenu (NativeMenu.isSupported) NativeProcess (NativeProcess.isSupported) Sim
Verificar
Verificar
No
Sim
Sim
Verificar
Sim
Sim
Sim
No No Verificar No Verificar No
Sim No
Sim No
Verificar No
No Sim No
Sim No No No Verificar No No No
NativeWindow (NativeWindow.isSupported) Sim NetworkInfo (NetworkInfo.isSupported) Abra os arquivos com o aplicativo padro PrintJob (PrintJob.isSupported SecureSocket (SecureSocket.isSupported) Sim Limitado Sim Sim
248
Classe ou recurso
desktop
mobileDevice
ServerSocket (ServerSocket.isSupported) Shader Stage3D (Stage.stage3Ds.length) Orientao do Palco (Stage.supportsOrientationChange) StageVideo StageWebView (StageWebView.isSupported) Iniciar aplicativo no login (NativeApplication.supportsStartAtLogin) StorageVolumeInfo (StorageVolumeInfo.isSupported) Modo ocioso do sistema
No Sim
No Sim
Verificar Sim
Sim
Sim
No
Sim
Sim
No
No
No Verificar
Sim No
SystemTrayIcon Verificar (NativeApplication.supportsSystemTrayIcon ) Entrada da Text Layout Framework Updater (Updater.isSupported) XMLSignatureValidator (XMLSignatureValidator.isSupported) Sim Sim Sim
Sim No Sim
No No No
Verificar O recurso compatvel com alguns, mas no com todos os dispositivos no perfil. Voc deve verificar
no runtime se o recurso compatvel antes de us-lo.
Limitado O recurso compatvel, mas tem limitaes significativas. Consulte a documentao pertinente para
mais informaes.
No O recurso no compatvel com o perfil. Sim O recurso compatvel com o perfil. Observe que faz falta do hardware necessrio para um recurso nos
dispositivos de computao individual. Por exemplo, nem todos os celulares tm cmeras.
249
Ele pode instalar um aplicativo do AIR. Consulte Instalao de um aplicativo do AIR do navegador na pgina 255. Ele pode verificar se um aplicativo do AIR especfico est instalado. Consulte Verificar por uma pgina da Web se
um aplicativo do AIR est instalado na pgina 254.
Ele pode verificar se o runtime est instalado. Consulte Verificar se o runtime est instalado na pgina 253. Ele pode iniciar um aplicativo do AIR instalado no sistema do usurio. Consulte Inicializao de um aplicativo do
AIR instalado do navegador na pgina 256. Esses recursos so todos fornecidos ao chamar as APIs em um arquivo SWF hospedado em adobe.com: air.swf. Voc pode personalizar o arquivo badge.swf e chamar as APIs air.swf a partir do seu prprio arquivo SWF. Alm disso, um arquivo SWF em execuo no navegador pode se comunicar com um aplicativo do AIR em execuo usando a classe LocalConnection. Para mais informaes, consulte Comunicao com outras instncias do Flash Player e AIR (para desenvolvedores em ActionScript) ou Communicating with other Flash Player and AIR instances (para desenvolvedores em HTML). Importante: Os recursos descritos nesta seo (e as APIs no arquivo air.swf) exigem que o usurio final tenha a atualizao 3 do Adobe Flash Player 9 (ou superior) instalada no navegador da Web no Windows ou Mac OS. No Linux, o recurso de instalao contnua requer o Flash Player 10 (verso 10,0,12,36 ou posterior). Voc pode escrever cdigos para verificar a verso instalada do Flash Player e fornecer uma interface alternativa ao usurio se a verso exigida do Flash Player no for instalada. Por exemplo, se uma verso mais antiga do Flash Player estiver instalada, voc poderia fornecer um link para a verso de download do arquivo AIR (em vez de usar o arquivo badge.swf ou a API do air.swf para instalar um aplicativo).
250
Descrio O nome do aplicativo, exibido pelo arquivo SWF quando o runtime no est instalado. (Obrigatrio). A URL do arquivo AIR a ser obtido por download. Voc deve usar uma URL absoluta, e no relativa. (Obrigatrio). Para a verso 1.0 do runtime, defina isso para 1.0. A URL da imagem (opcional) para exibir no crach. A cor do boto de download (especificada como um valor hexadecimal, como FFCC00). A cor da mensagem de texto exibida abaixo do boto quando o runtime no est instalado (especificada como um valor hexadecimal, como FFCC00).
4 O tamanho mnimo do arquivo badge.swf de 217 pixels de largura por 180 pixels de altura. Ajuste os valores dos
s suas necessidades. Nota: Para a tag embed de HTML que carrega o arquivo badge.swf, no defina o atributo wmode; deixe-o definido como a configurao padro ("window"). Outras configuraes wmode vo impedir a instalao em alguns sistemas. Alm disso, usar outras configuraes wmode produzem um erro: Erro #2044: ErrorEvent no tratado:. text=Error #2074: O palco est muito pequeno para baixar a iu. Voc tambm pode editar e recompilar o arquivo badge.swf. Para obter detalhes, consulte Modifique o arquivo badge.swf na pgina 251.
Instale o aplicativo do AIR a partir de um link de instalao direta em uma pgina da Web
Depois de ter adicionado o link de instalao direta a uma pgina, o usurio pode instalar o aplicativo do AIR clicando no link no arquivo SWF.
1 Navegue at a pgina HTML em um navegador da Web que tenha Flash Player (verso 9 atualizao 3 ou posterior
Se tiver instalado o runtime, passe para a prxima etapa. Se no tiver instalado o runtime, uma caixa de dilogo ser exibida perguntando se voc gostaria de instal-lo.
Instale o runtime (consulte Instalao do Adobe AIR na pgina 3) e continue com a etapa seguinte.
3 Na janela de instalao, deixe as configuraes padro selecionadas e clique em Continuar.
Instala o aplicativo em c:\Arquivos de Programas\ Cria um atalho na rea de trabalho para o aplicativo Cria um atalho no menu Iniciar Adiciona uma entrada para o aplicativo no Painel de Controle Adicionar ou Remover Programas
251
No Mac OS, o instalador adiciona o aplicativo ao diretrio Aplicativos (por exemplo, no diretrio /Aplicativos no Mac OS). Em um computador Linux, o AIR faz automaticamente o seguinte:
Instala o aplicativo na /sada. Cria um atalho na rea de trabalho para o aplicativo Cria um atalho no menu Iniciar Adicione uma entrada para o aplicativo no gerenciador de pacotes do sistema
4 Selecione as opes desejadas e clique no boto Instalar. 5 Quando a instalao estiver concluda, clique em Concluir.
AIRBadge.as
Voc pode utilizar o Flash Professional para projetar novamente a interface visual do arquivo badge.fla. A funo de construtor AIRBadge(), definida na classe AIRBadge, carrega o arquivo air.swf hospedado em http://airdownload.adobe.com/air/browserapi/air.swf. O arquivo air.swf inclui cdigo para usar o recurso de instalao direta. O mtodo onInit() (na classe AIRBadge) invocado quando o arquivo air.swf carregado com sucesso:
252
private function onInit(e:Event):void { _air = e.target.content; switch (_air.getStatus()) { case "installed" : root.statusMessage.text = ""; break; case "available" : if (_appName && _appName.length > 0) { root.statusMessage.htmlText = "<p align='center'><font color='#" + _messageColor + "'>In order to run " + _appName + ", this installer will also set up Adobe AIR.</font></p>"; } else { root.statusMessage.htmlText = "<p align='center'><font color='#" + _messageColor + "'>In order to run this application, " + "this installer will also set up Adobe AIR.</font></p>"; } break; case "unavailable" : root.statusMessage.htmlText = "<p align='center'><font color='#" + _messageColor + "'>Adobe AIR is not available for your system.</font></p>"; root.buttonBg_mc.enabled = false; break; } }
O cdigo define a varivel global _air para a classe principal do arquivo air.swf carregado. Essa classe inclui os seguintes mtodos pblicos, que o arquivo badge.swf acessa para chamar a funcionalidade de instalao direta:
Mtodo
getStatus()
Descrio Determina se o runtime instalado (ou pode ser instalado) no computador. Para obter detalhes, consulte Verificar se o runtime est instalado na pgina 253.
runtimeVersion Uma string que indica a verso do runtime (como "1.0.M6") exigida pelo aplicativo
a ser instalado.
installApplication() Instala o aplicativo especificado na mquina do usurio. Para obter detalhes, consulte Instalao de um
url Uma sequncia de caracteres que define a URL. Voc deve usar um caminho de URL absoluta, e no
relativa.
runtimeVersion Uma string que indica a verso do runtime (como "2.5.") exigida pelo aplicativo a
ser instalado.
arguments Argumentos a serem transmitidos ao aplicativo se ele for iniciado na instalao. O aplicativo iniciado na instalao se o elemento allowBrowserInvocation definido como true no arquivo do
descritor do aplicativo. (Para obter mais informaes sobre o arquivo do descritor do aplicativo, consulte Arquivos descritores do aplicativo do AIR na pgina 206.) Se o aplicativo for iniciado como resultado de uma instalao direta do navegador (com o usurio optando por iniciar na instalao), o objeto NativeApplication do aplicativo despacha um objeto BrowserInvokeEvent apenas se argumentos forem transmitidos. Considere as implicaes de segurana de dados que voc transmite ao aplicativo. Para obter detalhes, consulte Inicializao de um aplicativo do AIR instalado do navegador na pgina 256.
As configuraes para url e runtimeVersion so transmitidas no arquivo SWF pelas configuraes do FlashVars na pgina HTML do continer.
253
Se o aplicativo for iniciado automaticamente na instalao, voc poder usar a comunicao LocalConnection para ter o aplicativo instalado. Entre em contato com o arquivo badge.swf na invocao. Para mais informaes, consulte Comunicao com outras instncias do Flash Player e AIR (para desenvolvedores em ActionScript) ou Communicating with other Flash Player and AIR instances (para desenvolvedores em HTML). Voc tambm pode chamar o mtodo getApplicationVersion() do arquivo air.swf para verificar se um aplicativo est instalado. Voc pode chamar esse mtodo antes do processo de instalao do aplicativo ou aps a instalao ser iniciada. Para obter detalhes, consulte Verificar por uma pgina da Web se um aplicativo do AIR est instalado na pgina 254.
Depois que o arquivo air.swf estiver carregado (quando o objeto Loader do objeto contentLoaderInfo enviar o evento init), voc pode chamar APIs air.swf, descritas nas sees que seguem. Nota: O arquivo badge.swf, fornecido com o SDK do Flex e do AIR, carrega automaticamente o arquivo air.swf. Consulte Usando o arquivo badge.swf para instalar um aplicativo do AIR na pgina 249. As instrues desta seo se aplicam criao do seu prprio arquivo do SWF que carrega o arquivo air.swf.
254
O mtodo getStatus() retorna um dos seguintes valores de sequncias de caracteres, com base no status do runtime no computador:
Valor de string
"available" "unavailable" "installed"
Descrio O runtime pode ser instalado nesse computador, mas no est instalado no momento. O runtime no pode ser instalado neste computador. O runtime est instalado nesse computador.
O mtodo getStatus() lana um erro se a verso necessria do Flash Player (verso 9 atualizao 3 ou posterior no Windows e Mac OS ou verso 10 no Linux) no estiver instalada no navegador.
255
Parmetros
appID pubID
Descrio O ID desse aplicativo. Para obter detalhes, consulte id na pgina 226. O ID do editor do aplicativo. Para obter detalhes, consulte publisherID na pgina 235. Se o aplicativo e em questo no possuir um ID do editor, defina o parmtero pubID para uma sequncia de caracteres vazia (""). Uma funo de retorno de chamada para servir como a funo do manipulador. O mtodo getApplicationVersion() opera de modo assncrono e ao detectar essa verso instalada (ou a falta de uma verso instalada), esse mtodo de retorno de chamada invocado. A definio do mtodo de retorno de chamada deve incluir um parmetro, uma sequncia de caracteres, definida para a sequncia de caracteres da verso do aplicativo instalado. Se o aplicativo no for instalado, um valor de nulo ser transmitido funo, como ilustrado no exemplo de cdigo anterior.
retorno de chamada
O mtodo getApplicationVersion() lana um erro se a verso necessria do Flash Player (verso 9 atualizao 3 ou posterior no Windows e Mac OS ou verso 10 no Linux) no estiver instalada no navegador. Nota: A partir do AIR 1.5.3, o ID do editor no mais utilizado. Os IDs de publicao no so mais atribudos a nenhum aplicativo automaticamente. Para manter a compatibilidade com verses anteriores, os aplicativos podem a continuar a especificar o ID do editor.
O mtodo installApplication() instala o aplicativo especificado na mquina do usurio. Esse mtodo possui os seguintes parmetros:
Parmetro
url
Descrio Uma sequncia de caracteres que define a URL do arquivo AIR a instalar. Voc deve usar um caminho de URL absoluta, e no relativa. Uma sequncia de caracteres que indica a verso do runtime (como "1.0") exigida pelo aplicativo a ser instalado. Uma matriz de argumentos a serem transmitidos ao aplicativo se ele for iniciado na instalao. Somente caracteres alfanumricos so reconhecidos nos argumentos. Se for necessrio passar outros valores, considere o uso de um esquema de codificao. O aplicativo iniciado na instalao se o elemento allowBrowserInvocation definido como true no arquivo do descritor do aplicativo. (Para obter mais informaes sobre o arquivo do descritor do aplicativo, consulte Arquivos descritores do aplicativo do AIR na pgina 206.) Se o aplicativo for iniciado como resultado de uma instalao direta do navegador (com o usurio optando por iniciar na instalao), o objeto NativeApplication do aplicativo despacha um objeto BrowserInvokeEvent apenas se argumentos tiverem sido transmitidos. Para obter detalhes, consulte Inicializao de um aplicativo do AIR instalado do navegador na pgina 256.
runtimeVersion
argumentos
256
O mtodo installApplication() pode operar apenas quando chamado no manipulador de eventos para um evento do usurio, como um clique do mouse. O mtodo installApplication() lana um erro se a verso necessria do Flash Player (verso 9 atualizao 3 ou posterior no Windows e Mac OS ou verso 10 no Linux) no estiver instalada no navegador. No Mac OS, para instalar uma verso atualizada de um aplicativo, o usurio precisa ter privilgios adequados do sistema para instalar no diretrio do aplicativo (e privilgios administrativos se o aplicativo atualizar o runtime). No Windows, o usurio deve ter privilgios administrativos. Voc tambm pode chamar o mtodo getApplicationVersion() do arquivo air.swf para verificar se um aplicativo j est instalado. Voc pode chamar esse mtodo antes que o processo de instalao do aplicativo seja iniciado ou aps a instalao ser iniciada. Para obter detalhes, consulte Verificar por uma pgina da Web se um aplicativo do AIR est instalado na pgina 254. Depois que o aplicativo estiver em execuo, ele pode se comunicar com o contedo do SWF no navegador usando a classe LocalConnection. Para mais informaes, consulte Comunicao com outras instncias do Flash Player e AIR (para desenvolvedores em ActionScript) ou Communicating with other Flash Player and AIR instances (para desenvolvedores em HTML).
Para obter mais informaes sobre o arquivo do descritor do aplicativo, consulte Arquivos descritores do aplicativo do AIR na pgina 206. Um arquivo SWF no navegador pode iniciar um aplicativo do AIR chamando o mtodo launchApplication() no arquivo air.swf carregado de http://airdownload.adobe.com/air/browserapi/air.swf. Para obter detalhes, consulte Carregar o arquivo air.swf na pgina 253. Depois que o arquivo air.swf for carregado, o arquivo SWF poder chamar o mtodo launchApplication() do arquivo air.swf como no cdigo a seguir:
var appID:String = "com.example.air.myTestApplication"; var pubID:String = "02D88EEED35F84C264A183921344EEA353A629FD.1"; var arguments:Array = ["launchFromBrowser"]; // Optional airSWF.launchApplication(appID, pubID, arguments);
O mtodo launchApplication() definido no nvel superior do arquivo air.swf (carregado no domnio do aplicativo do arquivo SWF da interface do usurio). Chamar esse mtodo faz com que o AIR inicie o aplicativo especificado (se ele for instalado e a invocao do navegador for permitida, pela configurao allowBrowserInvocation no arquivo do descritor do aplicativo). O mtodo tem os seguintes parmetros:
257
Parmetro
appID pubID
Descrio O ID do aplicativo a ser iniciado. Para obter detalhes, consulte id na pgina 226. O ID do editor do aplicativo a ser iniciado. Para obter detalhes, consulte publisherID na pgina 235. Se o aplicativo e em questo no possuir um ID do editor, defina o parmtero pubID para uma sequncia de caracteres vazia (""). Uma matriz de argumentos para transmitir ao aplicativo. O objeto NativeApplication do aplicativo despacha um evento BrowserInvokeEvent que possui uma propriedade de argumentos definida para essa matriz. Somente caracteres alfanumricos so reconhecidos nos argumentos. Se for necessrio passar outros valores, considere o uso de um esquema de codificao.
argumentos
O mtodo launchApplication() pode operar apenas quando chamado no manipulador de eventos para um evento do usurio, como um clique do mouse. O mtodo launchApplication() lana um erro se a verso necessria do Flash Player (verso 9 atualizao 3 ou posterior no Windows e Mac OS ou verso 10 no Linux) no estiver instalada no navegador. Se o elemento allowBrowserInvocation for definido como false no arquivo do descritor do aplicativo, chamar o mtodo launchApplication() no ter efeito. Antes de apresentar a interface do usurio para iniciar o aplicativo, voc pode desejar chamar o mtodo
getApplicationVersion() no arquivo air.swf. Para obter detalhes, consulte Verificar por uma pgina da Web se
um aplicativo do AIR est instalado na pgina 254. Quando o aplicativo invocado pelo recurso de invocao do navegador, o objeto NativeApplication do aplicativo despacha um objeto BrowserInvokeEvent. Para obter detalhes, consulte Invocao de um aplicativo do AIR do navegador (para desenvolvedores em ActionScript) ou Invoking an AIR application from the browser (para desenvolvedores em HTML). Se voc usa o recurso de invocao do navegador, certifique-se de considerar implicaes de segurana. Estas implicaes so descrita em Invocao de um aplicativo do AIR do navegador (para desenvolvedores em ActionScript) e Invoking an AIR application from the browser (para desenvolvedores em HTML). Depois que o aplicativo estiver em execuo, ele pode se comunicar com o contedo do SWF no navegador usando a classe LocalConnection. Para mais informaes, consulte Comunicao com outras instncias do Flash Player e AIR (para desenvolvedores em ActionScript) ou Communicating with other Flash Player and AIR instances (para desenvolvedores em HTML). Nota: A partir do AIR 1.5.3, o ID do editor no mais utilizado. Os IDs de publicao no so mais atribudos a nenhum aplicativo automaticamente. Para manter a compatibilidade com verses anteriores, os aplicativos podem a continuar a especificar o ID do editor.
258
259
Exemplo do JavaScript:
var updater = new air.Updater(); var airFile = air.File.desktopDirectory.resolvePath("Sample_App_v2.air"); var version = "2.01"; updater.update(airFile, version);
Antes de um aplicativo usar a classe Updater, o usurio ou o aplicativo deve baixar a verso atualizada do arquivo AIR no computador. Para obter mais informaes, consulte Download de um arquivo AIR no computador do usurio na pgina 261.
260
Antes do AIR 2.5, a sequncia de caracteres da verso pode ser de qualquer formato. Por exemplo, pode ser "2.01" ou "verso 2". No AIR 2.5 ou posterior, a sequncia de caracteres da verso deve ser uma sequncia de at trs nmeros de trs dgitos separados por pontos. Por exemplo, .0, 1.0 e 67.89.999 so todos os nmeros de verso vlidos. Voc deve validar a sequncia da verso de atualizao antes de atualizar o aplicativo. Se um aplicativo do Adobe AIR baixa um arquivo AIR pela web, recomendvel ter um mecanismo atravs do qual o servio da web possa notificar o aplicativo sobre a verso que est sendo baixada. O aplicativo poder ento usar essa string como o parmetro version do mtodo update(). Se o arquivo AIR for obtido por algum outro meio, no qual a verso do arquivo desconhecida, o aplicativo do AIR poder examin-lo para determinar a informao de verso. (Um arquivo AIR consiste em um arquivo compactado no formato ZIP, e o arquivo de descrio do aplicativo o segundo registro no arquivo.) Para obter detalhes sobre o arquivo do descritor do aplicativo, consulte Arquivos descritores do aplicativo do AIR na pgina 206.
Carregue cada aplicativo atualizado para uma URL de implementao separada. Carregue o arquivo XML descritor e o certificado mais recente para a atualizao para a mesma URL. Marque o aplicativo atualizado com o certificado mais recente. Aplique uma assinatura de migrao para o aplicativo atualizado com o certificado usado para assinar a verso
anterior localizada em uma URL diferente.
261
Essa interface sempre usada quando o usurio instala uma verso de um aplicativo em uma mquina pela primeira vez. No entanto, voc pode definir sua prpria interface para us-la em ocorrncias subsequentes. Se seu aplicativo definir uma interface de atualizao personalizada, especifique um elemento customUpdateUI no arquivo de descritor do aplicativo para o aplicativo instalado no momento:
<customUpdateUI>true</customUpdateUI>
Quando o aplicativo instalado e o usurio abre um arquivo AIR com um ID de aplicativo e um ID de editor que correspondem aos do aplicativo instalado, o runtime abre o aplicativo em vez no instalador de aplicativo padro do AIR. Para obter mais informaes, consulte customUpdateUI na pgina 217. O aplicativo pode decidir, quando executado (quando o objeto NativeApplication.nativeApplication despacha um evento load), se o aplicativo deve ser atualizado (usando a classe Updater). Se ele optar pela atualizao, poder apresentar ao usurio sua prpria interface de instalao (que diferente da interface padro que est sendo executada).
262
var urlString:String = "http://example.com/air/updates/Sample_App_v2.air"; var urlReq:URLRequest = new URLRequest(urlString); var urlStream:URLStream = new URLStream(); var fileData:ByteArray = new ByteArray(); urlStream.addEventListener(Event.COMPLETE, loaded); urlStream.load(urlReq); function loaded(event:Event):void { urlStream.readBytes(fileData, 0, urlStream.bytesAvailable); writeAirFile(); } function writeAirFile():void { var file:File = File.applicationStorageDirectory.resolvePath("My App v2.air"); var fileStream:FileStream = new FileStream(); fileStream.open(file, FileMode.WRITE); fileStream.writeBytes(fileData, 0, fileData.length); fileStream.close(); trace("The AIR file is written."); }
Exemplo do JavaScript:
var urlString = "http://example.com/air/updates/Sample_App_v2.air"; var urlReq = new air.URLRequest(urlString); var urlStream = new air.URLStream(); var fileData = new air.ByteArray(); urlStream.addEventListener(air.Event.COMPLETE, loaded); urlStream.load(urlReq); function loaded(event) { urlStream.readBytes(fileData, 0, urlStream.bytesAvailable); writeAirFile(); } function writeAirFile() { var file = air.File.desktopDirectory.resolvePath("My App v2.air"); var fileStream = new air.FileStream(); fileStream.open(file, air.FileMode.WRITE); fileStream.writeBytes(fileData, 0, fileData.length); fileStream.close(); trace("The AIR file is written."); }
Fluxo de trabalho de leitura e gravao de arquivos (para desenvolvedores em ActionScript) Workflow for reading and writing files (para desenvolvedores em HTML)
263
264
} else { saveFile(); } log.text += "Welcome to the application."; } private function firstRun():void { log.text = "Thank you for installing the application. \n" + "This is the first time you have run it."; saveFile(); } private function saveFile():void { var stream:FileStream = new FileStream(); stream.open(file, FileMode.WRITE); stream.writeUTFBytes(currentVersion); stream.close(); } ]]> </mx:Script> <mx:TextArea ID="log" width="100%" height="100%" /> </mx:WindowedApplication>
265
} function firstRun() { window.document.getElementById("log").innerHTML = "Thank you for installing the application. \n" + "This is the first time you have run it."; saveFile(); } function saveFile() { var stream = new air.FileStream(); stream.open(file, air.FileMode.WRITE); stream.writeUTFBytes(currentVersion); stream.close(); } </script> </head> <body onLoad="system extension()"> <textarea ID="log" rows="100%" cols="100%" /> </body> </html>
Se o seu aplicativo salva dados localmente (como no diretrio de armazenamento do aplicativo), convm verificar se existem dados j salvos (de verses anteriores) aps a primeira execuo.
Verifique periodicamente se h atualizaes em um determinado intervalo ou quando o usurio solicita Baixe arquivos do AIR (atualizaes) de uma fonte da Web Alerte o usurio na primeira execuo da verso recm-instalada Confirme que o usurio deseja procurar atualizaes Exiba as informaes sobre a nova verso de atualizao para o usurio Exiba o andamento do download e as informaes de erro para o usurio
A estrutura de atualizao do AIR fornece um exemplo de interface de usurio para seu aplicativo. Ela fornece ao usurio informaes bsicas e opes de configurao para atualizaes do aplicativo. Seu aplicativo tambm pode definir a interface de usurio personalizada para uso com a estrutura de atualizao. A estrutura de atualizao do AIR permite armazenar informaes sobre a verso de atualizao de um aplicativo do AIR em arquivos de configurao XML simples. Na maioria dos aplicativos, a definio desses arquivos de configurao para incluir cdigo bsico fornecem uma boa funcionalidade de atualizao para o usurio final. Mesmo sem usar a estrutura de atualizao, o Adobe AIR inclui uma classe Updater que os aplicativos do AIR podem usar para atualizar para novas verses. A classe Updater permite que um aplicativo seja atualizado para uma verso contida em um arquivo do AIR no computador do usurio. No entanto, o gerenciamento de atualizao pode envolver mais que simplesmente atualizar o aplicativo com base em um arquivo AIR armazenado localmente.
266
applicationupdater.swc Define a funcionalidade bsica da biblioteca de atualizao para ser usada no JavaScript.
Esta verso no contm nenhuma interface do usurio.
Configurao do ambiente de desenvolvimento em Flex na pgina 266 Incluso de arquivos de estrutura em um aplicativo do AIR baseado em HTML na pgina 266 Exemplo bsico: Uso da verso ApplicationUpdaterUI na pgina 267
No exemplo a seguir, o compilador carrega o arquivo ApplicationUpdater_UI.swc no subdiretrio lib do diretrio Flex SDK:
amxmlc -library-path+=lib/ApplicationUpdater_UI.swc -- myApp.mxml
Ao desenvolver usando o construtor Flash Builder, adicione o arquivo SWC guia Caminho da biblioteca das configuraes do caminho de criao de Flex na caixa de dilogo Propriedades. Assegure-se de copiar os arquivos SWC no diretrio que voc usar como referncia no compilador amxmlc (usando o Flex SDK) ou Flash Builder.
267
Voc pode adicionar esse cdigo a uma funo de inicializao executada quando o aplicativo carregado.
3 Crie um arquivo de texto updateConfig.xml e adicione o seguinte a ele:
<?xml version="1.0" encoding="utf-8"?> <configuration xmlns="http://ns.adobe.com/air/framework/update/configuration/1.0"> <url>http://example.com/updates/update.xml</url> <delay>1</delay> </configuration>
Edite o elemento URL do arquivo updateConfig.xml para que corresponda localizao eventual do arquivo de descritor de atualizao do seu servidor da Web (veja o prximo procedimento). O delay o nmero de dias que o aplicativo aguarda entre as verificaes de atualizaes.
4 Adicione o arquivo updateConfig.xml ao diretrio do projeto do seu aplicativo do AIR. 5 Faa com que o objeto updater referencie o arquivo updateConfig.xml e chame o mtodo initialize() do objeto.
6 Crie uma segunda verso do aplicativo do AIR que tenha uma verso diferente do primeiro aplicativo. (A verso
especificada no arquivo de descritor do aplicativo, no elemento version.) Em seguida, adicione a verso de atualizao do aplicativo do AIR ao servidor da Web:
1 Coloque a verso de atualizao do arquivo AIR no servidor da Web. 2 Crie um arquivo de texto updateDescriptor.2.5.xml e adicione o seguinte contedo a ele:
268
<?xml version="1.0" encoding="utf-8"?> <update xmlns="http://ns.adobe.com/air/framework/update/description/2.5"> <versionNumber>1.1</versionNumber> <url>http://example.com/updates/sample_1.1.air</url> <description>This is the latest version of the Sample application.</description> </update>
Edite versionNumber, URL e description do arquivo updateDescriptor.xml para que corresponda ao seu arquivo do AIR. Este formato de descritor de atualizao usado por aplicativos que utilizam a estrutura de atualizao includa com o AIR 2.5 SDK (e posterior).
3 Crie um arquivo de texto updateDescriptor.1.0.xml e adicione o seguinte contedo a ele:
<?xml version="1.0" encoding="utf-8"?> <update xmlns="http://ns.adobe.com/air/framework/update/description/1.0"> <version>1.1</version> <url>http://example.com/updates/sample_1.1.air</url> <description>This is the latest version of the Sample application.</description> </update>
Edite version, URL e description do arquivo updateDescriptor.xml para que corresponda ao seu arquivo AIR. Este formato de descritor de atualizao usado por aplicativos que utilizam a estrutura de atualizao includa com o AIR 2 SDK (e anterior). Nota: A criao deste segundo arquivo descritor de atualizao s necessria quando voc oferece suporte para a atualizao para aplicativos criados antes do AIR 2.5.
4 Inclua os arquivos updateDescriptor.2.5.xml e updateDescriptor.1.0.xml no mesmo diretrio do servidor Web que
contm o arquivo AIR de atualizao. Esse um exemplo bsico, mas fornece a funcionalidade de atualizao suficiente para vrios aplicativos. O restante deste documento descreve como usar a estrutura de atualizao para atender melhor suas necessidades. Para obter outro exemplo de uso da estrutura de atualizao, consulte o aplicativo de amostra a seguir no Adobe AIR Developer Center:
269
O exemplo a seguir ilustra como atualizar um aplicativo da verso 1.0 para 2.0. A verso 1.0 utiliza o antigo namespace 2.0. A verso 2.0 utiliza o namespace 2.5 e tem novos recursos implementados usando as APIs do AIR 2.5.
1 Crie uma verso intermediria do aplicativo, verso 1.0.1, baseado na verso 1.0 do aplicativo. a Use a estrutura Application Updater do AIR 2.5 ao criar o aplicativo.
Nota: Use applicationupdater.swc ou applicationupdater_ui.swc para aplicativos AIR com base na tecnologia Flash, e applicationupdater.swf ou applicationupdater_ui.swf para aplicativos AIR com base HTML.
b Crie um arquivo descritor de atualizao para verso 1.0.1 usando o antigo namespace e a verso conforme
demonstrado abaixo:
<?xml version="1.0" encoding="utf-8"?> <update xmlns="http://ns.adobe.com/air/framework/update/description/2.0"> <version>1.0.1</version> <url>http://example.com/updates/sample_1.0.1.air</url> <description>This is the intermediate version.</description> </update>
2 Crie a verso 2.0 do aplicativo que usa o namespace 2.5 e as APIs do AIR 2.5. 3 Crie um descritor de atualizao para atualizar o aplicativo a partir da verso 1.0.1 para a 2.0.
<?xml version="1.0" encoding="utf-8"?> <update xmlns="http://ns.adobe.com/air/framework/update/description/2.5"> <version>2.0</version> <url>http://example.com/updates/sample_2.0.air</url> <description>This is the intermediate version.</description> </update>
Definio dos arquivos de descritor de atualizao a acrscimo do arquivo do AIR ao servidor da Web
Quando voc usa a estrutura de atualizao do AIR, define informaes bsicas sobre a atualizao disponvel em arquivos de descritor de atualizao, armazenados no servidor da Web. Um arquivo de descritor de atualizao um arquivo XML simples. A estrutura de atualizao includa no aplicativo verifica esse arquivo para ver se uma nova verso foi carregada. O formato do arquivo de descritor de atualizao mudou para AIR 2.5. O novo formato usa um namespace diferente. O namespace original http://ns.adobe.com/air/framework/update/description/1.0. O namespace do AIR 2.5 http://ns.adobe.com/air/framework/update/description/2.5. Os aplicativos do AIR criados antes do AIR 2.5 s podem ler a verso do descritor de atualizao 1.0. Os aplicativos do AIR criados que usam a estrutura do atualizador includa no AIR 2.5 ou posterior s podem ler o descritor de atualizao da verso 2.5. Devido a essa incompatibilidade de verso, muitas vezes voc precisa criar dois arquivos de descritor de atualizao. A lgica de atualizao na verses AIR 2.5 de seu aplicativo deve baixar um descritor de atualizao que use o novo formato. As verses anteriores do aplicativo do AIR devem continuar a usar o formato original. Ambos os arquivos devem ser modificados para cada atualizao que voc lanar (at parar de fornecer suporte para as verses criadas antes do AIR 2.5). O arquivo de descritor de atualizao contm os seguintes dados:
versionNumber A nova verso do aplicativo do AR. Use o elemento versionNumber nos descritores de atualizao usados para atualizar os aplicativos do AIR 2.5. O valor deve ser a mesma sequncia de caracteres usada no elemento versionNumber do novo arquivo de descritor do aplicativo do AIR. Se o nmero da verso no arquivo de descritor de atualizao no corresponder ao da verso no arquivo AIR de atualizao, a estrutura de atualizao lanar uma exceo.
270
version A nova verso do aplicativo do AIR. Use o elemento version nos descritores de atualizao usados para atualizar aplicativos criados antes do AIR 2.5. O valor deve ser a mesma sequncia de caracteres usada no elemento version do novo arquivo de descritor de aplicativo do AIR. Se a verso do arquivo de descritor de atualizao no corresponder verso do arquivo AIR, a estrutura de atualizao lanar uma exceo. versionLabel A sequncia de caracteres da verso legvel destinada a ser exibida aos usurios. A versionLabel opcional, mas s pode ser especificada em arquivos de descritor de atualizao de verso 2.5. Use-a se utilizar uma versionLabel no descritor do aplicativo e configure-a para o mesmo valor. url O local do arquivo AIR de atualizao. Esse arquivo contm a verso de atualizao do aplicativo do AIR. description Detalhes relativos nova verso. Essas informaes podem ser exibidas para o usurio durante o processo de atualizao.
Os elementos version e url so obrigatrios. O elemento description opcional. Este um exemplo de arquivo de descritor de atualizao da verso 2.5:
<?xml version="1.0" encoding="utf-8"?> <update xmlns="http://ns.adobe.com/air/framework/update/description/2.5"> <versionNumber>1.1.1</versionNumber> <url>http://example.com/updates/sample_1.1.1.air</url> <description>This is the latest version of the Sample application.</description> </update>
Se desejar definir a tag description usando vrios idiomas, use vrios elementos text que definam o atributo lang:
<?xml version="1.0" encoding="utf-8"?> <update xmlns="http://ns.adobe.com/air/framework/update/description/2.5"> <versionNumber>1.1.1</versionNumber> <url>http://example.com/updates/sample_1.1.1.air</url> <description> <text xml:lang="en">English description</text> <text xml:lang="fr">French description</text> <text xml:lang="ro">Romanian description</text> </description> </update>
Coloque o arquivo de descritor de atualizao no servidor da Web, juntamente com o arquivo de atualizao do AIR. O diretrio modelo includo com o descritor de atualizao inclui exemplos dos arquivos descritores de atualizao. Eles incluem verses com um idioma ou vrios idiomas.
271
Exemplo do JavaScript:
var appUpdater = new runtime.air.update.ApplicationUpdater();
O cdigo anterior usa a classe ApplicationUpdater (que no fornece interface de usurio). Se voc deseja usar a classe ApplicationUpdaterUI (que fornece uma interface de usurio), use o seguinte. Exemplo do ActionScript:
var appUpdater:ApplicationUpdaterUI = new ApplicationUpdaterUI();
Exemplo do JavaScript:
var appUpdater = new runtime.air.update.ApplicationUpdaterUI();
Os exemplos de cdigo restantes neste documento supem que voc tenha instanciado um objeto atualizador appUpdater.
remoto. Qualquer localizao de URLRequest vlida permitida. Voc deve definir a propriedade updateURL pelo arquivo de configurao ou por script (consulte Definio dos arquivos de descritor de atualizao a acrscimo do arquivo do AIR ao servidor da Web na pgina 269). Defina essa propriedade antes de usar o atualizador (antes de chamar o mtodo initialize() do objeto atualizador, descrito em Inicializao da estrutura de atualizao na pgina 274).
delay Um nmero. Representa um intervalo de tempo fornecido em dias (valores como 0,25 so permitidos)
para verificao de atualizaes. Um valor de 0 (que o valor padro) especifica que o atualizador no realiza uma verificao automtica peridica. O arquivo de configurao do ApplicationUpdaterUI pode conter o seguinte elemento, alm dos elementos
updateURL e delay:
defaultUI: Uma lista de elementos dialog. Cada elemento dialog tem um atributo name que corresponde caixa
de dilogo na interface do usurio. Cada elemento dialog tem um atributo visible que define se a caixa de dilogo est visvel. O valor padro true. Valores possveis para o atributo name so:
atualizao.
"downloadUpdate" Corresponde caixa de dilogo Fazendo download de atualizao. "downloadProgress" Corresponde s caixas de dilogo Download em andamento e Erro de download. "installUpdate" Corresponde caixa de dilogo Instalar atualizao. "fileUpdate" Corresponde s caixas de dilogo Atualizao de arquivo, No atualizao de arquivo e Erro
de arquivo
"unexpectedError" Corresponde caixa de dilogo Erro inesperado
272
Quando definida como false, a caixa de dilogo correspondente no aparece como parte do procedimento de atualizao. Este um exemplo do arquivo de configurao para a estrutura ApplicationUpdater:
<?xml version="1.0" encoding="utf-8"?> <configuration xmlns="http://ns.adobe.com/air/framework/update/configuration/1.0"> <url>http://example.com/updates/update.xml</url> <delay>1</delay> </configuration>
Este um exemplo do arquivo de configurao para a estrutura ApplicationUpdaterUI, que inclui uma definio para o elemento defaultUI:
<?xml version="1.0" encoding="utf-8"?> <configuration xmlns="http://ns.adobe.com/air/framework/update/configuration/1.0"> <url>http://example.com/updates/update.xml</url> <delay>1</delay> <defaultUI> <dialog name="checkForUpdate" visible="false" /> <dialog name="downloadUpdate" visible="false" /> <dialog name="downloadProgress" visible="false" /> </defaultUI> </configuration>
Exemplo do JavaScript:
appUpdater.configurationFile = new air.File("app:/cfg/updateConfig.xml");
As propriedades do objeto atualizador so updateURL e delay. Essas propriedades definem as mesmas configuraes dos elementos updateURL e delay no arquivo de configurao: o URL e o arquivo de descritor de atualizao e o intervalo de verificao de atualizaes. Se voc especificar as configuraes and de um arquivo de configurao no cdigo, todas as propriedades definidas usando o cdigo tero precedncia sobre as configuraes correspondentes no arquivo de configurao. Voc deve definir a propriedade updateURL por meio do arquivo de configurao ou por meio de script (consulte Definio dos arquivos de descritor de atualizao a acrscimo do arquivo do AIR ao servidor da Web na pgina 269) antes de usar o atualizador (antes de chamar o mtodo initialize() do objeto atualizador, descrito em Inicializao da estrutura de atualizao na pgina 274). A estrutura ApplicationUpdaterUI define essas propriedades adicionais do objeto atualizador:
Erro de atualizao.
isDownloadUpdateVisible Corresponde caixa de dilogo Fazendo download de atualizao.
273
isDownloadProgressVisible Corresponde s caixas de dilogo Download em andamento e Erro de download. isInstallUpdateVisible Corresponde caixa de dilogo Instalar atualizao. isFileUpdateVisible Corresponde s caixas de dilogo Atualizao de arquivo, No atualizao de arquivo e
Erro de arquivo
isUnexpectedErrorVisible Corresponde caixa de dilogo Erro inesperado
Cada propriedade corresponde a uma ou mais caixa de dilogo da interface de usurio ApplicationUpdaterUI. Cada propriedade um valor booliano com um valor padro true. Quando definida como false, a caixa de dilogo correspondente no aparece como parte do procedimento de atualizao. Essas propriedades de caixa de dilogo substituem as configuraes no arquivo de configurao de atualizao.
O processo de atualizao
A estrutura de atualizao do AIR completa o processo de atualizao nas seguintes etapas:
1 A inicializao do atualizador verifica se foi realizada uma verificao de atualizao no intervalo de tempo definido
(consulte Definio das configuraes de atualizao na pgina 271). Se estiver faltando uma verificao de atualizao, o processo de atualizao continuar.
2 O atualizador baixa e interpreta o arquivo de descritor de atualizao. 3 O atualizador baixa o arquivo AIR de atualizao. 4 O atualizador instala a verso atualizada do aplicativo.
O objeto atualizador despacha eventos na concluso de cada uma das etapas. Na verso do ApplicationUpdater, voc pode cancelar os eventos que indicam a concluso bem-sucedida de uma etapa no processo. Se voc cancelar um desses eventos, a prxima etapa do processo ser cancelada. Na verso do ApplicationUpdaterUI, o atualizador apresenta uma caixa de dilogo permitindo que o usurio cancele ou continue para a prxima etapa do processo. Se voc cancelar o evento, poder chamar mtodos do objeto atualizador para retomar o processo. Conforme a verso do ApplicationUpdater do atualizador progride pelo processo de atualizao, ela registra seu estado atual em uma propriedade currentState. Essa propriedade definida como uma sequncia de caracteres com os seguintes valores possveis:
"UNINITIALIZED" O atualizador no foi inicializado. "INITIALIZING" O atualizador est sendo inicializado. "READY" O atualizador foi inicializado "BEFORE_CHECKING" O atualizador ainda no verificou se existe um arquivo de descritor de atualizao. "CHECKING" O atualizador est verificando se existe um arquivo de descritor de atualizao. "AVAILABLE" O arquivo de descritor de atualizao est disponvel. "DOWNLOADING" O atualizador est baixando o arquivo AIR. "DOWNLOADED" O atualizador baixou o arquivo AIR. "INSTALLING" O atualizador est instalando o arquivo AIR. "PENDING_INSTALLING" O atualizador foi inicializado e no h atualizaes pendentes.
Alguns mtodos do objeto atualizador s sero executados se o atualizador estiver em determinado estado.
274
Ele inicializa a estrutura de atualizao, instalando de forma silenciosa e sncrona todas as atualizaes pendentes.
necessrio para chamar esse mtodo durante a inicializao do aplicativo, pois ele pode reiniciar o aplicativo quando chamado.
Ele verifica se existe uma atualizao adiada e a instala. Se houver um erro durante o processo de atualizao, ele limpa o arquivo de atualizao e as informaes de verso
da rea de armazenamento do aplicativo.
Se o tempo limite tiver expirado, o processo de atualizao e iniciado. Caso contrrio, ele inicia o timer.
Chamar esse mtodo pode resultar no despacho dos seguintes eventos pelo objeto atualizador:
UpdateEvent.INITIALIZED Despachado quando a inicializao concluda. ErrorEvent.ERROR Despachado quando h um erro na inicializao.
No despacho do evento UpdateEvent.INITIALIZED, o processo de atualizao concludo. Quando voc chama o mtodo initialize(), o atualizador inicia o processo de atualizao e conclui todas as etapas com base na configurao de tempo do timer. No entanto, voc tambm pode iniciar o processo de atualizao a qualquer momento chamando o mtodo checkNow() do objeto atualizador:
appUpdater.checkNow();
Esse mtodo no faz nada se o processo de atualizao j estiver em execuo. Caso contrrio, ele comea o processo de atualizao. O objeto atualizador pode despachar o seguinte evento como resultado de chamar o mtodo checkNow():
275
Chamar o mtodo checkForUpdate() faz com que o atualizador baixe e interprete o arquivo do descritor do aplicativo de forma assncrona. Como resultado de chamar o mtodo checkForUpdate(), o objeto atualizador poder despachar os seguintes eventos:
StatusUpdateEvent.UPDATE_STATUS O atualizador baixou e interpretou o arquivo de descritor de atualizao com xito. Esse evento tem estas propriedades:
available Um valor booliano. Configure para true se existir uma verso disponvel diferente do aplicativo atual; caso contrrio false (a verso a mesma). version Uma sequncia de caracteres. A verso do arquivo de descritor de aplicativo do arquivo de
atualizao
details Uma matriz. Se no houver verses localizadas da descrio, essa matriz retornar uma sequncia
de caracteres vazia ("") como primeiro elemento e a descrio como segundo elemento. Se houver vrias verses da descrio (no arquivo de descritor de atualizao), a matriz conter vrias submatrizes. Cada matriz tem dois elementos: o primeiro um cdigo de idiomas (como "en") e o segundo a descrio correspondente (uma sequncia de caracteres) para o idioma. Consulte Definio dos arquivos de descritor de atualizao a acrscimo do arquivo do AIR ao servidor da Web na pgina 269.
de descritor de eventos.
Chamar esse mtodo faz com que o atualizador baixe de forma assncrona a verso de atualizao do arquivo do AIR. O mtodo downloadUpdate() pode despachar os seguintes eventos:
UpdateEvent.DOWNLOAD_START Foi estabelecida a conexo com o servidor. Quando voc usa a biblioteca
ApplicationUpdaterUI, esse evento exibe uma caixa de dilogo com uma barra de progresso para controlar o andamento do download.
276
DownloadErrorEvent.DOWNLOAD_ERROR Despachado se houver um erro na conexo ou no download do arquivo de atualizao. Tambm despachado para status de HTTP invlidos (como " 404 - Arquivo no encontrado"). Esse evento tem uma propriedade errorID, um inteiro que define informaes de erro adicionais. Uma propriedade subErrorID adicional pode conter mais informaes de erro. UpdateEvent.DOWNLOAD_COMPLETE O atualizador baixou e interpretou o arquivo de descritor de atualizao
com xito. Se voc no cancelar esse evento, a verso do ApplicationUpdater continuar a instalar a verso de atualizao. Na verso do ApplicationUpdaterUI, o usurio visualiza uma caixa de dilogo que fornece a opo de continuar.
Atualizao do aplicativo
O objeto ApplicationUpdater despacha o evento downloadComplete quando o download do arquivo de atualizao concludo. Se voc cancelar o comportamento padro, poder chamar o mtodo installUpdate() para retomar o processo de atualizao.
appUpdater.installUpdate(file);
Chamar esse mtodo faz com que o atualizador instale uma verso de atualizao do arquivo AIR. O mtodo inclui um parmetro, file, que um objeto File que referencia o arquivo AIR a ser usado como atualizao. O objeto ApplicationUpdater pode despachar e evento beforeInstall como resultado de chamar o mtodo
installUpdate():
da atualizao nesse momento, para que o usurio possa concluir o trabalho atual antes de a atualizao continuar. Chamar o mtodo preventDefault() do objeto Event adia a instalao at o prximo reincio, e nenhum processo de atualizao adicional pode ser iniciado. (Isso inclui atualizaes que resultariam de chamar o mtodo checkNow() ou de verificaes peridicas.)
Esse mtodo faz com que o atualizador instale uma verso de atualizao do aplicativo a partir do arquivo AIR. O mtodo installFromAIRFile() pode despachar os seguintes eventos:
xito o arquivo envaido usando o mtodo installFromAIRFile(). Esse evento tem as seguintes propriedades:
available Definida como true se houver uma verso diferente da verso do aplicativo atual; false caso contrrio (as verses so as mesmas). version A string que representa a nova verso disponvel. path Representa o caminho nativo do arquivo de atualizao.
Voc pode cancelar esse evento se a propriedade disponvel do objeto StatusFileUpdateEvent estiver definida como
true. O cancelamento do evento impede a continuidade da atualizao. Chame o mtodo installUpdate() para
aplicativo do AIR.
277
Esse mtodo cancela os downloads pendentes, excluindo arquivos baixados incompletos, e reinicia o timer de verificao peridica. O mtodo no faz nada se o objeto atualizador estiver sendo inicializado.
A estrutura de atualizao usa a descrio mais adequada para a cadeia de localizao do usurio. Para obter mais informaes, consulte Definio do arquivo de descritor de atualizao a acrscimo do arquivo AIR ao servidor da Web. Desenvolvedores de Flex podem adicionar diretamente um novo idioma ao grupo "ApplicationUpdaterDialogs". Desenvolvedores de JavaScript podem chamar o mtodo addResources() do objeto atualizador. Esse mtodo adiciona dinamicamente um novo conjunto de recursos para um idioma. O conjunto de recursos define sequncias de caracteres localizadas para um idioma. Essas sequncias de caracteres so usadas em vrios campos de texto de caixa de dilogo. Desenvolvedores de JavaScript podem usar a propriedade localeChain da classe ApplicationUpdaterUI para definir a cadeia de localizao usada pela interface do usurio. Geralmente, somente desenvolvedores de JavaScript (HTML) usam essa propriedade. Desenvolvedores de Flex usam o ResourceManager para gerenciar a cadeia de localizao. Por exemplo, o cdigo de JavaScript a seguir define grupos de recursos para romano e hngaro.
appUpdater.addResources("ro_RO", {titleCheck: "Titlu", msgCheck: "Mesaj", btnCheck: "Buton"}); appUpdater.addResources("hu", {titleCheck: "Cm", msgCheck: "zenet"}); var languages = ["ro", "hu"]; languages = languages.concat(air.Capabilities.languages); var sortedLanguages = air.Localizer.sortLanguagesByPreference(languages, air.Capabilities.language, "en-US"); sortedLanguages.push("en-US"); appUpdater.localeChain = sortedLanguages;
Para obter detalhes, consulte a descrio do mtodo addResources() da classe ApplicationUpdaterUI na referncia de idiomas.
278
O arquivo AIRSourceViewer.js define uma classe, o SourceViewer, que voc pode acessar do cdigo do JavaScript chamando air.SourceViewer. A classe SourceViewer define trs mtodos: getDefault(), setup() e viewSource().
Mtodo
getDefault()
Descrio Um mtodo esttico. Retorna uma instncia do SourceViewer, que voc pode usar para chamar os outros mtodos. Aplica as configuraes ao Visualizador do Cdigo-Fonte. Para obter detalhes, consulte Configurao do Visualizador do Cdigo-Fonte na pgina 278. Abre uma nova janela na qual o usurio pode navegar e abrir os arquivos de origem do aplicativo de host.
setup()
viewSource()
Nota: O cdigo que usa o Visualizador do Cdigo-Fonte deve estar em uma caixa de proteo do aplicativo (em um arquivo no diretrio do aplicativo). Por exemplo, o cdigo JavaScript a seguir instancia um objeto do Visualizador do Cdigo-Fonte e abre a janela do Visualizador que lista todos os arquivos de origem:
var viewer = air.SourceViewer.getDefault(); viewer.viewSource();
279
Por exemplo, o cdigo JavaScript a seguir abre a janela do Visualizador do Cdigo-Fonte com o arquivo index.html como arquivo inicial mostrado:
var viewer = air.SourceViewer.getDefault(); var configObj = {}; configObj.default = "index.html"; viewer.viewSource(configObj);
exclude Uma sequncia de strings que especifica os arquivos ou diretrios a serem excludos da listagem do Visualizador do Cdigo-Fonte. Os caminhos se referem ao diretrio do aplicativo. Os caracteres curinga no recebem suporte. Por exemplo, o cdigo JavaScript a seguir abre a janela do Visualizador do Cdigo-Fonte que lista todos os arquivos de origem, exceto para o arquivo AIRSourceViewer.js, e os arquivos nos subdiretrios Imagens e sons:
var viewer = air.SourceViewer.getDefault(); var configObj = {}; configObj.exclude = ["AIRSourceViewer.js", "Images" "Sounds"]; viewer.viewSource(configObj);
initialPosition Uma matriz que inclui dois nmeros, especificando as coordenadas x e y iniciais da janela do Visualizador do CdigoFonte. Por exemplo, o cdigo de JavaScript a seguir abre a janela do Visualizador do Cdigo-Fonte nas coordenadas da tela [40, 60] (X = 40, Y = 60):
var viewer = air.SourceViewer.getDefault(); var configObj = {}; configObj.initialPosition = [40, 60]; viewer.viewSource(configObj);
modal Um valor booliano que especifica se o Visualizador do Cdigo-Fonte deve ser uma janela modal (verdadeiro) ou no modal (falso). Por padro, a janela do Visualizador do Cdigo-Fonte modal. Por exemplo, o cdigo de JavaScript a seguir abre a janela do Visualizador do Cdigo-Fonte de tal forma que o usurio possa interagir com a janela do Visualizador do Cdigo-Fonte e as janelas de qualquer aplicativo:
var viewer = air.SourceViewer.getDefault(); var configObj = {}; configObj.modal = false; viewer.viewSource(configObj);
typesToAdd Uma matriz de strings que especifica os tipos de arquivo a serem includos na listagem do Visualizador do CdigoFonte, alm dos tipos padro inclusos. Por padro, o Visualizador do Cdigo-Fonte lista os seguintes tipos de arquivos:
Arquivos de texto TXT, XML, MXML, HTM, HTML, JS, AS, CSS, INI, BAT, PROPERTIES, CONFIG Arquivos de imagem JPG, JPEG, PNG, GIF
Se nenhum valor for especificado, todos os tipos padro so includos (exceto aqueles especificados na propriedade typesToExclude).
280
Por exemplo, o cdigo de JavaScript a seguir abre a janela do Visualizador do Cdigo-Fonte que inclui os arquivos VCF e VCARD:
var viewer = air.SourceViewer.getDefault(); var configObj = {}; configObj.typesToAdd = ["text.vcf", "text.vcard"]; viewer.viewSource(configObj);
Para cada tipo de arquivo que voc listar, especifique "text" (para os arquivos do tipo texto) ou "image" (para arquivos do tipo imagem). typesToExclude Uma matriz de strings que especifica os tipos de arquivo a serem excludos do Visualizador do Cdigo-Fonte. Por padro, o Visualizador do Cdigo-Fonte lista os seguintes tipos de arquivos:
Arquivos de texto TXT, XML, MXML, HTM, HTML, JS, AS, CSS, INI, BAT, PROPERTIES, CONFIG Arquivos de imagem JPG, JPEG, PNG, GIF
Por exemplo, o cdigo de JavaScript a seguir abre a janela do Visualizador do Cdigo-Fonte sem listar os arquivos GIF ou XML:
var viewer = air.SourceViewer.getDefault(); var configObj = {}; configObj.typesToExclude = ["image.gif", "text.xml"]; viewer.viewSource(configObj);
Para cada tipo de arquivo que voc listar, especifique "text" (para os arquivos do tipo texto) ou "image" (para arquivos do tipo imagem).
281
Os diretrios so listados entre parnteses. O usurio pode clicar em um parntese para expandir ou encolher a listagem de um diretrio. O Visualizador do Cdigo-Fonte pode exibir o cdigo-fonte para os arquivos de texto com extenses reconhecidas (como , HTML, JS, TXT, XML e outros) ou para arquivos de imagem com extenses reconhecidas (JPG, JPEG, PNG e GIF). Se o usurio selecionar um arquivo que no tem uma extenso de arquivo reconhecida, ser exibida uma mensagem de erro ("No possvel recuperar o contedo de texto deste tipo de arquivo"). Os arquivos de origem que so excludos atravs do mtodo setup() no so listados (consulte Carregamento, configurao e abertura do Visualizador de Cdigo-Fonte na pgina 278).
282
Inclui uma ferramenta de introspeco que lhe permite apontar para um elemento da interface do usurio no
aplicativo e v suas propriedades de marcao e DOM.
Alm disso, inclui um console para enviar referncias de objetos para introspeo, e voc pode ajustar valores de
propriedade e executar o cdigo de JavaScript. Voc tambm pode serializar objetos no console, que o limita na edio dos dados. Tambm possvel copiar e salvar texto a partir do console.
Inclui uma visualizao de rvore para as propriedades e funes DOM. Com isso, voc poder editar os atributos e ns de texto para os elementos DOM. Ele lista os links, estilos, imagens e arquivos JavaScript carregados no seu aplicativo. Assim, voc poder ver o cdigo-fonte inicial de HTML e o cdigo-fonte de marcao atual para a interface do
usurio.
Ele permite acessar os arquivos no diretrio do aplicativo. (Esse recurso s est disponvel para o console do AIR
HTML Introspector aberto para a caixa de proteo do aplicativo. No disponvel para os consoles abertos para o contedo que no est na caixa de proteo do aplicativo.)
Ele inclui um visualizar para os objetos XMLHttpRequest e suas propriedades, incluindo as propriedades
responseText e responseXML (quando disponvel).
Tambm inclua o arquivo em todos os arquivos HTML que correspondem a janelas nativas diferentes no seu aplicativo. Importante: Inclua o arquivo AIRIntrospector.js apenas ao desenvolver e depurar o aplicativo. Remova-o no aplicativo empacotador do AIR que voc distribua.
283
O arquivo AIRIntrospector.js define uma classe, Console, que voc pode acessar do cdigo do JavaScript chamando air.Introspector.Console. Nota: O cdigo que usa o AIR Introspector deve estar em uma caixa de proteo do aplicativo (em um arquivo no diretrio do aplicativo).
No entanto, mais til enviar um objeto complexo para a guia Console. Por exemplo, a pgina HTML a seguir inclui um boto (btn1) que chama uma funo que envia o prprio objeto do boto para a guia Console:
<html> <head> <title>Source Viewer Sample</title> <script type="text/javascript" src="scripts/AIRIntrospector.js"></script> <script type="text/javascript"> function logBtn() { var button1 = document.getElementById("btn1"); air.Introspector.Console.log(button1); } </script> </head> <body> <p>Click to view the button object in the Console.</p> <input type="button" id="btn1" onclick="logBtn()" value="Log" /> </body> </html>
284
Ao clicar no boto, a guia Console exibe o objeto btn1, e voc pode expandir a visualizao de rvore do objeto para inspecionar suas propriedades:
Voc pode editar uma propriedade do objeto clicando na lista direita do nome da propriedade e modificando a listagem do texto. Os mtodos info(), error() e warn() so parecidos com o mtodo log(). No entanto, ao chamar esses mtodos, o Console exibe um cone no comeo da linha:
Mtodo
info() error() warn()
cone
Os mtodos log(), warn(), info() e error() enviam uma referncia apenas para um objeto real, por isso as propriedades disponveis so as nicas no momento da visualizao. Se desejar serializar o objeto real, use o mtodo dump(). O mtodo tem dois parmetros:
Parmetro
dumpObject levels
Descrio O objeto a ser serializado. O nmero mximo de nveis a serem examinado na rvore do objeto (alm do nvel de raiz). O valor padro 1 (indicando que um mostrado um nvel alm do nvel de raiz da rvore). Esse parmetro opcional.
Chamar o mtodo dump() serializa um objeto antes de envi-lo para a guia Console, de forma que voc no possa editar as propriedades dos objetos. Por exemplo, considere o seguinte cdigo:
285
Ao executar este cdigo, o Console exibe o objeto testObject e suas propriedades, mas voc no pode editar os valores da propriedade no Console.
Certifique-se de definir as propriedades da varivel AIRIntrospectorConfig antes de carregar o arquivo AIRIntrospector.js (atravs de uma tag script). H oito propriedades na varivel AIRIntrospectorConfig:
Propriedade
closeIntrospectorOnExit
Valor padro
true
Descrio Define que a janela Inspector feche quando todas as outras janelas do aplicativo esto fechadas. O cdigo da tecla para o atalho no teclado para mostrar e ocultar a janela do AIR Introspector. Define que o Introspector expanda os objetos do runtime alm dos objetos definidos no JavaScript. Define que as guias Console e XMLHttpRequest pisquem, indicando quando ocorre uma mudana nelas (por exemplo, quando o texto registrado nessas guias). O cdigo de tecla para o atalho no teclado para abrir o painel Inspect. Define que a guia Console exiba os carimbos de data/hora no comeo de cada linha. Define que a guia Console exiba as informaes no objeto que est enviando a mensagem no comeo de cada linha. O nmero de colunas nas quais os arquivos de origem so empacotados.
debuggerKey
debugRuntimeObjects
true
flashTabLabels
true
introspectorKey showTimestamp
showSender
true
wrapColumns
2000
286
A janela do AIR Introspector tem seis guias Console, HTML, DOM, Ativos, Cdigo-Fonte e XHR como mostrado na ilustrao a seguir:
A guia Console A guia Console exibe os valores das propriedades passadas como parmetros para um dos mtodos da classe air.Introspector.Console. Para obter detalhes, consulte Inspeo de um objeto na guia Console na pgina 283.
Para limpar o console, clique com o boto direito do mouse no texto e selecionar Limpar console.
287
Para salvar texto na guia Console em um arquivo, clique com o boto direito na guia Console e selecione Salvar
console em arquivo.
Para salvar texto na guia Console na rea de transferncia, clique com o boto direito na guia Console e selecione
Salvar console na rea de transferncia. Para copiar apenas o texto na rea de transferncia, clique com o boto direito no texto e selecione Copiar.
Para salvar texto na classe Console em um arquivo, clique com o boto direito na guia Console e selecione Salvar
console em arquivo.
Para pesquisar texto correspondente exibido na guia, clique em CTRL+F no Windows ou em Command+F no Mac
OS. (Os ns de rvore que so visveis no so pesquisados.) A guia HTML A guia HTML permite visualizar todo o DOM de HTML em uma estrutura de rvore. Clique em um elemento para exibir suas propriedades no lado direito da guia. Clique nos cones + e - para expandir e recolher um n na rvore.
Voc pode editar qualquer atributo ou elemento de texto na guia HTML e o valor editado se reflete no aplicativo. Clique no boto Inspecionar ( esquerda da lista de guias na janela do AIR Introspector). Voc pode clicar em qualquer elemento na pgina HTML da janela principal e o objeto DOM associado exibido na guia HTML. Quando a janela principal tem foco, voc tambm pode pressionar o atalho no teclado para ativar e desativar o boto Inspecionar. O atalho no teclado F11 por padro. Voc pode configurar o atalho no teclado como uma tecla que no seja a tecla F11; consulte Configurao do AIR Introspector na pgina 285. Clique no boto Atualizar janela ativa (na parte superior da janela do AIR Introspector) para atualizar os dados exibidos na guia HTML. Clique em CTRL+F no Windows ou em Command+F no Mac OS para pesquisar o texto correspondente exibido na guia. (Os ns de rvore que so visveis no so pesquisados.)
288
A guia DOM A guia DOM mostra o objeto da janela em uma estrutura de rvore. Voc pode editar qualquer propriedade numrica e de string, e o valor editado se reflete no aplicativo.
Clique no boto Atualizar janela ativa (na parte superior da janela do AIR Introspector) para atualizar os dados exibidos na guia DOM. Clique em CTRL+F no Windows ou em Command+F no Mac OS para pesquisar o texto correspondente exibido na guia. (Os ns de rvore que so visveis no so pesquisados.)
289
A guia Ativos A guia Ativos permite verificar os links, imagens, CSS e arquivos JavaScript carregados na janela nativa. A expanso de um desses ns mostra o contedo do arquivo ou exibe a imagem real usada.
Clique no boto Atualizar janela ativa (na parte superior da janela do AIR Introspector) para atualizar os dados exibidos na guia Ativos. Clique em CTRL+F no Windows ou em Command+F no Mac OS para pesquisar o texto correspondente exibido na guia. (Os ns de rvore que so visveis no so pesquisados.) A guia Fonte A guia Fonte inclui trs sees:
Fonte real Mostra a fonte de HTML da pgina carregada como contedo de raiz quando o aplicativo for iniciado. Fonte analisada Mostra a marcao real que compe a IU do aplicativo, que pode ser diferente da fonte real, uma
vez que o aplicativo gera o cdigo de marcao durante o processo usando tcnicas Ajax.
290
Arquivos do aplicativo Lista os arquivos no diretrio do aplicativo. Essa listagem s est disponvel para o AIR
Introspector quando aberto a partir do contedo da caixa de segurana do aplicativo. Nessa seo, voc pode ver o contedo dos arquivos de texto ou visualizar imagens.
Clique no boto Atualizar janela ativa (na parte superior da janela do AIR Introspector) para atualizar os dados exibidos na guia Fonte. Clique em CTRL+F no Windows ou em Command+F no Mac OS para pesquisar o texto correspondente exibido na guia. (Os ns de rvore que so visveis no so pesquisados.)
291
A guia XHR A guia XHR intercepta toda a comunicao XMLHttpRequest no aplicativo e registra as informaes. Isso lhe permite ver as propriedades XMLHttpRequest, incluindo responseText e responseXML (quando disponveis) em uma visualizao de rvore.
Clique em CTRL+F no Windows ou em Command+F no Mac OS para pesquisar o texto correspondente exibido na guia. (Os ns de rvore que so visveis no so pesquisados.)
O arquivo AIRIntrospector.js deve ser includo no contedo da caixa de proteo do aplicativo e tambm no do
aplicativo (o iframe).
292
Do contedo da caixa de proteo no do aplicativo, voc no pode abrir o AIR Introspector pressionando a tecla
F12 ou chamando um dos mtodos na classe air.Introspector.Console. Voc pode abrir a janela do Introspector apenas clicando no boto Abrir Introspector. O boto acrescentado por padro no canto superior direito do iframe ou do quadro. (Devido a restries de segurana impostas ao contedo da caixa de proteo no do aplicativo, pode-se abrir uma nova janela apenas como resultado de um gesto do usurio, como clicar em um boto.)
Voc pode abrir janelas separadas do AIR Introspector para a caixa de proteo do aplicativo e no do aplicativo.
possvel diferenciar as duas usando o ttulo exibido nas janelas do AIR Introspector.
A guia Fonte no exibe os arquivos de aplicativo quando o AIR Introspector executado de uma caixa de proteo
no do aplicativo.
O AIR Introspector s pode analisar o cdigo na caixa de proteo da qual ele foi aberto.
293
Chins simplificado Chins tradicional Francs Alemo Italiano Japons Coreano Portugus (Brasil) Russo Espanhol
Na verso AIR 1.5, foram acrescentados os seguintes idiomas:
294
O atributo xml:lang de cada elemento de texto especifica um cdigo de idioma, como definido por RFC4646 (http://www.ietf.org/rfc/rfc4646.txt). O elemento name define o nome do aplicativo que o instalador de aplicativo do AIR exibe. O instalador de aplicativo do AIR usa o valor localizado que melhor corresponda aos idiomas da interface do usurio definidos pelas configuraes do sistema operacional. De modo semelhante, voc pode especificar vrias verses de idioma do elemento description no arquivo do descritor do aplicativo. Esse elemento define o texto de descrio que instalador de aplicativo do AIR exibe. Essas configuraes s se aplicam aos idiomas disponveis no instalador de aplicativo do AIR. Elas no definem os cdigos de idiomas disponveis para a execuo do aplicativo instalado. Os aplicativos do AIR podem oferecer interfaces do usurio que suportam vrios idiomas, incluindo idiomas disponveis ao instalador do aplicativo do AIR. Para mais informaes, consulte Elementos descritores do aplicativo do AIR na pgina 210.
295
O objeto air.Localizer.localizer um objeto singleton que define mtodos e propriedades para usar e gerenciar recursos de localizao. A classe Localizer inclui os seguintes mtodos:
Mtodo
getFile()
Descrio Obtm o texto de um grupo de recursos especificados para um cdigo de idiomas especificado. Consulte Obteno de recursos para um cdigo de idiomas especfico na pgina 301. Retorna os idiomas na cadeia de cdigo de idiomas. Consulte Definio da cadeia de cdigo de idiomas na pgina 300. Retorna as chaves do grupo e os valores correspondentes como um objeto. Consulte Obteno de recursos para um cdigo de idiomas especfico na pgina 301. Obtm a sequncia definida para um recurso. Consulte Obteno de recursos para um cdigo de idiomas especfico na pgina 301. Define o local do diretrio de compactados. Consulte Personalizao de configuraes HTML Localizer do AIR na pgina 299 Define o prefixo usado pelos atributos do localizer usados nos elementos HTML DOM. Consulte Personalizao de configuraes HTML Localizer do AIR na pgina 299 Define a ordem de idiomas na cadeia de cdigo de idiomas. Consulte Definio da cadeia de cdigo de idiomas na pgina 300. Classifica os cdigos de idiomas na cadeia de cdigo de idiomas com base na ordem de cdigos de idiomas nas configuraes do sistema operacional. Consulte Definio da cadeia de cdigo de idiomas na pgina 300. Atualiza o HTML DOM (ou um elemento DOM) com sequncias localizadas da cadeia de cdigo de idiomas atual. Para obter uma discusso sobre cadeias de cdigos de idiomas, consulte Gerenciamento de cadeias de cdigos de idiomas na pgina 297. Para obter mais informaes sobre o mtodo update(), consulte Atualizao de elementos DOM para uso de cdigo de idiomas atual na pgina 298.
getLocaleChain()
getResourceBundle()
getString()
sortLanguagesByPrefe rence()
update()
Descrio Retorna uma referncia para o objeto singleton Localizer do aplicativo. Cdigo de idiomas usado quando o aplicativo no oferece suporte a nenhuma preferncia de usurio. Consulte Definio da cadeia de cdigo de idiomas na pgina 300.
iOS todos os idiomas suportados pelo runtime do AIR so listados na app store do iOS como idiomas suportados
do aplicativo.
Runtime cativo do Mac Aplicativo empacotado com conjunto cativo no possui informaes de localizao.
296
Android O pacote do aplicativo tem recursos para todos os idiomas suportados pelo runtime do AIR.
Para obter mais informaes, consulte supportedLanguages na pgina 238.
O arquivo de propriedades contendo o texto a seguir define seis pares de valores chave:
title=Sample Application greeting=Hello in English. exitMessage=Thank you for using the application. color1=Red color2=Green color3=Blue
Este exemplo mostra uma verso em ingls do arquivo de propriedades que deve ser armazenado no diretrio en. A verso francesa desse arquivo de propriedades colocada no diretrio fr:
title=Application Example greeting=Bonjour en franais. exitMessage=Merci d'avoir utilis cette application. color1=Rouge color2=Vert color3=Bleu
Voc pode definir vrios arquivos de recursos para diferentes tipos de informaes. Por exemplo, o arquivo legal.properties pode conter texto de padro legal (como informaes de direitos autorais). Voc pode usar novamente esse recurso em diversos aplicativos. De modo semelhante, voc pode definir arquivos separados que definem contedo localizado para diferentes partes da interface do usurio.
297
Use a codificao UTF-8 para esses arquivos, para oferecer suporte a vrios idiomas.
Se o cdigo de idiomas atual no definir nenhum valor correspondente, a estrutura do localizador procura o restante da cadeia de cdigos de idiomas. Ele usa o prximo cdigo de idiomas na cadeia de cdigo de idiomas para o qual um valor est definido. No exemplo a seguir, o texto (atributo innerHTML) do elemento p usa o valor da chave greeting definido no arquivo de propriedades padro:
<p local_innerHTML="default.greeting" />
No exemplo a seguir, o atributo de valor (e texto exibido) do elemento input usa o valor da chave btnBlue definido no arquivo de propriedades padro:
<input type="button" local_value="default.btnBlue" />
298
Para atualizar o HTML DOM para usar as sequncias definidas na cadeia de cdigo de idiomas atual, chame o mtodo update() do objeto Localizer. Chamar o mtodo update() faz com que o objeto Localizer analise o DOM e aplique manipulaes onde encontrar atributos de localizao "local_..."):
air.Localizer.localizer.update();
Voc pode definir valores tanto para um atributo (como "innerHTML") quanto para o respectivo atributo de localizao correspondente (como "local_innerHTML"). Nesse caso, a estrutura de localizao s sobrescreve o valor de atributo se ela encontrar um valor correspondente na cadeia de localizao. Por exemplo, o elemento a seguir define os atributos value e local_value:
<input type="text" value="Blue" local_value="default.btnBlue"/>
Voc tambm pode atualizar apenas um elemento DOM especfico Consulte a prxima seo, Atualizao de elementos DOM para uso de cdigo de idiomas atual na pgina 298. Por padro, o HTML Localizer do AIR usa "local_" como o prefixo de atributos que definem as configuraes de localizao do elemento. Por exemplo, por padro, o atributo local_innerHTML define o nome do grupo e recurso usados no valor innerHTML do elemento. Alm disso, por padro, o atributo local_value define o nome do grupo e recurso usados no atributo value do elemento. Voc pode configurar o Localizer para usar um prefixo de atributo alm de "local_". Consulte Personalizao de configuraes HTML Localizer do AIR na pgina 299
Para atualizar apenas um elemento DOM especificado, passe-o como parmetro para o mtodo update(). O mtodo update() s tem um parmetro, parentNode, que opcional. Quando especificado, o parmetro parentNode define o elemento DOM para ser localizado. Chamar o mtodo update() e especificar o parmetro parentNode define os valores localizados de todos os elementos filhos que especificam atributos de localizao. Por exemplo, considere o seguinte elemento div:
<div id="colorsDiv"> <h1 local_innerHTML="default.lblColors" ></h1> <p><input type="button" local_value="default.btnBlue" /></p> <p><input type="button" local_value="default.btnRed" /></p> <p><input type="button" local_value="default.btnGreen" /></p> </div>
Para atualizar esse elemento para usar as sequncias localizadas definidas na cadeia de cdigo de idiomas atual, use o seguinte cdigo JavaScript:
var divElement = window.document.getElementById("colorsDiv"); air.Localizer.localizer.update(divElement);
Se o valor chave no for encontrado na cadeia de cdigo de idiomas, a estrutura de localizao definir o valor de atributo como o valor do atributo "local_". Por exemplo, no exemplo anterior, suponhamos que a estrutura de localizao no possa encontrar o valor da chave lblColors (em qualquer um dos arquivos default.properties na cadeia de cdigo de idiomas). Nesse caso, ela usar "default.lblColors" como valor innerHTML. Usar esse valor indica (para o desenvolvedor) ausncia de recursos.
299
O mtodo update() despacha o evento resourceNotFound quando no consegue encontrar um recurso na cadeia de cdigo de idiomas. A constante air.Localizer.RESOURCE_NOT_FOUND define a sequncia "resourceNotFound". O evento tem trs propriedades: bundleName, resourceName e locale. A propriedade bundleName o nome do grupo em que o recurso no foi encontrado. A propriedade resourceName o nome do grupo em que o recurso no foi encontrado. A propriedade locale o nome do cdigo de idiomas em que o recurso no foi encontrado. O mtodo update() despacha o evento bundleNotFound quando no consegue encontrar o grupo especificado. A constante air.Localizer.BUNDLE_NOT_FOUND define a sequncia "bundleNotFound". O evento tem duas propriedades: bundleName e locale. A propriedade bundleName o nome do grupo em que o recurso no foi encontrado. A propriedade locale o nome do cdigo de idiomas em que o recurso no foi encontrado. O mtodo update() funciona de forma assncrona (e despacha os eventos resourceNotFound e bundleNotFound de forma assncrona). O cdigo a seguir define ouvintes de evento dos eventos resourceNotFound e bundleNotFound:
air.Localizer.localizer.addEventListener(air.Localizer.RESOURCE_NOT_FOUND, rnfHandler); air.Localizer.localizer.addEventListener(air.Localizer.BUNDLE_NOT_FOUND, rnfHandler); air.Localizer.localizer.update(); function rnfHandler(event) { alert(event.bundleName + ": " + event.resourceName + ":." + event.locale); } function bnfHandler(event) { alert(event.bundleName + ":." + event.locale); }
Uma sequncia que define o caminho relativo para o diretrio do aplicativo, como "locales" Uma sequncia que define a URL vlida que usa os esquemas de URL app, app-storage ou file, como
"app://languages" (no usa o esquema de URL http)
O objeto File
Para informaes sobre URLs e caminhos de diretrios, consulte:
Caminhos dos objetos File (para desenvolvedores em ActionScript) Paths of File objects (para desenvolvedores em HTML)
Por exemplo, o cdigo a seguir define o diretrio de compactaes como subdiretrio de idiomas do diretrio de armazenamento do aplicativo (no o diretrio de aplicativo):
air.Localizer.localizer.setBundlesDirectory("languages");
Passe um caminho vlido como o parmetro path. Do contrrio, o mtodo emitir uma exceo BundlePathNotFoundError. Esse erro tem "BundlePathNotFoundError" como sua propriedade name e a respectiva propriedade message especifica o caminho invlido.
300
Por padro, o HTML Localizer do AIR usa "local_" como o prefixo de atributos que definem as configuraes de localizao do elemento. Por exemplo, o atributo local_innerHTML define o nome do grupo e recurso usado no valor innerHTML do seguinte elemento input:
<p local_innerHTML="default.greeting" />
O mtodo setLocalAttributePrefix() do objeto Localizer permite usar outro prefixo de atributo que no seja "local_". Esse mtodo esttico usa um parmetro, que a sequncia que voc deseja usar como prefixo de atributo. Por exemplo, o cdigo a seguir define que a estrutura de localizao use "loc_" como o prefixo de atributo:
air.Localizer.localizer.setLocalAttributePrefix("loc_");
Voc pode personalizar o prefixo de atributo que a estrutura de localizao utiliza. Talvez voc deseje personalizar o prefixo, caso o valor padro ("local_") entre em conflito com o nome de outro atributo usado por seu cdigo. Certifique-se de usar caracteres vlidos em atributos HTML quando chamar esse mtodo. (Por exemplo, o valor no pode conter um caractere de espao em branco). Para obter mais informaes sobre como usar os atributos de localizao em elementos HTML, consulte Atualizao de elementos DOM com contedo localizado na pgina 297. As configuraes do diretrio de compactaes e prefixo de atributo no persistem entre sesses de aplicativos diferentes. Se voc usar uma configurao personalizada de diretrio de compactaes ou de prefixo de atributo, certifique-se de defini-las sempre que iniciar o aplicativo.
O mtodo setLocaleChain() despacha o evento "change" quando atualiza a cadeia de cdigo de idiomas. A constante air.Localizer.LOCALE_CHANGE define a sequncia "change". O evento tem uma propriedade, localeChain, uma matriz de cdigos de idiomas na nova cadeia de cdigo de idiomas. O cdigo a seguir define um ouvinte de evento para esse evento:
301
var currentChain = air.Localizer.localizer.getLocaleChain(); newLocales = ["fr_FR", "fr"]; localizer.addEventListener(air.Localizer.LOCALE_CHANGE, changeHandler); air.Localizer.localizer.setLocaleChain(newLocales.concat(currentChain)); function changeHandler(event) { alert(event.localeChain); }
A propriedade esttica air.Localizer.ultimateFallbackLocale representa o cdigo de idiomas usado quando o aplicativo no oferece suporte a nenhuma preferncia do usurio. O valor padro "en". Voc pode defini-lo como outro cdigo de idiomas, como mostrado no cdigo a seguir:
air.Localizer.ultimateFallbackLocale = "fr";
Descrio O grupo que contm o recurso. Esse o nome de arquivo do arquivo de propriedades sem a extenso .properties. (Por exemplo, se esse parmetro for definido como "alerts", o cdigo Localizer pesquisar nos arquivos de localizao chamados alerts.properties. O nome do recurso. Opcional. A matriz de sequncia para substituir as tags numeradas na sequncia de substituio. Por exemplo, considere uma chamada para a funo em que o parmetro templateArgs seja ["Ral", "4"] e a sequncia de recursos correspondente seja "Hello, {0}. Voc tem {1} mensagens novas.". Nesse caso, a funo retorna "Hello, Ral. Voc tem 4 mensagens novas".. Para ignorar essa configurao, passe o valor null. Opcional. O cdigo de idiomas (como "en", "en_us" ou "fr") que deve ser usado. Se o cdigo de idiomas for fornecido e nenhum valor correspondente for encontrado, o mtodo no continuar a busca por valores em outros cdigos de idiomas na cadeia de cdigo de idiomas. Se nenhum cdigo de idiomas for especificado, a funo retornar a sequncia no primeiro cdigo de idiomas na cadeia de cdigo de idiomas que oferea o valor para o nome de recurso determinado.
resourceName templateArgs
locale
A estrutura de localizao pode atualizar atributos HTML DOM marcados. No entanto, voc pode usar sequncias localizadas de outras maneiras. Por exemplo, voc pode usar uma sequncia em HTMLs gerados dinamicamente ou como valor de parmetro em uma chamada de funo. Por exemplo, o cdigo a seguir chama a funo alert() com a sequncia definida no recurso error114 no arquivo de propriedades padro do cdigo de idiomas fr_FR:
alert(air.Localizer.localizer.getString("default", "error114", null, "fr_FR"));
O mtodo getString() despacha o evento resourceNotFound quando no consegue encontrar o recurso no grupo especificado. A constante air.Localizer.RESOURCE_NOT_FOUND define a sequncia "resourceNotFound". O evento tem trs propriedades: bundleName, resourceName e locale. A propriedade bundleName o nome do grupo em que o recurso no foi encontrado. A propriedade resourceName o nome do grupo em que o recurso no foi encontrado. A propriedade locale o nome do cdigo de idiomas em que o recurso no foi encontrado.
302
O mtodo getString() despacha o evento bundleNotFound quando no consegue encontrar o grupo especificado. A constante air.Localizer.BUNDLE_NOT_FOUND define a sequncia "bundleNotFound". O evento tem duas propriedades: bundleName e locale. A propriedade bundleName o nome do grupo em que o recurso no foi encontrado. A propriedade locale o nome do cdigo de idiomas em que o recurso no foi encontrado. O mtodo getString() opera de forma assncrona (e despacha os eventos resourceNotFound e bundleNotFound de forma assncrona). O cdigo a seguir define ouvintes de evento dos eventos resourceNotFound e bundleNotFound:
air.Localizerlocalizer.addEventListener(air.Localizer.RESOURCE_NOT_FOUND, rnfHandler); air.Localizerlocalizer.addEventListener(air.Localizer.BUNDLE_NOT_FOUND, bnfHandler); var str = air.Localizer.localizer.getString("default", "error114", null, "fr_FR"); function rnfHandler(event) { alert(event.bundleName + ": " + event.resourceName + ":." + event.locale); } function bnfHandler(event) { alert(event.bundleName + ":." + event.locale); }
O mtodo getResourceBundle() do objeto Localizador retorna um grupo especificado para um determinado local. O valor de retorno do mtodo um objeto com propriedades correspondentes s chaves do grupo. (Se o aplicativo no puder localizar o grupo especificado, o mtodo retornar null.) O mtodo assume dois parmetros - locale e bundleName.
Parmetro
locale bundleName
Por exemplo, o cdigo a seguir chama o mtodo document.write() para carregar o grupo padro para o local fr. Em seguida, ele chama o mtodo document.write() com valores das chaves str1 e str2 do grupo:
var aboutWin = window.open(); var bundle = localizer.getResourceBundle("fr", "default"); aboutWin.document.write(bundle.str1); aboutWin.document.write("<br/>"); aboutWin.document.write(bundle.str2); aboutWin.document.write("<br/>");
O mtodo getResourceBundle() despacha o evento bundleNotFound quando no consegue encontrar o grupo especificado. A constante air.Localizer.BUNDLE_NOT_FOUND define a sequncia "bundleNotFound". O evento tem duas propriedades: bundleName e locale. A propriedade bundleName o nome do grupo em que o recurso no foi encontrado. A propriedade locale o nome do cdigo de idiomas em que o recurso no foi encontrado. O mtodo getFile() do objeto Localizer retorna o contedo de um grupo, como uma sequncia, para um cdigo de idiomas determinado. O arquivo de compactao interpretado como arquivo UTF-8. O mtodo inclui os seguintes parmetros:
303
Parmetro
resourceFileName templateArgs
Descrio Nome de arquivo do arquivo de recurso (como "about.html"). Opcional. A matriz de sequncia para substituir as tags numeradas na sequncia de substituio. Por exemplo, considere uma chamada para a funo em que o parmetro templateArgs seja ["Ral", "4"] e o arquivo de recursos correspondente contenha duas linhas:
<html> <body>Hello, {0}. You have {1} new messages.</body> </html>
O cdigo de idiomas, como "en_GB", que deve ser usado. Se o cdigo de idiomas for fornecido e nenhum arquivo correspondente for encontrado, o mtodo no continuar a busca em outros cdigos de idiomas na cadeia de cdigo de idiomas. Se o cdigo de idiomas no for especificado, a funo retornar o texto no primeiro cdigo de idiomas na cadeia de cdigo de idiomas com um arquivo que corresponda a resourceFileName.
Por exemplo, o cdigo a seguir chama o mtodo document.write() usando o contedo do arquivo about.html do cdigo de idiomas fr:
var aboutWin = window.open(); var aboutHtml = localizer.getFile("about.html", null, "fr"); aboutWin.document.close(); aboutWin.document.write(aboutHtml);
O mtodo getFile() despacha o evento fileNotFound quando no consegue encontrar um recurso na cadeia de cdigo de idiomas. A constante air.Localizer.FILE_NOT_FOUND define a sequncia "resourceNotFound". O mtodo getFile() funciona de forma assncrona (e despacha o evento fileNotFound de forma assncrona). O evento tem duas propriedades: fileName e locale. A propriedade fileName o nome do arquivo no encontrado. A propriedade locale o nome do cdigo de idiomas em que o recurso no foi encontrado. O cdigo a seguir define um ouvinte de evento para esse evento:
air.Localizer.localizer.addEventListener(air.Localizer.FILE_NOT_FOUND, fnfHandler); air.Localizer.localizer.getFile("missing.html", null, "fr"); function fnfHandler(event) { alert(event.fileName + ": " + event.locale); }
304
Isso retorna uma lista separada por dois pontos de diretrios que deve ser algo parecido com isto:
/usr/bin:/bin:/usr/sbin:/usr/local/bin:/usr/x11/bin
O objetivo acrescentar o caminho para o diretrio bin AIR SDK lista para que o shell possa encontrar as ferramentas ADT e ADL. Supondo que voc tenha colocado o AIR SDK em /Users/fred/SDKs/AIR, o seguinte comando adicionar os diretrios necessrios para o caminho:
export PATH=$PATH:/Users/fred/SDKs/AIR/bin:/Users/fred/SDKs/android/tools
Nota: Se o caminho contiver caracteres de espao em branco, faa o escape com uma barra invertida, como a seguir:
/Users/fred\ jones/SDKs/AIR\ 2.5\ SDK/bin
Voc pode usar o comando echo novamente para ter certeza de que funcionou:
echo $PATH /usr/bin:/bin:/usr/sbin:/usr/local/bin:/usr/x11/bin:/Users/fred/SDKs/AIR/bin:/Users/fred/SDK s/android/tools
At aqui tudo bem. Agora voc deve ser capaz de escrever os seguintes comandos e obter uma resposta encorajadora:
adt -version
Se voc modificou a varivel $PATH corretamente, o comando deve informar a verso do ADT. H ainda um problema, no entanto; na prxima vez que voc abrir uma nova janela de terminal, vai notar que as novas entradas no caminho no esto mais l. O comando para definir o caminho deve ser executado sempre que iniciar um novo terminal.
305
Uma soluo comum para este problema adicionar o comando de um dos scripts de inicializao usado pelo shell. No Mac OS, voc pode criar o arquivo .bash_profile, no diretrio ~/username e este ser executado cada vez que uma nova janela de terminal for aberta. No Ubuntu, o script de inicializao ser executado quando uma nova janela .bashrc for aberta. Outras distribuies Linux e programas de shell tm convenes parecidas. Para adicionar o comando para o script de inicializao do shell:
1 Mude para o diretrio home:
cd
2 Crie o perfil de configurao do shell (se necessrio) e redirecione o texto que voc digitar para o final do arquivo
com "cat >>". Use o arquivo adequado para seu sistema operacional e shell. Voc pode usar .bash_profile no Mac OS e .bashrc no Ubuntu, por exemplo.
cat >> .bash_profile
4 Termine o redirecionamento texto pressionando CTRL-SHIFT-D no teclado. 5 Exiba o arquivo para se certificar que tudo est bem:
cat .bash_profile
As incluses de caminhos devem ser listadas. Se posteriormente criar uma nova verso de um dos SDKs em diretrio diferente, no se esquea de atualizar o comando do caminho do arquivo de configurao. Caso contrrio, o shell continuar a utilizar a verso antiga.
Isto mostrar uma lista separada por vrgulas de diretrios que se parece com isso:
Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem
O objetivo acrescentar o caminho para o diretrio bin AIR SDK lista de maneira que o programa de comando possa encontrar as ferramentas ADT e ADL. Supondo que tenha colocado o AIR SDK em C:\SDKs\AIR, voc pode adicionar a entrada do caminho correto com o seguinte procedimento:
1 Abra a caixa de dilogo Propriedades do Sistema no Painel de Controle ou clique no cone Meu Computador e
306
5 V at o final do texto no campo de valor Varivel. 6 Digite o seguinte texto no final do valor atual:
;C:\SDKs\AIR\bin
Se voc tiver alguma janela de comando aberta, observe que os ambientes no sero atualizados. Abra uma nova janela de comando e digite o seguinte comando para verificar se os caminhos esto configurados corretamente:
adt -version
Se voc alterar o local do AIR SDK, ou adicionar uma nova verso, lembre-se de atualizar a varivel do caminho.