Invocando UTI a partir de aplicativos Adobe AIR

Este artigo foi escrito originalmente em Inglês. Textos em outros idiomas foram fornecidos via tradução automática.

Adobe Flash e AIR são plataformas ubíquas para desenvolver aplicações de internet rica. O Flash é usado para aplicativos baseados em navegador e AIR é utilizada para desenvolver aplicações de plataforma nativa. Ambas as plataformas têm apoio considerável para a globalização. Recursos de globalização habilitação como formatação do locale / parsing, colação, case transforms, localização e multi-lingual de processamento de texto são suportados por ambas as plataformas. Mas alguns recursos mais globalização como a normalização de texto, Transliteração, Unicode propriedades de caracteres, conversões de codificação, detecções charset, Utilitários seqüência de caracteres Unicode etc ainda estão desaparecidas no Adobe AIR e plataformas em Flash. Uma das principais razões para não adicionar todos esses recursos dentro das plataformas Adobe tempo de execução é o tamanho do software.

Para superar o problema limitação de tamanho, Adobe AIR e Flash pode chamar os serviços de bibliotecas dinâmicas externas por meio do ActionScript. Existem algumas bibliotecas conhecidas externo, que tem suporte a globalização ricos, como UTI, GNU glib, Verisign IDN biblioteca para citar alguns. Felizmente a próxima Adobe AIR 3.0 (agora disponível como Adobe pré-lançamento) tem um recurso maravilhoso chamado ActionScript extensões nativas, que é cerca de interface de programação ActionScript para uma biblioteca de código nativo como o MS Windows DLL, Os X FrameWork, Android JAR ou biblioteca compartilhada ou iOS biblioteca estática. Por favor, consulte Adobe AIR3 site beta http://labs.adobe.com/technologies/flashplatformruntimes/air3/ sobre como baixar e participar do Adobe AIR de pré-lançamento. Por favor, tome nota que este recurso é _somente_ extensões nativas disponíveis no Adobe AIR plataforma, não na plataforma Flash.

Neste blog, Eu demonstrei a amostra (Baixarair_icu )aplicativo para invocar UTI de um aplicativo Adobe AIR em plataforma Windows. Os leitores são advertidos de que este é apenas software amostra ilustração e por nenhum software de qualidade dos meios de produção. Por isso os leitores devem exibir discrição no uso deste software como é. O exemplo ilustra UTI quebra de palavra, quebrando sentença, utf-conversão e verificação de propriedade de caracteres Unicode.

Você vai precisar do software a seguir para construir uma extensão da UTI para a plataforma AIR.

1 Criando uma extensão de ICU para Adobe AIR

Adobe AIR extensões nativas t, também conhecido como 'ane' ou 'ANE "os processos foram arquivados pacotes. Estes consistem em

  • Classes wrapper ActionScript pôr em DLLs externas
  • O DLLs externas
  • Detalhes do arquivo XML descrevendo de DLLs externas

Os arquivos arquivados ANE são usados ​​apenas como bibliotecas SWC na integração em um aplicativo AIR. Em outras palavras, ANE arquivo é uma biblioteca e tem público ActionScript APIs.

Cobrindo todos os detalhes sobre a extensão ActionScript é demais para este artigo no blog, mas eu vou explicar os passos para criar esse exemplo e executar. Abaixo estão as etapas seqüenciais e comandos.

1.1 Criando uma DLL de extensão para AIR Windows

1)A pasta tem AirIcuExtensionWin 'AirIcuExtension.sln "a solução do Visual Studio. Abrir esta em MS VS2010.

2)O AIRIcuExtension.cpp arquivo tem o código necessárias para interface com Adobe AIR 3 beta 2. Tem também as rotinas wrapper chamar funções C UTI.

3)Este é um projeto DLL ea saída é construir AirIcuExtension.dll

1.2Construção ActionScript Biblioteca

1)Construir a biblioteca de actionscript utilizando o comando abaixo.

C:\Flex4.5.1 bin compc.exe-source-path src-include-classes com.adobe.extensions.AirIcuExtension:\air3_beta2 frameworks libs ar airglobal.swc saída-bin AirIcuExtension.swc

O AirIcuExtension.as arquivo na pasta src com adobe extensions tem o AirIcuExtension public class que chama as rotinas de UTI. Nesta amostra, chamando breaker sentença UTI, disjuntor está, normalizador, utf-conversão e de propriedade de caracteres Unicode foram ilustradas.

1.3 Embalando extensão nativa do ActionScript

Abra o bin AirIcuExtension.swc é um arquivo zipado. Abri-lo usando WinRAR ou WinZip programa e extrair o library.swf arquivo no pacote para o swc AirIcuExtension / bin pasta.

