SlideShare a Scribd company logo
1 of 9
Download to read offline
  1	
  
Creación de Extensiones Nativas(ANE) [iOS, Air]
	
  
La creación de extensiones nativas son fundamentales, mas que nada para el
buen funcionamiento de las aplicaciones desarrolladas con Adobe AIR(AS3).
Las "Apps" creadas con AIR carecen de muchas funcionalidades de las cuales le
dan un valor agregado a la aplicación, y para que el usuario tenga una
"Experiencia de usuario" muy buena, y este no note que la aplicación no esta
desarrollada con código nativo.
Las extensiones nativas(ANE) son una combinación de código Action
Script(AS3), Android y/ó Objective C, las cuales se comunican entre si, y de
este modo puedan ejecutarse funcionalidades que con ActionScript no es posible.
Ahora se mostrara paso por paso como se crean dichas extensiones:
NOTA: decidí que se empiece por objetive c para mejor explicación.
1) necesitamos tener instalado la ultima versión de XCode que en este caso es la
4.6.3
Ahora lo ejecutamos y aparecerá una ventana como la siguiente de la cual
seleccionamos la primer opción que es "Créate a new Xcode project".
Una vez que se muestra esta ventana en el menú que se encuentra de lado
izquierdo, seleccionamos iOS y dentro de esa opciones seleccionaremos
  2	
  
Framework & Library, se mostrara una opciones llamada Cocoa Touch Static
Library y Siguiente:
Ahora le daremos un nombre a nuestro proyecto que en este caso será
"SerialNumberLib", llenamos los demás campos en mi caso puse esos datos pero
pueden ponerlo como crean conveniente.
Una vez ya llenados estos campos presionamos "Next".
En la siguiente ventana se nos pediré la ubicación en donde queremos que se
guarde el proyecto, ya que se allá elegido la ubicación presionamos "Create".
  3	
  
Una vez creado el proyecto se abre el IDE en el cual podemos observar en el lado
izquierdo se muestra como esta organizado el proyecto en carpetas y las clases.
Ahora como se darán cuenta crea 2 archivos que es la interfaz(.h) donde se
declaran las variables, y en la implementación(.m) es en donde se utilizan los
métodos y variables declaradas en la interfaz.
Ahora la interfaz(.h) no la necesitaremos y la eliminaremos, pero la sustituiremos
con otra interfaz esta desarrollada por Adobe la cual se encuentra descargando el
SDK para Air mediante la siguiente liga http://www.adobe.com/devnet/air/air-sdk-
download.html.
Una vez descargado el SDK lo descomprimimos y en la carpeta include se
encuentra la interfaz que ocuparemos llamada FlashRuntimeExtensions.h, la
arrastraremos o copiamos dentro del proyecto. una ves hecho eso, en la
implementación se importa la interfaz añadida. El motivo por el cual se añadió
dicha interfaz, fue para poder comunicarse entre código Nativo y ActionScript.
El motivo del desarrollo de esta extensión nativa(ANE) fue para cubrir la necesidad
de obtener el numero serial del dispositivo y el UDID. Para obtener dicho numero
  4	
  
de serie, fue necesario recargar un método llamado UIDevice, el motivo de hacer
este paso, es que no se puede obtener directamente, para poder obtenerlo(el
numero de serial) se es necesario una librería llamada IOKit la cual no esta
disponible para iOS y solo para el desarrollo de aplicaciones de escritorio, es por
eso que se hace mediante código para poder llamar dicha librería.
Para esto se creara una clase que en mi caso llamare SerialLib, al momento de
crearla se crearan los 2 archivos por default(.h, .m).
Y la estructura de las carpetas y clases queda de la siguiente forma.
Al terminar de hacer los métodos correspondientes para el funcionamiento de las
clases se presiona Cmd+b para compilar, una ves hecho esto en la carpeta
Products se genera un archivo .a el cual ocuparemos en un momento mas
adelante.
Eso seria todo por parte en objective c ahora se explicara lo que se hace en
FlashBuilder.
Air
Ahora crearemos un proyecto en Flex con el cual se desarrollara la parte que se
comunicara con el código nativo creado previamente.
Abrimos nuestro IDE llamado FlashBuilder
  5	
  
Una vez cargado nuestro IDE crearemos un proyecto de tipo librería presionando
en el menú superior File/New/Flex Library Project.
Aparecerá la siguiente ventana en el cual pondremos el nombre de
nuestra librería que en este caso seria LibrarySerialDevice, lo demás lo dejamos
como esta y damos Finish.
  6	
  
