La invocación de la UCI de aplicaciones de Adobe AIR

Este artículo fue originalmente escrito en Inglés. Texto en otros idiomas fue proporcionada por la traducción automática.

Adobe Flash y AIR son las plataformas en todas partes para desarrollar aplicaciones ricas de Internet. Flash se utiliza para aplicaciones basadas en navegador y el aire se utiliza para el desarrollo de aplicaciones nativas de la plataforma. Ambas plataformas tienen un apoyo considerable a la globalización. Características de la globalización como el formato de la habilitación en cuenta la localidad / análisis, colación, caso se transforma, localización y en varios idiomas el renderizado de texto son compatibles con ambas plataformas. Sin embargo, algunos más características de globalización, como la normalización de texto, transcripción, Propiedades de caracteres Unicode, conversiones de codificación, detecciones charset, Utilidades de cadena Unicode etc siguen desaparecidos en el Adobe AIR y Flash de las plataformas. Una de las razones principales para no añadir todas estas características dentro de las plataformas Adobe tiempo de ejecución es el tamaño del software.

Para superar el problema de limitación de tamaño, Adobe AIR y Flash se pueden invocar los servicios de bibliotecas externas dinámica a través de ActionScript. Hay algunas librerías conocidas externos que cuentan con el apoyo globalización ricos, como en la UCI, Simplista GNU, Verisign IDN biblioteca para nombrar unos pocos. Por suerte la próxima Adobe AIR 3.0 (ahora disponible en Adobe pre-lanzamiento) tiene una característica maravillosa que se llama ActionScript extensiones nativas, que se refiere a la interfaz de programación ActionScript para una biblioteca de código nativo, como MS Windows DLL, Os X FrameWork, Android JAR o librería o biblioteca estática iOS. Por favor, vea Adobe AIR3 sitio beta http://labs.adobe.com/technologies/flashplatformruntimes/air3/ sobre cómo descargar y participar en el Adobe AIR de pre-lanzamiento. Por favor tome nota que esta característica es _sólo_ extensiones nativas disponibles en la plataforma de Adobe AIR, no en la plataforma Flash.

En este blog, Yo demuestro una muestra (Descargar air_icu ) aplicación para invocar la UCI desde una aplicación de Adobe AIR en la plataforma Windows. Se recuerda al lector que esto es sólo el software muestra la ilustración y no por medio de software de calidad de producción. Por lo tanto, los lectores deben mostrar discreción en el uso de este software, ya que es. La muestra ilustra romper UCI palabra, sentencia de última hora, utf-conversión y la verificación de caracteres Unicode de propiedad.

Usted necesitará el siguiente software para construir una extensión de la UCI para la plataforma AIR.

  • MS Visual Studio 2010 (para construir la extensión DLL AIR código nativo en C / C)
  • Adobe Flex SDK 4.5.1 (http://opensource.adobe.com/wiki/display/flexsdk/Download+Flex+4.5). Descargar este a C:\Flex4.5.1.
  • Adobe Air 3 Beta2 descarga (Para construir la extensión de Adobe Actionscript) de http://labs.adobe.com/technologies/flashplatformruntimes/air3/ . Descomprimir esto en a C:\Flex4.5.1. Este paso sobrescribe los componentes relacionados con el aire en Flex4.5.1 SDK de Adobe con la última beta2 AIR3. También hay que tener una copia en C:\air3_beta2 carpeta.
  • El pre-lanzamiento de Adobe Flash de sitio web en tiempo de ejecución tiene más información, documentación y ejemplos sobre cómo utilizar las extensiones de ActionScript. La pestaña 'detalles del producto en el http://labs.adobe.com/technologies/flashplatformruntimes/air3/ página web tiene un FAQ sobre la manera de unirse a la Adobe pre-lanzamiento del programa.
  • UCI 4.8 binarios (http://site.icu-project.org/download/48). Descargar Windows de 32 bits VC2010 zip. Descomprimir las bibliotecas en cualquier carpeta. Mi muestra descargado en C:\icu icu4.8.1 carpeta win32 .--

1 Edificio extensión UCI para Adobe AIR

Adobe AIR t nativo extensiones, también conocida como "anemia" o archivos "ENA" se archivan los paquetes. Estos consisten en

  • Clases de ActionScript envoltorio poner en DLLs externas
  • Los archivos DLL externa
  • XML que describe los detalles del archivo de archivos DLL externa

Los archivos archivados ANE se utilizan igual que las bibliotecas de SWC en la integración en una aplicación AIR. En otras palabras, ANE es un archivo de la biblioteca pública y se ha API de ActionScript.

Cubriendo todos los detalles sobre la extensión de ActionScript es demasiado para este artículo del blog, pero voy a explicar los pasos para crear esta muestra y ejecutar. A continuación se muestran los pasos secuenciales y los comandos.

1.1 DLL de Windows del edificio AIR UCI Extensión

1) La carpeta AirIcuExtensionWin tiene el estudio Visual solución "AirIcuExtension.sln '. Abrir en MS VS2010.

2) El AIRIcuExtension.cpp archivo tiene el código necesario necesario para interactuar con Adobe AIR 3 beta 2. También tiene las rutinas de envoltura llamadas UCI funciones C.