A pasta src resources contém o arquivo extension.xml, AirIcuExtension.dll e UTI dlls icudt48dll, icuuc48dll, icuio48.dll e icuin48.dll. O arquivo external.xml define os detalhes biblioteca externa para AIR runtime.

Para simplificar, coloque o AirIcuExtension.dll, UTI dlls e arquivos em extension.xml AirIcuExtension bin pasta. Todos esses arquivos são compactados em um arquivo zipado chamado AiricuExtension.ane usando o seguinte comando.

C:\air3_beta2 bin adt-package-storetype pkcs12-storepass <senha> -Keystore <Certificado de AIR> -tsa nenhum alvo ane AirIcuExtension.ane extension.xml-swc AirIcuExtension.swc-plataforma Windows x86-library.swf AirIcuExtension.dll icudt48.dll icuin48.dll icuio48.dll icuuc48.dll

Utilização Adobe FlashBuilder4.x ou C:\air3_beta2 bin ADT programa, pode-se fazer um certificado AIR.

A saída é um arquivo AirIcuExtension.ane no AirIcuExtension / bin pasta.

1.4 Criando o programa de teste AirIcuExtensionTest.mxml

Agora que nós construímos e embalados o pacote de extensão nativa AiricuExtension.ane, estamos readu usar isso e chamar os serviços de UTI em um programa de teste.

O AirIcuExtensionTest pasta src contém o arquivo de teste AirIcuExtensionTest.mxml. O arquivo descritor AirIcuExtensionTest-app.xml tem. Usando o compilador mxml, AirIcuExtensionTest.swf é construído da seguinte maneira no AirIcuExtensionTest pasta.

C:\Flex4.5.1 bin compc.exe mxmlc configname = ar-external-library-path .. AirIcuExtension bin AirIcuExtension.ane saída-bin-debug AirIcuExtensionTest.swf — src AirIcuExtensionTest.mxml

A saída de arquivos swf AirIcuExtensionTest.swf é colocado na pasta bin-debug.

1.5 Criando um package de AIR para a execução de AirIcuExtensionTest

O passo final é o pacote AirIcuExtensionTest acima. Swf e AirIcuExtension.ane arquivos em uma pasta executável AIR.

C:\air3_beta2 bin adt-package-XnoAneValidate-storetype pkcs12-storepass <senha> -Keystore <Certificado de AIR> -tsa nenhum alvo-bundle AirIcuExtensionTest.air AirIcuExtensionTest-app.xml AirIcuExtensionTest.swf-extdir .. .. AirIcuExtension bin

A saída do comando acima é uma pasta AirIcuExtensionTest.air. Dentro da pasta, lá é AirIcuExtensionTest.exe. Você pode executar e ver o resultado.

2 Conclusão

Este exemplo ilustra como invocar ICU do ActionScript. A AIR extensão UTI é fácil de construir usando o à disposição do público Adobe Flex SDK e AIR3 Beta 2 SDKs. Será muito mais fácil fazer tudo isso no futuro Adobe Flash Builder IDE usando GUI. As vantagens deste recurso são

  • AIR desenvolvedores que procuram desenvolver os pedidos internacionais para desktop ou móvel têm o poder de UTI na mão. Muitas características Unicode, conversões de codificação, IDN conversão utilitários, processamento de strings, transforma e muitas características mais internacional pode ser facilmente codificado.
  • A extensão de UTI materna, uma vez construída pode ser usado qualquer desenvolvedor qualquer, pois é uma biblioteca.
  • O Actionscript APIs chamando UTI podem ser codificados utilizando as mesmas assinaturas como UTI C API. Isso elimina a curva de aprendizagem.
  • Desde UTI é em código nativo, desempenho não seja comprometida.
  • Uma vez que é UTI, os desenvolvedores podem esperar da cruz-plataforma comportamento em programas AIR.
  • Uma vez que a extensão é uma biblioteca AIR, Atualizações de UTI pode ser facilmente re-embalados para o arquivo ane.

No futuro, uma vez AIR3 é liberado, um total de extensão desenvolvido na UTI nativa com definições adequadas API será um grande projeto de globalização.

Esta entrada foi publicada em Inglês, Tecnologia, Tutoriais e marcou , , . Bookmark o permalink.