ya creado nuestro proyecto, default viene sin clases que ejecutar, para esto
crearemos una clase la que llamaremos SerialNumberController.as.
NOTA: el código viene en el link de la descripción de este tutorial.
También crearemos 2 XML, ya que son necesarios para la comunicación entre
ambas librerías la primera la llamaremos extension.xml, y su estructura debe de
ser de la siguiente manera:
<extension	
  xmlns="http://ns.adobe.com/air/extension/3.8"]]	
  >	
  /**se	
  especificara	
  versión	
  del	
  SDK	
  de	
  
Air	
  se	
  compilo	
  la	
  libreria*/	
  	
  
	
  	
  	
  	
  <id]]	
  >	
  com.hovanetworks.serialnumber</id]]	
  >	
  /**Se	
  establece	
  un	
  ID	
  entre	
  el	
  XML	
  y	
  la	
  clase	
  de	
  
de	
  Air	
  (puede	
  ser	
  cual	
  sea)*/	
  	
  
	
  	
  	
  	
  <versionNumber]]	
  >	
  1</versionNumber]]	
  >	
  /**versión	
  que	
  tendra	
  el	
  .ANE	
  final*/	
  	
  
	
  	
  	
  	
  <platforms]]	
  >	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  <platform	
  name="iPhone-­‐ARM"]]	
  >	
  /**Plataformas	
  de	
  la	
  cuales	
  les	
  dara	
  soporte	
  el	
  ANE	
  
final(iOS,Android,Windows,Mac)*/	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  <applicationDeployment]]	
  >	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  <nativeLibrary]]	
  >	
  libSerialNumberLib.a</nativeLibrary]]	
  >	
  /**nombre	
  de	
  la	
  
extensión	
  generada	
  en	
  Objective	
  c*/	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  <initializer]]	
  >	
  LNGenericANEInitializer</initializer]]	
  >	
  /**nombre	
  del	
  metodo	
  que	
  
se	
  iniciliazara	
  en	
  objective	
  c	
  (debe	
  de	
  ser	
  el	
  mismo	
  nombre)*/	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  <finalizer]]	
  >	
  LNGenericANEFinalizer</finalizer]]	
  >	
  /**nombre	
  del	
  metodo	
  que	
  se	
  
finalizara	
  en	
  objective	
  c	
  */	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  </applicationDeployment]]	
  >	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  </platform]]	
  >	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  <platform	
  name="default"]]	
  >	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  <applicationDeployment/>	
  
	
  	
  	
  	
  	
  	
  	
  	
  </platform]]	
  >	
  	
  	
  	
  	
  
	
  	
  	
  	
  </platforms]]	
  >	
  	
  
	
  
</extension]] >
Una vez puestos esos datos ahora se realizara el siguiente XML el que lleva por
nombre platformoptions.xml en donde se agregan las extensiones de terceros
que queramos utilizar, y de las cuales no incluyen en el SDK de iOS por default.
pero como no usamos ninguna otra librería de terceros para realizar este ANE solo
lleva la siguiente información.
<platform	
  xmlns="http://ns.adobe.com/air/extension/3.8"]]	
  >	
  /**se	
  especifica	
  la	
  versión	
  del	
  SDK	
  de	
  
Air	
  se	
  compilo	
  la	
  libreria*/	
  	
  
	
  	
  	
  	
  <sdkVersion]]	
  >	
  6.1.0</sdkVersion]]	
  >	
  /**versión	
  en	
  la	
  que	
  se	
  compilo	
  la	
  libreria	
  en	
  objective	
  
c*/	
  	
  
	
  	
  	
  	
  <linkerOptions]]	
  >	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  <option]]	
  >	
  -­‐ios_version_min	
  6.1</option]]	
  >	
  /**versión	
  minima	
  en	
  la	
  cual	
  funcionara	
  el	
  
ANE*/	
  	
  
	
  	
  	
  	
  </linkerOptions]]	
  >	
  	
  
</platform]]	
  >	
  	
  
  7	
  
Ya teniendo estos archivos y haber limpiado el código en FlashBuilder, en el
proyecto de la librería en la carpeta bin se crea un archivo .swc, que en ese
caso tendrá este nombre y extensión LibrarySerialDevice.swc.
A este archivo generado le cambiaremos el tipo de extensión a .ZIP, abrimos el zip
y dentro de ella se encuentran 2 archivos, el que necesitaremos será el
"library.swf", este archivo es necesario para poder crear el archivo .ane.
Después de haber creado los archivos necesarios para la creación de
nuestra extensión nativa (ANE) ahora pondremos en una carpeta en la cual deben
de organizarse de las siguiente manera:
NOTA: El nombre de las carpetas, xml's debe de ser el mismo como los que se
muestran(extensión, platformoptions).
Ya acomodados los archivos, ahora lo compilaremos mediante línea de
comandos usando "adt", este se encuentra en la carpeta bin del SDK de Air que
descargamos.
ahora se abrira una terminal y se hará ellos siguientes pasos.
primero verificaremos si tenemos instalado el adt tecleando:
adt	
  -­‐version	
  
si nos muestra el siguiente mensaje
-­‐bash:	
  adt:	
  command	
  not	
  found	
  
  8	
  
Se tendrá que re direccionar el PATH de la siguiente forma:
export	
  
PATH=$PATH:/Users/AngelVazquez/Downloads/AdobeAIRSDK/bin/:/Users/AngelVazquez/Ad
obeAIRSDK/android/tools	
  
	
  
