Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Dispositivos Mviles
CAPTULO 1:
ANLISIS DE TECNOLOGAS
PARA APLICACIONES EN
DISPOSITIVOS MVILES
Francisco Domnguez Mateos
Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia
Objetivos
1. Describir la evolucin, caractersticas y limitaciones
de los dispositivos mviles
2. Dar una visin global de la computacin ubicua
3. Analizar las tecnologas, lenguajes y entornos de
trabajo y compilacin
4. Proporcionar los conceptos y herramientas bsicos
para que el alumno adquiera las competencias
necesarias para trabajar con los distintos entornos
de desarrollo de aplicaciones para dispositivos
mviles
Francisco Domnguez Mateos
Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia
ndice
1.1 Dispositivos Mviles: Tipos, Historia y Evolucin
1.2 Caractersticas y Limitaciones en el Desarrollo de
Aplicaciones para Dispositivos Mviles
1.3 Tecnologas Disponibles
1.4 Desarrollo de Aplicaciones Mviles
1.5 Arquitectura J2ME
Definicin:
Ubiquitous computing is roughtly
the opposite of virtual reality.
Where virtual reality puts people
inside a computer generated
world, ubiquitous forces the
computer to live out here in the
world with people.
--Mark Weiser
Francisco Domnguez Mateos
Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia
Descentralizacin
Diversificacin
Conectividad
Simplicidad
Descentralizacin
Diversificacin
Computacin ubicua
Simplicidad
Conectividad
Contextos
Telfono
Navegador
Marco de aplicacin
Administrador
de actividad
Administrador
de actividad
Administrador
de ventana
Administrador
de ventana
Proveedor
de contenidos
Proveedor
de contenidos
Vista del
sistema
Libreras
Vista del
sistema
Vista del
sistema
Android Runtime
Administrador
de superficies
Administrador
de media
SQLite
Libreras del
Kernel
OPenGL ES
FreeType
WebKit
Mquina virtual
Dalvik
SGL
SSL
Libc
Kernel de Linux
Arquitectura
de Android
Francisco Domnguez Mateos
Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia
Controladores
de pantalla
Controladores
De la cmara
Controladores
Memoria flash
Controladores
Blinder (PC)
Controladores
de teclado
Controlador
de Wifi
Controlador
De audio
Gestin
de energa
Hardware
JAVA
ME
Servicio del SO
Servicios base
Arquitectura
de Symbian
Francisco Domnguez Mateos
Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia
Kernel de la arquitectura
Programacin Multimedia y Dispositivos Mviles
Manejadores HW
Hardware
Arquitectura
de Palm OS
Francisco Domnguez Mateos
Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia
Modelo
IU
Integracin
Nube
Kernel
Hardware
Arquitectura de
Windows Phone
Francisco Domnguez Mateos
Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia
Aplicaciones Java
JME (Java Micro Edition)
VB
C++
JScript
...
Aplicaciones
ASP.NET
Formularios
Windows
Servicios COM+
Servicios
Web
Arquitectura .NET
Programacin Multimedia y Dispositivos Mviles
Lenguajes de desarrollo
Siguen especificaciones del estndar CSL
Visual Basic .NET: Evolucin de Visual Basic 6.0
C#
Diseado especficamente para la plataforma .NET
Combina complejidad de C++ y flexibilidad de Java
Assembles: Mdulos
Mdulo DLL
Descripcin
del ensamble
Descripcin
de los tipos
incluidos en
el ensamble
Cdigo
ejecutable
en MSIL
Audio, vdeo
imgenes,
tipos de letra
u otro recurso
utilizado por
el ensamble
Estructura de un Mdulo
Cabecera PE/COFF
Cabecera CLR
Meta-datos
Cdigo IL
Recursos
Cdigo y
recursos nativos
Francisco Domnguez Mateos
Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia
Archivo
ejecutable
portable (PE) y
formato comn
de archivo de
objeto (COFF)
Descripcin
del mdulo
gestionado,
versin, firma
digital, etc.
Datos generados
automticamente
por el compilador
con informacin
sobre: tipos del
mdulo, miembros
y tipos externos
Ambos
Definicin de tipos de datos
Llamados ejecutables portables (PE)
Se pueden ejecutar en cualquier CLR
Si estn en un ensamblado (plataforma Windows)
Francisco Domnguez Mateos
Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia
C++
VB
Otros
Lenguajes .NET
Compiladores
Cdigo MSIL
Cargador
Compilador JIT
+ Verificador
Cdigo nativo
C
L
R
Francisco Domnguez Mateos
Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia
Mtodo no
compilado
Ejecucin
Compilacin
Cdigo
fuente
Compilador
MSIL +
metadatos
Compilador
JIT
Verificador
Ejecucin
Cdigo
nativo
Cargador
de clases
Cdigo de la
clase base
JIT convierte MSIL a cdigo nativo y modifica el stub para que en las siguientes
llamadas causen la ejecucin directa del cdigo nativo.
El proceso de compilacin JIT acompaado de verificacin para comprobar que el MSIL
tiene un tipo seguro y que los objetos realizan operaciones legales.
No todo el cdigo puede verificarse, restringido por algunos constructores (punteros C).
.NET
Compila
Programa completo
(como en Java)
Interpreta
No
Portabilidad
Independiente de la plataforma
de ejecucin
Crea
Proyecto
Contiene
Proceso de Creacin
y Ejecucin con .NET
Mdulos
Contiene
Mdulos
de cdigo objeto
Genera
CTS
Contiene
Ajustado a
MSIL
Contiene
CLR
Abre
CLS
Compilado por
Ensamblados
Se ejecutan en
Prepara
Francisco Domnguez Mateos
Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia
Dominio de aplicacin
JIT
BlackBerry (II)
RACP: Compilador de lnea de comando (.jar y
.cod)
Java Loader: Agrega y actualiza una aplicacin
BBST (BlackBerry Signature Tool): Firma el cdigo
Herramientas de verificacin previa: Comprueban
las clases
JDWP: Depura aplicaciones mediante Eclipse o
NetBeans
Android (I)
IDE (Eclipse) + plugin de ADT
Lnea de comandos + editor de texto
Android:
- Crea y actualiza la aplicacin
- Crea y elimina AVD
Android (II)
KeyTool: Genera clave privada para archivos .apk
Jarsigner: Firma archivos .apk con la clave generada
por KeyTool
Android (III)
Symbian
SDK + Eclipse o NetBeans
Java ME
C++
SDK + Eclipse + Carbide C++
Plugin Visual Studio C++ de Carbide C++ (Nokia)
- Python: PythonForSerie 60
Francisco Domnguez Mateos
Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia
Palm OS
Ares: Entorno de desarrollo para mviles que
funciona en un navegador
SDK +Plugin PDk
C++
JavaScript
Funciona en Windows, Linux o iOS
SDK
Xcode: Codificacin, desarrollo y depuracin + Simulador
Interfaz Builder: Diseo grfico IU (.nib)
Instruments: Analiza comportamiento de la aplicacin
Francisco Domnguez Mateos
Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia
Emulador Antiguo
Francisco Domnguez Mateos
Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia
Emulador Moderno
Emulador de comportamiento
de acelermetro
Francisco Domnguez Mateos
Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia
Emulador de GPS
Configuracin
Mnimo conjunto de clases disponibles
Engloba un segmento horizontal de mercado
Perfil
Clases adicionales para un segmento vertical de mercado
512 KB de ROM
256 KB de RAM
Conexin a red (fija)
Soporte completo a la especificacin de JVM
Interfaz de usuario relativamente limitado
Modelo de Estados
MidletSuit.jad
MidletSuit.jar
manifest.mf
Creacin
Descarga
Instalacin
Ejecucin
Publicacin
Actualizacin
Borrado
Escribir y compilar
Preverificar el cdigo
Empaquetar en un .JAR y guardar en un .JAD
Ejecutar en el emulador
Red inalmbrica
Puerto serie
Infrarojos (IRDA)
Bluetooth
Negociacin sobre capacidades del dispositivo segn los
requisitos del MIDlet
Se descarga a la memoria del dispositivo
new()
startApp()
Pausado
destroyApp()
Activado
pauseApp()
Programacin Multimedia y Dispositivos Mviles
Destruido
Publicar
Crear
MIDlet
ENTORNO DE DESARROLLO
Descargar
MIDlet
DISPOSITIVO
Resumen
En el Captulo 1 se han abordado los siguientes temas:
Visin de los principales hitos que han marcado la
historia y evolucin de los dispositivos mviles
Resumen de las limitaciones de los dispositivos
Anlisis de los beneficios e inconvenientes de los
principales enfoque de desarrollo
Descripcin de la tecnologas, lenguajes y entornos
de desarrollo
Descripcin de la arquitectura J2ME
Bibliografa
[1] Yeray, J. J., Landa, I. (2011). Windows Phone 7.5 Desarrollo de aplicaciones en Silverlight.
Espaa: Krasis Press.
[2] lvares, A. Menndez, L., Estrada, L. (n.d.). Tecnologa iOS. Obtenida el 9 de abril de 2012,
http://sites.google.com/site/tecnologiaiostm/home.
[3] Marko, G. (2011). Learning Android. Building Applications for the Android Market. Estados Unidos
de Amrica: OReilly Media Inc.
[4] OReilly Mac Dev Center. (n.d.). Obtenida el 12 de abril de 2012, http://macdevcenter.com/
[5] Lenguaje .NET. (n.d.). Obtenida el 11 de abril de 2012,
http://img.redusers.com/imagenes/libros/lpcu143/capitulogratis.pdf
[6] Murphy, M. (2010). Begining Android 2. Estados Unidos de Amrica: Apress Inc.
[7] Ribas, J. (2011). Desarrollo de Aplicaciones para Android. Espaa: Anaya Multimedia.
[8] Conder, S., Darcey, L. (2010). Android Wireless Application Development. Developers Library.
Estados Unidos de Amrica: Pearson Education Inc.