19 Responses to Invocando UTI a partir de aplicativos Adobe AIR

  1. Joggl89 diz:

    Ei,

    nice post.
    Eu acho que isso não vai funcionar com Windows 7 64 bit, obviamente ^ ^.

    Talvez você poderia oferecer algo para 64 tão bem :)

    Saúde,
    Joggl89

  2. Harish Suvarna diz:

    Obrigado pelo comentário.
    Você está certo. As dlls do ICU 64 bits não funcionam com AIR 3.0. Lembro-me que não foi possível compilar a extensão DLL em VS2010. AIR 3.0 ainda não suporte 64 bits.
    Temos que esperar até que este suporte exista. Aguardemos após o AIR 3.0.

    Obrigado,
    Harish

  3. Pingback: Extensões AIR Native Exemplo Olá Mundo & Script ANT « Aboutme – Blog

  4. Obrigada por me começou em extensões nativas. Eu coloquei um exemplo Olá mundo & formiga roteiro on-line, com base na informação neste post. Você pode ler sobre ele & verificá-la em http://blog.aboutme.be/2011/09/12/air-native-extensions-hello-world-example-ant-script/

  5. Michael Choi diz:

    Eu não posso construir ane usando adt. Corri ADT em C:\air3_RC1 samples air_icu AirIcuExtension bin após a definição “set path = c:\air3_RC1 bin;%% PATH”. Tenho seguintes arquivos no diretório AirIcuExtension bin , mas eu tenho “sistema não pode encontrar o arquivo especificado.” Perdi alguma coisa?

    Obrigado,

    09/02/2011 03:46 PM 9,216 AirIcuExtension.dll
    09/23/2011 03:16 PM 2,712 AirIcuExtension.swc
    08/19/2011 08:29 AM 514 extension.xml
    07/19/2011 04:43 PM 18,277,376 icudt48dll
    07/19/2011 04:36 PM 1,313,792 icuin48.dll
    07/19/2011 04:42 PM 36,352 icuio48.dll
    07/19/2011 04:33 PM 1,043,456 icuuc48dll
    09/23/2011 03:16 PM 1,867 library.swf

  6. Harish Suvarna diz:

    Qual arquivo ele não pode encontrar?
    É adt? ou o arquivo de licença de ar?
    Você está no diretório C:\air3_RC1 samples air_icu AirIcuExtension bin ao executar adt?

    Há arquivos somany envolvidos que você tiver esse erro igual a mim quando eu corri.

    • Michael Choi diz:

      Harish, Obrigado pela ajuda.
      Mensagem de erro não foi suficiente detalhe para ver qual arquivo estava faltando. ADT corre tudo bem. O que é o ar arquivo de licença? Eu não posso ver qualquer instrução sobre o arquivo de licença. Que significa certificado AIR? Este erro é gerado a partir de executar adt na etapa 1.3.

      Obrigado,

  7. benjamin diz:

    Isto é poderoso, Espero que possamos ver mais de ANES no futuro próximo :)
    Muito bem construir sobre win7 x64 seguintes passos de sua pesquisa.
    Eu só precisava copiar manualmente os arquivos * 48.dll no ar dir, Devo ter perdido embalagem de algo a respeito…

    Obrigado por novos conhecimentos!

  8. James diz:

    Pelo amor de Deus, por favor, nos dê um exemplo de AIR 3.0 NativeExtension com C #. Dll.

    C # é mais popular em. NET framework hoje. Fui à procura amostra C # para NativeExtension. Dll de semanas e não consegui encontrar um único exemplo.

    • harish suvarna diz:

      Oi James,
      Desculpe, meu único exemplo ilustrado C / C, mas não C #.
      Uma forma de tentar C # é dll você deve chamar dll C # a partir de uma interoperabilidade C usando dll (Apenas google para chamar C # do C ). O C dll deve implementar todos AIR cola quadro necessário como no meu exemplo aqui. Este é apenas o meu palpite.

    • pascal diz:

      Olá James,
      onde você é capaz de fazer o trabalho com c #?
      Eu também estou procurando um exemplo em c #

  9. Pingback: Invocando UTI a partir de aplicativos Adobe AIR (Parte 2): usando o Flash Builder 4.6 » Globalização na Adobe

  10. akdsy diz:

    Depois que eu terminar todas as etapas, Eu tenho um problema quando eu executar o arquivo exe. No ar pasta
    Ele pula uma mensagem de e.g. ” não pode encontrar o componet icuuc48.dll”
    mas eu encontrei o arquivo “icuuc45dll” na pasta Windows x 86 ~ como o seguinte

    \AirIcuExtensionTest.air\META-INF\AIR\extensions\com.adobe.extensions.AirIcuExtension\META-INF\ANE\Windows-x86

    Posso perder alguma coisa?

    obrigado
    P.S. por favor, perdoe o meu Inglês pobres ><

  11. harish suvarna diz:

    O icuuc48.dll devem estar presentes na mesma pasta onde o arquivo. Exe reside. De fato todas as dlls UTI deve estar lá.

    A outra forma é adicionar o icu localtion pasta dll para janelas variável de caminho.

Deixe uma resposta

Seu endereço de email não será publicado. Campos obrigatórios são marcados *

*

Você pode usar estas HTML tags e atributos: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>