3) Este es un proyecto DLL y el resultado de la compilación es AirIcuExtension.dll

1.2 Edificio ActionScript Library

1) Construir la biblioteca ActionScript mediante el siguiente comando.

C:\-Path compc.exe-source-src incluir clases com.adobe.extensions.AirIcuExtension-library-path externa-Flex4.5.1 bin C:\air3_beta2 marcos libs aire airglobal.swc salida bin AirIcuExtension.swc

El AirIcuExtension.as archivo en la carpeta src com Adobe extensiones tiene la AirIcuExtension clase pública que llama a la rutina en la UCI. En esta muestra, llamando a la UCI interruptor sentencia, palabra interruptor, normalizador, utf-conversión y la propiedad de caracteres Unicode se han ilustrado.

1.3 Embalaje extensión nativa ActionScript

Abra la bandeja de AirIcuExtension.swc es un archivo comprimido. Abrirlo con WinRAR o WinZip programa y extraer el library.swf archivo en el paquete de SWC en el AirIcuExtension / bin carpeta.

La carpeta src recursos contiene el archivo extension.xml, AirIcuExtension.dll y la UCI dlls icudt48.dll, icuuc48.dll, icuio48.dll y icuin48.dll. El archivo external.xml define los detalles de la biblioteca externa a AIR runtime.

Por razones de simplicidad, lugar de la AirIcuExtension.dll, UCI dlls y archivos en extension.xml AirIcuExtension bin carpeta. Todos estos archivos son empaquetados en un archivo comprimido llamado AiricuExtension.ane con el siguiente comando.

C:\air3_beta2 bin adt-package-storetype pkcs12-storepass <passwd> -Keystore <AIR certificado> -TSA no son objeto de ane-AirIcuExtension.ane extension.xml swc AirIcuExtension.swc plataformas Windows x86 library.swf AirIcuExtension.dll icudt48.dll icuin48.dll icuio48.dll icuuc48.dll

Uso Adobe FlashBuilder4.x o C:\air3_beta2 bin ADT programa, se puede hacer un certificado de AIR.

La salida es un archivo AirIcuExtension.ane en el AirIcuExtension / bin carpeta.

1.4 La construcción de la AirIcuExtensionTest.mxml programa de prueba

Ahora que hemos construido y empaquetado del paquete de la extensión nativa AiricuExtension.ane, estamos readu a usarlo y llamar a los servicios de la UCI en un programa de prueba.

El AirIcuExtensionTest carpeta src contiene el archivo de prueba AirIcuExtensionTest.mxml. El archivo descriptor AirIcuExtensionTest-app.xml tiene los detalles de extensión nativa. Utilizando el compilador MXML, AirIcuExtensionTest.swf se construye de la siguiente manera en AirIcuExtensionTest carpeta.

C:\Flex4.5.1 bin compc.exe mxmlc configname = aire exterior-library-path .. AirIcuExtension bin AirIcuExtension.ane-Bandeja de salida de depuración AirIcuExtensionTest.swf — src AirIcuExtensionTest.mxml

La salida swf AirIcuExtensionTest.swf se coloca en la carpeta bin-debug.

1.5 La construcción de paquete de AIR para ejecutar AirIcuExtensionTest

El último paso es empaquetar el AirIcuExtensionTest arriba. SWF y archivos AirIcuExtension.ane en una carpeta ejecutable AIR. Ejecute el siguiente comando

C:\air3_beta2 bin adt-package-XnoAneValidate-storetype pkcs12-storepass <passwd> -Keystore <AIR certificado> -TSA no son objeto de paquete AirIcuExtensionTest.air AirIcuExtensionTest-app.xml AirIcuExtensionTest.swf-extdir .. .. AirIcuExtension bin

La salida del comando anterior es una carpeta AirIcuExtensionTest.air. Dentro de la carpeta, hay es AirIcuExtensionTest.exe. Usted puede ejecutar y ver la salida.

2 Conclusión