NOTA: yo lo tengo de esta forma ya que allí es donde se encuentra el SDK que
descargue.
Volvemos a teclear el comando para ver la versión de "adt" y si es que se hizo de
buena manera aparecerá el numero de la versión del "adt"
3.8.0.910	
  	
  
Ahora nos dirigimos en donde se encuentra nuestros archivos ya
organizados(mediante la consola). Una vez ya estando dentro de la carpeta
ejecutaremos el siguiente comando, que es con el cual se generara el ANE
adt	
  -­‐package	
  -­‐target	
  ane	
  SerialNumber.ane	
  extension.xml	
  -­‐swc	
  
serialNumberDevice.swc	
  -­‐platform	
  iPhone-­‐ARM	
  -­‐C	
  ios	
  .	
  -­‐platformoptions	
  
platformoptions.xml	
  -­‐platform	
  default	
  -­‐C	
  default .
Ya creado el archivo .ane lo copiamos dentro de la carpeta de las "libs" del
proyecto en done lo ocuparemos, ahora lo importamos al proyecto en donde lo
utilizaremos, damos clic derecho sobre el proyecto "Properties" se abrirá un
ventana y se realizara lo siguiente:
  9	
  
Buscamos la ubicación de nuestra librería la seleccionamos y presionamos "ok"
una vez ya agregada presionamos ok para volver a la aplicación ahora si ya
podremos utilizarla, la forma de hacerlo es muy sencilla es de la siguiente manera
var	
  numSerial:String	
  =	
  SerialNumberController.instance.getSerial();	
  
De esta manera ya obtendremos el numero del serial de nuestro dispositivo iOS.
NOTA: Para poder comprobar que sirve nuestra librería se debe de
hacer directamente en el dispositivo físico ya que en el emulador de Air suele
"tronar".
El código esta disponible en la URL que se encuentra en la descripción de este
archivo.

More Related Content

What's hot

Eclipse para novatos java
Eclipse para novatos javaEclipse para novatos java
Eclipse para novatos javamartaferrari
 
UDA-Plugin UDA. Guia de uso del plugin.
UDA-Plugin UDA. Guia de uso del plugin.UDA-Plugin UDA. Guia de uso del plugin.
UDA-Plugin UDA. Guia de uso del plugin.Ander Martinez
 
Manual codeblocks luis_ocampo
Manual codeblocks luis_ocampoManual codeblocks luis_ocampo
Manual codeblocks luis_ocampoluis_ocampo27
 
Componentes de eclipse
Componentes de eclipseComponentes de eclipse
Componentes de eclipsejaquiiMc
 
Tutorial netbeans
Tutorial netbeansTutorial netbeans
Tutorial netbeansMarthaa Hdz
 
Presentación de eclipse(componentes básicos)
Presentación de eclipse(componentes básicos)Presentación de eclipse(componentes básicos)
Presentación de eclipse(componentes básicos)Esmedc20
 
Grado 11 b visual basic equipo Azul
Grado 11 b visual basic equipo Azul Grado 11 b visual basic equipo Azul
Grado 11 b visual basic equipo Azul Juan pablo Obregon
 
Manual para visual_c_luis_ocampo
Manual para visual_c_luis_ocampoManual para visual_c_luis_ocampo
Manual para visual_c_luis_ocampoluis_ocampo27
 
Manual Code::Blocks lenguaje C++
Manual Code::Blocks lenguaje C++Manual Code::Blocks lenguaje C++
Manual Code::Blocks lenguaje C++Santiago Sarmiento
 
Mi primera-hora-con-eclipse
Mi primera-hora-con-eclipseMi primera-hora-con-eclipse
Mi primera-hora-con-eclipseariannalizeeth
 
Manual visualc
Manual visualcManual visualc
Manual visualcIsrael Mc
 
UDA-Plugin UDA. Guia de uso de plantillas
UDA-Plugin UDA. Guia de uso de plantillasUDA-Plugin UDA. Guia de uso de plantillas
UDA-Plugin UDA. Guia de uso de plantillasAnder Martinez
 
Tutorial de-codeblocks
Tutorial de-codeblocksTutorial de-codeblocks
Tutorial de-codeblocksMartinCetis109
 

What's hot (19)

File
FileFile
File
 
Eclipse para novatos java
Eclipse para novatos javaEclipse para novatos java
Eclipse para novatos java
 
UDA-Plugin UDA. Guia de uso del plugin.
UDA-Plugin UDA. Guia de uso del plugin.UDA-Plugin UDA. Guia de uso del plugin.
UDA-Plugin UDA. Guia de uso del plugin.
 
mysql y visual c++.pdf
mysql y visual c++.pdfmysql y visual c++.pdf
mysql y visual c++.pdf
 
Manual codeblocks luis_ocampo
Manual codeblocks luis_ocampoManual codeblocks luis_ocampo
Manual codeblocks luis_ocampo
 
Componentes de eclipse
Componentes de eclipseComponentes de eclipse
Componentes de eclipse
 
Manual del uso de codeblocks
Manual del uso de codeblocksManual del uso de codeblocks
Manual del uso de codeblocks
 
Tutorial netbeans
Tutorial netbeansTutorial netbeans
Tutorial netbeans
 
Eclipse
EclipseEclipse
Eclipse
 
Presentación de eclipse(componentes básicos)
Presentación de eclipse(componentes básicos)Presentación de eclipse(componentes básicos)
Presentación de eclipse(componentes básicos)
 
Grado 11 b visual basic equipo Azul
Grado 11 b visual basic equipo Azul Grado 11 b visual basic equipo Azul
Grado 11 b visual basic equipo Azul
 
Manual para visual_c_luis_ocampo
Manual para visual_c_luis_ocampoManual para visual_c_luis_ocampo
Manual para visual_c_luis_ocampo
 
Manual Code::Blocks lenguaje C++
Manual Code::Blocks lenguaje C++Manual Code::Blocks lenguaje C++
Manual Code::Blocks lenguaje C++
 
visual.basic
visual.basicvisual.basic
visual.basic
 
Mi primera-hora-con-eclipse
Mi primera-hora-con-eclipseMi primera-hora-con-eclipse
Mi primera-hora-con-eclipse
 
Manual visualc
Manual visualcManual visualc
Manual visualc
 
Eclipse 7u7r
Eclipse 7u7rEclipse 7u7r
Eclipse 7u7r
 
UDA-Plugin UDA. Guia de uso de plantillas
UDA-Plugin UDA. Guia de uso de plantillasUDA-Plugin UDA. Guia de uso de plantillas
UDA-Plugin UDA. Guia de uso de plantillas
 
Tutorial de-codeblocks
Tutorial de-codeblocksTutorial de-codeblocks
Tutorial de-codeblocks
 

Viewers also liked

Extensiones nativas presentación
Extensiones nativas presentaciónExtensiones nativas presentación
Extensiones nativas presentaciónAngel Vazquez
 
Artecort cortinas en valencia
Artecort cortinas en valenciaArtecort cortinas en valencia
Artecort cortinas en valenciaArtecort
 
Fatigue testing of a composite propeller blade using fiber optic strain sensors
Fatigue testing of a composite propeller blade using fiber optic strain sensorsFatigue testing of a composite propeller blade using fiber optic strain sensors
Fatigue testing of a composite propeller blade using fiber optic strain sensorsPhuong Dx
 
SFAH_Aarbog_8_1978
SFAH_Aarbog_8_1978SFAH_Aarbog_8_1978
SFAH_Aarbog_8_1978SFAH
 
ANÁLISE E SÍNTESE DE MODELOS PARA AVALIAÇÃO DA SUSTENTABILIDADE DE EMPRESAS
ANÁLISE E SÍNTESE DE MODELOS PARA AVALIAÇÃO DA SUSTENTABILIDADE DE EMPRESASANÁLISE E SÍNTESE DE MODELOS PARA AVALIAÇÃO DA SUSTENTABILIDADE DE EMPRESAS
ANÁLISE E SÍNTESE DE MODELOS PARA AVALIAÇÃO DA SUSTENTABILIDADE DE EMPRESASCarlos Fernando Jung
 
Multisourcing the new model for multi vendor customer care
Multisourcing the new model for multi vendor customer careMultisourcing the new model for multi vendor customer care
Multisourcing the new model for multi vendor customer careSteve Chirokas
 
Malakocktail N°78
Malakocktail N°78Malakocktail N°78
Malakocktail N°78Malakocktail
 
Foreign trade 100415
Foreign trade 100415Foreign trade 100415
Foreign trade 100415Jigmee
 
El futbol es solo para hombres...
El futbol es solo para hombres...El futbol es solo para hombres...
El futbol es solo para hombres...Marc Robert
 
Rugby posadas misiones
Rugby posadas misionesRugby posadas misiones
Rugby posadas misionesNico Gomez
 
CV - Mir Adnan
CV - Mir AdnanCV - Mir Adnan
CV - Mir AdnanMir Adnan
 
Warc analysis cannes effectiveness lions 2012
Warc analysis cannes effectiveness lions 2012Warc analysis cannes effectiveness lions 2012
Warc analysis cannes effectiveness lions 2012Brian Crotty
 
Trius sept12confpresentation
Trius sept12confpresentationTrius sept12confpresentation
Trius sept12confpresentationCompany Spotlight
 
Catálogo Lingerie LODY
Catálogo Lingerie LODYCatálogo Lingerie LODY
Catálogo Lingerie LODYDIAFORA
 

Viewers also liked (20)

Extensiones nativas presentación
Extensiones nativas presentaciónExtensiones nativas presentación
Extensiones nativas presentación
 
Artecort cortinas en valencia
Artecort cortinas en valenciaArtecort cortinas en valencia
Artecort cortinas en valencia
 
Brochure Curso - Taller BCM
Brochure Curso - Taller BCMBrochure Curso - Taller BCM
Brochure Curso - Taller BCM
 
Fatigue testing of a composite propeller blade using fiber optic strain sensors
Fatigue testing of a composite propeller blade using fiber optic strain sensorsFatigue testing of a composite propeller blade using fiber optic strain sensors
Fatigue testing of a composite propeller blade using fiber optic strain sensors
 