La muestra ilustra la manera de invocar a la UCI de ActionScript. La extensión de AIR en la UCI es fácil de construir con la disposición del público Adobe Flex SDK y la Beta AIR3 2 SDKs. Será mucho más fácil hacer todo esto en el futuro, Adobe Flash Builder IDE con interfaz gráfica de usuario. Las ventajas de esta función

  • Los desarrolladores de AIR que buscan desarrollar las solicitudes internacionales de escritorio o móviles tienen el poder de la UCI a la mano. Muchas de las características Unicode, conversiones de codificación, IDN conversión de utilidades, procesamiento de cadenas, transforma y muchas más características internacionales pueden ser fácilmente codificado.
  • El nativo de extensión de la UCI, una vez incorporado se puede utilizar cualquier desarrollador de cualquier, ya que es una biblioteca.
  • La API de ActionScript llamada unidad de cuidados intensivos pueden ser codificados utilizando las mismas firmas que la UCI de la API C. Esto elimina la curva de aprendizaje.
  • Puesto que la UCI está en código nativo, el rendimiento no se vea comprometida.
  • Ya que es en la UCI, los desarrolladores pueden esperar multiplataforma comportamiento de los programas AIRE.
  • Ya que la extensión es una biblioteca de AIR, Cambios en la UCI puede ser fácilmente re-empaquetado en el archivo ane.

En el futuro, cuando se libera AIR3, una extensión de pleno derecho en la UCI nativos con una adecuada definición de la API será un gran proyecto de globalización.

19 reflexiones sobre “La invocación de la UCI de aplicaciones de Adobe AIR

  1. Hey,

    buen puesto.
    Supongo que esto no funcionará con Windows 7 64 obviamente poco ^ ^.

    Tal vez usted podría brindar algo de 64 tan bien :)

    Aplausos,
    Joggl89

  2. Gracias por el comentario.
    Usted tiene razón. UCI de 64 bits dlls donot trabajo en AIR 3.0. Recuerdo que no podía generar el archivo DLL de extensión en VS2010. AIR 3.0 no es compatible aún con 64 bits.
    Tenemos que esperar hasta que se apoya. Vamos a esperar a después de Air3.0.

    Gracias,
    Harish

  3. Pingback: Aire nativo extensiones Ejemplo Hola Mundo & ANT script « Aboutme – Blog

  4. No se puede construir usando ane adt. Corrí adt en C:\air3_RC1 samples air_icu AirIcuExtension bin después de establecer “establecer path = c:\air3_RC1 bin;%PATH%”. Tengo los siguientes archivos en AirIcuExtension bin, pero tengo “sistema no puede hallar el archivo especificado.” ¿Me he perdido algo?

    Gracias,

    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 icudt48.dll
    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 icuuc48.dll
    09/23/2011 03:16 PM 1,867 library.swf

  5. ¿Qué archivo que no puede encontrar?
    ¿Es adt? o el aire archivo de licencia?
    ¿Está usted en el directorio C:\air3_RC1 samples air_icu AirIcuExtension bin al ejecutar ADT?

    Hay archivos somany involucrados que se encuentra con este error al igual que yo cuando me corrió por primera vez.

    • Harish, gracias por la ayuda.
      Mensaje de error no fue suficiente detalle para ver qué archivo que faltaba. ADT funciona bien. ¿Qué es el archivo de licencia de aire? No puedo ver ninguna instrucción sobre el archivo de licencia. Qué significa certificado de AIR? Este error se produce a partir de ejecutar ADT en el paso 1.3.

      Gracias,

  6. Esto es de gran alcance, Espero que podamos ver más de ANES en un futuro próximo :)
    Bien se basan en win7 x64 siguientes pasos de su investigación.
    Sólo tenía que copiar manualmente los archivos * 48.dll en el aire dir, I de embalaje debe de haber perdido algo en relación con…

    Gracias por los nuevos conocimientos!

    • Hola James,
      Triste, En el ejemplo mostrado en la C, no sólo mi C / C #..
      C # Una forma de tratar un archivo DLL, debe llamar a la DLL del lenguaje C # utilizando la interoperabilidad de C (DLL (C). La dll C debe implementar todo el aire necesario pegamento marco como en mi ejemplo aquí. Esto es sólo mi suposición.

  7. Pingback: La invocación de la UCI de aplicaciones de Adobe AIR (Parte 2): el uso de Flash Builder 4.6 » Adobe globalización

  8. Después de terminar todas las medidas, Tengo un problema al ejecutar el archivo exe. Carpeta en el aire
    Se salta un mensaje de e.g. ” no puede encontrar la componet icuuc48.dll”
    pero he encontrado el archivo “icuuc45.dll” en la carpeta de Windows 86 ~ al igual que los siguientes

    \AirIcuExtensionTest.airMETA-INFAIRextensionscom.adobe.extensions.AirIcuExtensionMETA-INFANEWindows-x86

    ¿Me falta algo?

    gracias
    P.S. por favor perdonen mi mala Inglés ><

  9. El icuuc48.dll debe estar presente en la misma carpeta donde está el archivo. Exe reside. De hecho todos los archivos DLL en la UCI debe estar allí.

    La otra forma consiste en agregar la dll UCI localtion carpeta a la variable PATH de Windows.

Deja un comentario