SFAH_Aarbog_8_1978
SFAH_Aarbog_8_1978SFAH_Aarbog_8_1978
SFAH_Aarbog_8_1978
 
ANÁLISE E SÍNTESE DE MODELOS PARA AVALIAÇÃO DA SUSTENTABILIDADE DE EMPRESAS
ANÁLISE E SÍNTESE DE MODELOS PARA AVALIAÇÃO DA SUSTENTABILIDADE DE EMPRESASANÁLISE E SÍNTESE DE MODELOS PARA AVALIAÇÃO DA SUSTENTABILIDADE DE EMPRESAS
ANÁLISE E SÍNTESE DE MODELOS PARA AVALIAÇÃO DA SUSTENTABILIDADE DE EMPRESAS
 
Agile Web Projects
Agile Web ProjectsAgile Web Projects
Agile Web Projects
 
Open Data
Open DataOpen Data
Open Data
 
Multisourcing the new model for multi vendor customer care
Multisourcing the new model for multi vendor customer careMultisourcing the new model for multi vendor customer care
Multisourcing the new model for multi vendor customer care
 
Malakocktail N°78
Malakocktail N°78Malakocktail N°78
Malakocktail N°78
 
Foreign trade 100415
Foreign trade 100415Foreign trade 100415
Foreign trade 100415
 
El futbol es solo para hombres...
El futbol es solo para hombres...El futbol es solo para hombres...
El futbol es solo para hombres...
 
Rugby posadas misiones
Rugby posadas misionesRugby posadas misiones
Rugby posadas misiones
 
Mode emploi Seevogh
Mode emploi SeevoghMode emploi Seevogh
Mode emploi Seevogh
 
Tecnologia Aplicadas a la Educacion
 Tecnologia Aplicadas  a la Educacion Tecnologia Aplicadas  a la Educacion
Tecnologia Aplicadas a la Educacion
 
CV - Mir Adnan
CV - Mir AdnanCV - Mir Adnan
CV - Mir Adnan
 
Uhmlg2011
Uhmlg2011Uhmlg2011
Uhmlg2011
 
Warc analysis cannes effectiveness lions 2012
Warc analysis cannes effectiveness lions 2012Warc analysis cannes effectiveness lions 2012
Warc analysis cannes effectiveness lions 2012
 
Trius sept12confpresentation
Trius sept12confpresentationTrius sept12confpresentation
Trius sept12confpresentation
 
Catálogo Lingerie LODY
Catálogo Lingerie LODYCatálogo Lingerie LODY
Catálogo Lingerie LODY
 

Similar to Creación de extensiones nativas

Configurar entorno Android
Configurar entorno AndroidConfigurar entorno Android
Configurar entorno Androidjubacalo
 
Como insertar una imagen
Como insertar una imagenComo insertar una imagen
Como insertar una imagenFANY_RDZ98
 
Curso de programación básico de android
Curso de programación básico de androidCurso de programación básico de android
Curso de programación básico de androidENANITOS120
 
Ingeniería inversa básica en android tomo ii
Ingeniería inversa básica en android tomo iiIngeniería inversa básica en android tomo ii
Ingeniería inversa básica en android tomo iiFreelance
 
Manual_java.pdf
Manual_java.pdfManual_java.pdf
Manual_java.pdfAnaLpez275
 
Manual de android parte 1
Manual de android parte 1Manual de android parte 1
Manual de android parte 1ftriana5000
 
como insertar imagen a una aplicación android de java.
como insertar imagen a una aplicación android de java.como insertar imagen a una aplicación android de java.
como insertar imagen a una aplicación android de java.RosaCGlez
 
De los temas de android (introduccion-10)
De los temas de android (introduccion-10)De los temas de android (introduccion-10)
De los temas de android (introduccion-10)equipotresamp
 
Instrucciones y estructuras
Instrucciones y estructurasInstrucciones y estructuras
Instrucciones y estructurasFernand Bernowly
 
Adelanto de los temas de android (introduccion-10)
Adelanto de los temas de android (introduccion-10)Adelanto de los temas de android (introduccion-10)
Adelanto de los temas de android (introduccion-10)equipotresamp
 
Manos a la obra con java y eclipse.
Manos a la obra con java y eclipse.Manos a la obra con java y eclipse.
Manos a la obra con java y eclipse.grachika
 
Como operar con_code...
Como operar con_code...Como operar con_code...
Como operar con_code...Luis TC
 
Como operar con code...
Como operar con  code...Como operar con  code...
Como operar con code...Luis TC
 

Similar to Creación de extensiones nativas (20)

Configurar entorno Android
Configurar entorno AndroidConfigurar entorno Android
Configurar entorno Android
 
Como insertar una imagen
Como insertar una imagenComo insertar una imagen
Como insertar una imagen
 
Instalacion jdk
Instalacion jdkInstalacion jdk
Instalacion jdk
 
Como insertar una imagen
Como insertar una imagenComo insertar una imagen
Como insertar una imagen
 
Curso de programación básico de android
Curso de programación básico de androidCurso de programación básico de android
Curso de programación básico de android
 
Ingeniería inversa básica en android tomo ii
Ingeniería inversa básica en android tomo iiIngeniería inversa básica en android tomo ii
Ingeniería inversa básica en android tomo ii
 
CRUD básico con Symfony
CRUD básico con SymfonyCRUD básico con Symfony
CRUD básico con Symfony
 
Manual_java.pdf
Manual_java.pdfManual_java.pdf
Manual_java.pdf
 
Manual de android parte 1
Manual de android parte 1Manual de android parte 1
Manual de android parte 1
 
como insertar imagen a una aplicación android de java.
como insertar imagen a una aplicación android de java.como insertar imagen a una aplicación android de java.
como insertar imagen a una aplicación android de java.
 
De los temas de android (introduccion-10)
De los temas de android (introduccion-10)De los temas de android (introduccion-10)
De los temas de android (introduccion-10)
 
Instrucciones y estructuras
Instrucciones y estructurasInstrucciones y estructuras
Instrucciones y estructuras
 
Adelanto de los temas de android (introduccion-10)
Adelanto de los temas de android (introduccion-10)Adelanto de los temas de android (introduccion-10)
Adelanto de los temas de android (introduccion-10)
 
Clases de Programación Android
Clases de Programación AndroidClases de Programación Android
Clases de Programación Android
 
Resumen semana2
Resumen semana2Resumen semana2
Resumen semana2
 
Manos a la obra con java y eclipse.
Manos a la obra con java y eclipse.Manos a la obra con java y eclipse.
Manos a la obra con java y eclipse.
 
2 poo u1 1 Introduccion
2 poo u1 1 Introduccion2 poo u1 1 Introduccion
2 poo u1 1 Introduccion
 
Como operar con_code...
Como operar con_code...Como operar con_code...
Como operar con_code...
 
Como operar con code...
Como operar con  code...Como operar con  code...
Como operar con code...
 
Como operar con code...
Como operar con  code...Como operar con  code...
Como operar con code...
 

More from Angel Vazquez

Conceptos básicos en java
Conceptos básicos en javaConceptos básicos en java
Conceptos básicos en javaAngel Vazquez
 
Visualización de videos en el player nativo de android con Air
Visualización de videos en el player nativo de android con AirVisualización de videos en el player nativo de android con Air
Visualización de videos en el player nativo de android con AirAngel Vazquez
 
Pseudocodigo para soluciones de estadistica
Pseudocodigo para soluciones de estadisticaPseudocodigo para soluciones de estadistica
Pseudocodigo para soluciones de estadisticaAngel Vazquez
 
Fragmentación vertical - MySQL
Fragmentación vertical - MySQLFragmentación vertical - MySQL
Fragmentación vertical - MySQLAngel Vazquez
 
Tesina Angel Vazquez - Streaming de Video implementando el protocolo RTMP y t...
Tesina Angel Vazquez - Streaming de Video implementando el protocolo RTMP y t...Tesina Angel Vazquez - Streaming de Video implementando el protocolo RTMP y t...
Tesina Angel Vazquez - Streaming de Video implementando el protocolo RTMP y t...Angel Vazquez
 
Streaming de video implementando el protocolo RTMP y tecnologias Open Source
Streaming de video implementando el protocolo RTMP y tecnologias Open SourceStreaming de video implementando el protocolo RTMP y tecnologias Open Source
Streaming de video implementando el protocolo RTMP y tecnologias Open SourceAngel Vazquez
 

More from Angel Vazquez (7)

Beacons para Retail
Beacons para RetailBeacons para Retail
Beacons para Retail
 
Conceptos básicos en java
Conceptos básicos en javaConceptos básicos en java
Conceptos básicos en java
 
Visualización de videos en el player nativo de android con Air
Visualización de videos en el player nativo de android con AirVisualización de videos en el player nativo de android con Air
Visualización de videos en el player nativo de android con Air
 
Pseudocodigo para soluciones de estadistica
Pseudocodigo para soluciones de estadisticaPseudocodigo para soluciones de estadistica
Pseudocodigo para soluciones de estadistica
 
Fragmentación vertical - MySQL
Fragmentación vertical - MySQLFragmentación vertical - MySQL
Fragmentación vertical - MySQL
 
Tesina Angel Vazquez - Streaming de Video implementando el protocolo RTMP y t...
Tesina Angel Vazquez - Streaming de Video implementando el protocolo RTMP y t...Tesina Angel Vazquez - Streaming de Video implementando el protocolo RTMP y t...
Tesina Angel Vazquez - Streaming de Video implementando el protocolo RTMP y t...
 
Streaming de video implementando el protocolo RTMP y tecnologias Open Source
Streaming de video implementando el protocolo RTMP y tecnologias Open SourceStreaming de video implementando el protocolo RTMP y tecnologias Open Source
Streaming de video implementando el protocolo RTMP y tecnologias Open Source
 

Recently uploaded

Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzzAlexandergo5
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificialcynserafini89
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesEdomar AR
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel tallerValentinaTabares11
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 

Recently uploaded (20)

Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzz
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificial
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, Aplicaciones
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel taller
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 

Creación de extensiones nativas

  • 1.   1   Creación de Extensiones Nativas(ANE) [iOS, Air]   La creación de extensiones nativas son fundamentales, mas que nada para el buen funcionamiento de las aplicaciones desarrolladas con Adobe AIR(AS3). Las "Apps" creadas con AIR carecen de muchas funcionalidades de las cuales le dan un valor agregado a la aplicación, y para que el usuario tenga una "Experiencia de usuario" muy buena, y este no note que la aplicación no esta desarrollada con código nativo. Las extensiones nativas(ANE) son una combinación de código Action Script(AS3), Android y/ó Objective C, las cuales se comunican entre si, y de este modo puedan ejecutarse funcionalidades que con ActionScript no es posible. Ahora se mostrara paso por paso como se crean dichas extensiones: NOTA: decidí que se empiece por objetive c para mejor explicación. 1) necesitamos tener instalado la ultima versión de XCode que en este caso es la 4.6.3 Ahora lo ejecutamos y aparecerá una ventana como la siguiente de la cual seleccionamos la primer opción que es "Créate a new Xcode project". Una vez que se muestra esta ventana en el menú que se encuentra de lado izquierdo, seleccionamos iOS y dentro de esa opciones seleccionaremos
  • 2.   2   Framework & Library, se mostrara una opciones llamada Cocoa Touch Static Library y Siguiente: Ahora le daremos un nombre a nuestro proyecto que en este caso será "SerialNumberLib", llenamos los demás campos en mi caso puse esos datos pero pueden ponerlo como crean conveniente. Una vez ya llenados estos campos presionamos "Next". En la siguiente ventana se nos pediré la ubicación en donde queremos que se guarde el proyecto, ya que se allá elegido la ubicación presionamos "Create".
  • 3.   3   Una vez creado el proyecto se abre el IDE en el cual podemos observar en el lado izquierdo se muestra como esta organizado el proyecto en carpetas y las clases. Ahora como se darán cuenta crea 2 archivos que es la interfaz(.h) donde se declaran las variables, y en la implementación(.m) es en donde se utilizan los métodos y variables declaradas en la interfaz. Ahora la interfaz(.h) no la necesitaremos y la eliminaremos, pero la sustituiremos con otra interfaz esta desarrollada por Adobe la cual se encuentra descargando el SDK para Air mediante la siguiente liga http://www.adobe.com/devnet/air/air-sdk- download.html. Una vez descargado el SDK lo descomprimimos y en la carpeta include se encuentra la interfaz que ocuparemos llamada FlashRuntimeExtensions.h, la arrastraremos o copiamos dentro del proyecto. una ves hecho eso, en la implementación se importa la interfaz añadida. El motivo por el cual se añadió dicha interfaz, fue para poder comunicarse entre código Nativo y ActionScript. El motivo del desarrollo de esta extensión nativa(ANE) fue para cubrir la necesidad de obtener el numero serial del dispositivo y el UDID. Para obtener dicho numero
  • 4.   4   de serie, fue necesario recargar un método llamado UIDevice, el motivo de hacer este paso, es que no se puede obtener directamente, para poder obtenerlo(el numero de serial) se es necesario una librería llamada IOKit la cual no esta disponible para iOS y solo para el desarrollo de aplicaciones de escritorio, es por eso que se hace mediante código para poder llamar dicha librería. Para esto se creara una clase que en mi caso llamare SerialLib, al momento de crearla se crearan los 2 archivos por default(.h, .m). Y la estructura de las carpetas y clases queda de la siguiente forma. Al terminar de hacer los métodos correspondientes para el funcionamiento de las clases se presiona Cmd+b para compilar, una ves hecho esto en la carpeta Products se genera un archivo .a el cual ocuparemos en un momento mas adelante. Eso seria todo por parte en objective c ahora se explicara lo que se hace en FlashBuilder. Air Ahora crearemos un proyecto en Flex con el cual se desarrollara la parte que se comunicara con el código nativo creado previamente. Abrimos nuestro IDE llamado FlashBuilder
  • 5.   5   Una vez cargado nuestro IDE crearemos un proyecto de tipo librería presionando en el menú superior File/New/Flex Library Project. Aparecerá la siguiente ventana en el cual pondremos el nombre de nuestra librería que en este caso seria LibrarySerialDevice, lo demás lo dejamos como esta y damos Finish.
  • 6.   6   ya creado nuestro proyecto, default viene sin clases que ejecutar, para esto crearemos una clase la que llamaremos SerialNumberController.as. NOTA: el código viene en el link de la descripción de este tutorial. También crearemos 2 XML, ya que son necesarios para la comunicación entre ambas librerías la primera la llamaremos extension.xml, y su estructura debe de ser de la siguiente manera: <extension  xmlns="http://ns.adobe.com/air/extension/3.8"]]  >  /**se  especificara  versión  del  SDK  de   Air  se  compilo  la  libreria*/            <id]]  >  com.hovanetworks.serialnumber</id]]  >  /**Se  establece  un  ID  entre  el  XML  y  la  clase  de   de  Air  (puede  ser  cual  sea)*/            <versionNumber]]  >  1</versionNumber]]  >  /**versión  que  tendra  el  .ANE  final*/            <platforms]]  >                    <platform  name="iPhone-­‐ARM"]]  >  /**Plataformas  de  la  cuales  les  dara  soporte  el  ANE   final(iOS,Android,Windows,Mac)*/                            <applicationDeployment]]  >                                    <nativeLibrary]]  >  libSerialNumberLib.a</nativeLibrary]]  >  /**nombre  de  la   extensión  generada  en  Objective  c*/                                    <initializer]]  >  LNGenericANEInitializer</initializer]]  >  /**nombre  del  metodo  que   se  iniciliazara  en  objective  c  (debe  de  ser  el  mismo  nombre)*/                                    <finalizer]]  >  LNGenericANEFinalizer</finalizer]]  >  /**nombre  del  metodo  que  se   finalizara  en  objective  c  */                            </applicationDeployment]]  >                    </platform]]  >                    <platform  name="default"]]  >                            <applicationDeployment/>                  </platform]]  >                  </platforms]]  >       </extension]] > Una vez puestos esos datos ahora se realizara el siguiente XML el que lleva por nombre platformoptions.xml en donde se agregan las extensiones de terceros que queramos utilizar, y de las cuales no incluyen en el SDK de iOS por default. pero como no usamos ninguna otra librería de terceros para realizar este ANE solo lleva la siguiente información. <platform  xmlns="http://ns.adobe.com/air/extension/3.8"]]  >  /**se  especifica  la  versión  del  SDK  de   Air  se  compilo  la  libreria*/            <sdkVersion]]  >  6.1.0</sdkVersion]]  >  /**versión  en  la  que  se  compilo  la  libreria  en  objective   c*/            <linkerOptions]]  >                    <option]]  >  -­‐ios_version_min  6.1</option]]  >  /**versión  minima  en  la  cual  funcionara  el   ANE*/            </linkerOptions]]  >     </platform]]  >    
  • 7.   7   Ya teniendo estos archivos y haber limpiado el código en FlashBuilder, en el proyecto de la librería en la carpeta bin se crea un archivo .swc, que en ese caso tendrá este nombre y extensión LibrarySerialDevice.swc. A este archivo generado le cambiaremos el tipo de extensión a .ZIP, abrimos el zip y dentro de ella se encuentran 2 archivos, el que necesitaremos será el "library.swf", este archivo es necesario para poder crear el archivo .ane. Después de haber creado los archivos necesarios para la creación de nuestra extensión nativa (ANE) ahora pondremos en una carpeta en la cual deben de organizarse de las siguiente manera: NOTA: El nombre de las carpetas, xml's debe de ser el mismo como los que se muestran(extensión, platformoptions). Ya acomodados los archivos, ahora lo compilaremos mediante línea de comandos usando "adt", este se encuentra en la carpeta bin del SDK de Air que descargamos. ahora se abrira una terminal y se hará ellos siguientes pasos. primero verificaremos si tenemos instalado el adt tecleando: adt  -­‐version   si nos muestra el siguiente mensaje -­‐bash:  adt:  command  not  found  
  • 8.   8   Se tendrá que re direccionar el PATH de la siguiente forma: export   PATH=$PATH:/Users/AngelVazquez/Downloads/AdobeAIRSDK/bin/:/Users/AngelVazquez/Ad obeAIRSDK/android/tools     NOTA: yo lo tengo de esta forma ya que allí es donde se encuentra el SDK que descargue. Volvemos a teclear el comando para ver la versión de "adt" y si es que se hizo de buena manera aparecerá el numero de la versión del "adt" 3.8.0.910     Ahora nos dirigimos en donde se encuentra nuestros archivos ya organizados(mediante la consola). Una vez ya estando dentro de la carpeta ejecutaremos el siguiente comando, que es con el cual se generara el ANE adt  -­‐package  -­‐target  ane  SerialNumber.ane  extension.xml  -­‐swc   serialNumberDevice.swc  -­‐platform  iPhone-­‐ARM  -­‐C  ios  .  -­‐platformoptions   platformoptions.xml  -­‐platform  default  -­‐C  default . Ya creado el archivo .ane lo copiamos dentro de la carpeta de las "libs" del proyecto en done lo ocuparemos, ahora lo importamos al proyecto en donde lo utilizaremos, damos clic derecho sobre el proyecto "Properties" se abrirá un ventana y se realizara lo siguiente:
  • 9.   9   Buscamos la ubicación de nuestra librería la seleccionamos y presionamos "ok" una vez ya agregada presionamos ok para volver a la aplicación ahora si ya podremos utilizarla, la forma de hacerlo es muy sencilla es de la siguiente manera var  numSerial:String  =  SerialNumberController.instance.getSerial();   De esta manera ya obtendremos el numero del serial de nuestro dispositivo iOS. NOTA: Para poder comprobar que sirve nuestra librería se debe de hacer directamente en el dispositivo físico ya que en el emulador de Air suele "tronar". El código esta disponible en la URL que se encuentra en la descripción de este archivo.