Está en la página 1de 88

Programacin Multimedia y

Dispositivos Mviles
CAPTULO 1:
ANLISIS DE TECNOLOGAS
PARA APLICACIONES EN
DISPOSITIVOS MVILES
Francisco Domnguez Mateos
Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

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

Programacin Multimedia y Dispositivos Mviles

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

Francisco Domnguez Mateos


Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.1. Dispositivos Mviles: Tipos,


Historia y Evolucin

Francisco Domnguez Mateos


Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.1. Dispositivos Mviles: Tipos, Historia y Evolucin

Tipos de dispositivos mviles

Francisco Domnguez Mateos


Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.1. Dispositivos Mviles: Tipos, Historia y Evolucin

Computacin ubicua (I)

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

Programacin Multimedia y Dispositivos Mviles

1.1. Dispositivos Mviles: Tipos, Historia y Evolucin

Computacin ubicua (II)

Ubiquitous Computing (Weiser, 90s)


Pequeos dispositivos de cmputo interconectados
Inmersos en los objetos que nos rodean

Pervasive Computing (IBM, 90s)


Dispositivos de computacin propios
Perspectiva prctica y de mercado

Everyday Computing (Mynatt, 97)


Actividades informales y no estructuradas
Computacin ubicua escalada en el tiempo

Dessapering Computer (DC, 00)


Interaccin con artefactos en la vida diaria
Crear nuevos comportamientos y funcionalidades
Francisco Domnguez Mateos
Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.1. Dispositivos Mviles: Tipos, Historia y Evolucin


Paradigmas de la computacin ubicua (I)

Descentralizacin

- Era mainframe -> Potencia centralizada


- Era PC -> Arquitectura cliente-servidor
- Sincronizacin (on the fly) -> Actualizacin
- Proveedores de servicios -> Flexibilidad
Francisco Domnguez Mateos
Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.1. Dispositivos Mviles: Tipos, Historia y Evolucin


Paradigmas de la computacin ubicua (II)

Diversificacin

- Herramientas especializadas -> Cada dispositivo


tiene funcionalidades especficas (entorno y grupo de
usuario)
- Misma funcin -> Desde varios dispositivos
- Diversidad y adaptabilidad -> El mismo servicio se
tiene que adaptar a diferentes dispositivos
Francisco Domnguez Mateos
Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.1. Dispositivos Mviles: Tipos, Historia y Evolucin


Paradigmas de la computacin ubicua (III)

Conectividad

- Sin lmites -> Everybodys software, running


everybodys hardware, over everybodys network
-- Lou Gerstner,IBM

- Conectividad -> Difcil entre plataformas diferentes


- Estndares -> WAP, UMTS, Bluetooth, Java, etc.
Francisco Domnguez Mateos
Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.1. Dispositivos Mviles: Tipos, Historia y Evolucin


Paradigmas de la computacin ubicua (IV)

Simplicidad

- Inconvenientes de los ordenadores potentes ->


Interaccin y uso
- Diseo -> Dispositivos con interfaces intuitivas
- Integracin de HW y SW -> Necesidades especficas del
usuario final
- Acceso -> Rpido y fcil
Francisco Domnguez Mateos
Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.1. Dispositivos Mviles: Tipos, Historia y Evolucin


Paradigmas de la computacin ubicua (V)

Descentralizacin

Diversificacin

Computacin ubicua
Simplicidad

Francisco Domnguez Mateos


Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Conectividad

Programacin Multimedia y Dispositivos Mviles

1.1. Dispositivos Mviles: Tipos, Historia y Evolucin


Historia y evolucin de los dispositivos mviles (I)

Francisco Domnguez Mateos


Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.1. Dispositivos Mviles: Tipos, Historia y Evolucin


Historia y evolucin de los dispositivos mviles (II)

Francisco Domnguez Mateos


Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.1. Dispositivos Mviles: Tipos, Historia y Evolucin


Historia y evolucin de los dispositivos mviles (III)

Francisco Domnguez Mateos


Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.2. Caractersticas y Limitaciones


en el Desarrollo de Aplicaciones
para Dispositivos Mviles

Francisco Domnguez Mateos


Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.2. Caractersticas y Limitaciones en el Desarrollo de


Aplicaciones para Dispositivos Mviles
Limitaciones en la ejecucin de aplicaciones en
dispositivos mviles
Caractersticas y de conexin de cada dispositivo
Tamao de las pantallas e iluminacin
Distribucin de los elementos en la interfaz de
usuario
Tiempo de espera entre la peticin de datos y el
momento en el que empieza a llegar la respuesta
Francisco Domnguez Mateos
Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.2. Caractersticas y Limitaciones en el Desarrollo de


Aplicaciones para Dispositivos Mviles
Enfoques para el desarrollo de aplicaciones
para dispositivos mviles
Clientes nativos
Clientes Java ME
Clientes basados en web
Clientes basados en Middleware

Francisco Domnguez Mateos


Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.2. Caractersticas y Limitaciones en el Desarrollo de


Aplicaciones para Dispositivos Mviles

Francisco Domnguez Mateos


Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.3. Tecnologas Disponibles

Francisco Domnguez Mateos


Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.3. Tecnologas Disponibles


Principales Tecnologa
Android
BlackBerry
Symbian
Palm OS
Windows Phone
iOS
Francisco Domnguez Mateos
Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.3. Tecnologas Disponibles


Aplicaciones
Inicio

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

Programacin Multimedia y Dispositivos Mviles

1.3. Tecnologas Disponibles


Aplicaciones
Sistema Operativo
Mquina
Virtual Java
Arquitectura
de BlackBerry
Francisco Domnguez Mateos
Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Hardware

Programacin Multimedia y Dispositivos Mviles

1.3. Tecnologas Disponibles


Framework IU
Aplicaciones

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

1.3. Tecnologas Disponibles


Aplicacin
Servicio del SO
API Software

Manejadores HW

Hardware
Arquitectura
de Palm OS
Francisco Domnguez Mateos
Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.3. Tecnologas Disponibles


Ejecucin de la aplicacin
Modelo
Aplicacin

Modelo
IU

Integracin
Nube

Kernel
Hardware
Arquitectura de
Windows Phone
Francisco Domnguez Mateos
Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.3. Tecnologas Disponibles


Cocoa Touch
Media
Ncleo Servicios
Ncleo SO
Arquitectura
de iOS
Francisco Domnguez Mateos
Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

Comparativa Sistemas Operativos

Francisco Domnguez Mateos


Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.4. Desarrollo de Aplicaciones Mviles


Lenguajes de Programacin (I)
BlackBerry (I): Dos tipos de desarrollos:
Aplicaciones web
Utiliza estndares web
Eclipse, Microsoft Visual Studio

Aplicaciones Java
JME (Java Micro Edition)

Francisco Domnguez Mateos


Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.4. Desarrollo de Aplicaciones Mviles


Lenguajes de Programacin (II)
BlackBerry (II)
API JAVA: Proporciona
Interfaces de usuario personalizadas
Almacenamiento y recuperacin de datos en local
Escucha y captura de eventos de la interfaz y del
sistema
Comunicacin segura mediante HTTP y TCP
Cobertura de red y compatibilidad en el modo roaming
Francisco Domnguez Mateos
Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.4. Desarrollo de Aplicaciones Mviles


Symbian: Dos lenguajes de desarrollo
Lenguaje C++
SDK

Java ME: Con el entorno de ejecucin de JAVA


formado por
CLDC 1.1 (Connected Limited Device Configuration)
MIDP 2.0 (Mobile Information Device Profile)

Francisco Domnguez Mateos


Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.4. Desarrollo de Aplicaciones Mviles


Palm OS
C++
HTML 5.0 con JavaScript y CSS
Enyo: Utiliza piezas de encapsulacin o
componentes para desarrollos en
Mviles
PC
Tablet

Las aplicaciones se ejecutan en el navegador


Francisco Domnguez Mateos
Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.4. Desarrollo de Aplicaciones Mviles


Objective C (I)
Lenguaje interpretativo, extensin de C
Utilizado en OSX y GNUStep
La versin 2.0 incluye recolector de basura, pero
no es soportado por IPhone
Las clases
Creadas mediante archivo .h
Definidas mediante archivo .m
Francisco Domnguez Mateos
Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.4. Desarrollo de Aplicaciones Mviles


Objective C (II)
El programa compila todos los datos y los objetos
deciden cundo ejecutar los mtodos
Parte dinmica
Memoria: Rapidez al proceso
Tipos: Tipado ms amplio que el de C++
Instrospeccin: Informacin sobre los datos y su uso
Enlace: Busca en el propio objeto y la clase la funcin
de ejecucin
Carga: El lenguaje se actualiza

Francisco Domnguez Mateos


Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.4. Desarrollo de Aplicaciones Mviles


Objective C (III)
Tipos de conexin
Outlet: Punteros de un objeto a otro
Target action: Mensaje Action hacia un Target
Bindings: Conexin entre objetos distintos

Francisco Domnguez Mateos


Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.4. Desarrollo de Aplicaciones Mviles


Lenguaje .NET
Orientado a objetos
Desarrollo de aplicaciones en varios lenguajes
Orientadas a varios dispositivos (PC, Tablet, Mvil)
Compatible con aplicaciones .COM
Integra aplicaciones de otras plataformas y SO

Francisco Domnguez Mateos


Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.4. Desarrollo de Aplicaciones Mviles


C#

VB

C++

JScript

Rene un conjunto de normas:

...

ECMA-335, ISO/IEC 23271

Especificacin comn de lenguajes (CLS)


Lenguaje intermedio (MSIL)
Pginas
ASP.NET

Aplicaciones
ASP.NET

Formularios
Windows

ADO.NET: Datos y XML


Librera de clases base (BCL)
Lenguaje comn de ejecucin (CLR)
Windows
Francisco Domnguez Mateos
Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Servicios COM+

Visual Studio .NET

Servicios
Web

-Las que debe seguir un lenguaje para


ser compatible con .NET, asegurando
compatibilidad y funcionalidad con todos
los lenguajes de la plataforma.
-La que define el conjunto de funciones
que debe implementar la librera de
clases base (BCL) a implementarse en
otros S.O.

ECMA-334, ISO/IEC 23270


-La que definen el lenguaje C#
CLS: Common Language Specification
MSIL: Microsoft Intermediated Language
BCL: Base Class Library
CLR: Common Language Runtime
COM+: Extensin de Component Object Model

Arquitectura .NET
Programacin Multimedia y Dispositivos Mviles

1.4. Desarrollo de Aplicaciones Mviles


.NET Framework
Entorno de ejecucin CLR (Common Language
Runtime)
Administra la memoria
Ofrece seguridad en ejecucin
Genera cdigo nativo mediante JIT (Just in Time) que
traduce a cdigo nativo los componentes dependiendo
de la CPU en la que se ejecuta

Francisco Domnguez Mateos


Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.4. Desarrollo de Aplicaciones Mviles


Biblioteca base BCL
Proporciona componentes y clases

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

Francisco Domnguez Mateos


Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.4. Desarrollo de Aplicaciones Mviles


MiLibreria.DLL
Manifiesto
Meta-datos de Tipo
MSIL
Recursos

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

Un ensamble es una unidad lgica no fsica.


Puede constar de uno o ms mdulos (.dll, .jpg, tec.)
Francisco Domnguez Mateos
Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.4. Desarrollo de Aplicaciones Mviles


Un mdulo compilado:
Cabecera CLR
Meta-datos
Cdigo MSIL

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

Programacin Multimedia y Dispositivos Mviles

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

1.4. Desarrollo de Aplicaciones Mviles


Tipos de mdulos
Recursos
Archivos .gif, .html, etc.
Punto de entrada para ejecutar el cdigo

Cdigo compilado -> Cdigo MSIL


Ejecutables (.exe)
Libreras de enlace dinmico (.dll)
Mdulos que conforman un ensamble (.netmodule)

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

Programacin Multimedia y Dispositivos Mviles

1.4. Desarrollo de Aplicaciones Mviles


MSIL: Modelo de Ejecucin
C#

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

Programacin Multimedia y Dispositivos Mviles

1.4. Desarrollo de Aplicaciones Mviles


MSIL: funcin
La CPU no pueden ejecutar directamente MSIL
Debe ser convertido al cdigo de mquina
nativo de la CPU sobre la cual se va ejecutar
Para ello utiliza el compilador JIT (Just in Time)
Convierte dinmicamente el cdigo MSIL en cdigo
nativo
Existen tres versiones
Jitter normal
Jitter econmico
PreJitter
Francisco Domnguez Mateos
Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.4. Desarrollo de Aplicaciones Mviles


MSIL: Jitter Normal
Compilado una vez
Se utiliza por defecto
El CLR
Sustituye las llamadas a mtodos de las nuevas clases por
llamadas a funciones auxiliares (stubs)
Los stubs compilan el nuevo cdigo
Una vez compilado la llamada al stub se sustituye por una
llamada directa al cdigo compilado
En posteriores llamadas al cdigo compilado no es necesaria la
compilacin

Francisco Domnguez Mateos


Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.4. Desarrollo de Aplicaciones Mviles


MSIL: JItter Econmico
Traduce cada instruccin MSIL por su equivalente en el
cdigo mquina sobre la que se ejecute
Ideal en dispositivos embebidos con poca potencia de
CPU y poca memoria
Facilita la adaptacin de la plataforma .NET a nuevos
sistemas
Permite desarrollar rpidamente una versin del CLR
para ejecutar aplicaciones gestionadas, aunque sea de
una forma poco eficiente
Permite centrarse en el desarrollo del Jitter normal para
optimizar la ejecucin de las mismas
Francisco Domnguez Mateos
Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.4. Desarrollo de Aplicaciones Mviles


MSIL: Pre Jitter
Es una aplicacin en lnea de comandos llamada
ngen.exe
Permite compilar cualquier ejecutable o librera que
contenga cdigo gestionado y convertirlo a cdigo nativo
Evita tener que hacer la compilacin dinmica

Francisco Domnguez Mateos


Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.4. Desarrollo de Aplicaciones Mviles


Ventajas del compilador JIT
El cdigo no es interpretado cada vez que se ejecuta
sino compilado la primera vez que se llama al mtodo al
que pertenece
El jitter tiene acceso a mucha ms informacin sobre la
mquina en que se ejecutar la aplicacin, permitiendo
optimizar el cdigo
El recolector de basura de .NET mantiene compactada
la memoria dinmica, reservando ms rpidamente la
memoria
Las versiones de los jitters podrn conseguir que el
cdigo gestionado se ejecute ms rpido que el no
gestionado
Francisco Domnguez Mateos
Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.4. Desarrollo de Aplicaciones Mviles


Carga y Ejecucin del CLR
Antes de la ejecucin
cuando se ejecuta
por primera vez
(Stub)

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).

Francisco Domnguez Mateos


Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.4. Desarrollo de Aplicaciones Mviles


Meta-datos
Significado es similar al de otras tecnologas
previas a la plataforma .NET, pero contienen
ms informacin
Se almacenan incrustados en el mdulo al que
describen (imposible separarlos)
Se pueden consultar a travs de las clases del
espacio de nombres System.Reflection de la
BCL
Se les puede aadir informacin mediante
atributos
Francisco Domnguez Mateos
Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.4. Desarrollo de Aplicaciones Mviles


Principales Meta-datos
ModuleDef
TypeDef
MethodDef
ParamDef
FieldDef
PropertyDef
EventDef
AssemblyRef
ModuleRef
TypeRef
MemberRef
Francisco Domnguez Mateos
Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Principales tipos de Meta-datos


Programacin Multimedia y Dispositivos Mviles

1.4. Desarrollo de Aplicaciones Mviles


.NET vs. Programacin Tradicional
Tradicional

.NET

Compila

Programa completo
(como en Java)

Mediante JIT (solo la parte


necesaria en cada momento)

Interpreta

No

Mediante CLR que sirve como


traductor entre MSIL y cdigo
nativo

Portabilidad

Solo funciona para la


plataforma para la que
fue diseado

Independiente de la plataforma
de ejecucin

Comparativa programacin con .NET y tradicional


Francisco Domnguez Mateos
Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.4. Desarrollo de Aplicaciones Mviles


Visual Studio.NET

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

Programacin Multimedia y Dispositivos Mviles

JIT

1.4. Desarrollo de Aplicaciones Mviles


Entornos de Trabajo y Compilacin (I)
BlackBerry (I)
IDE General: Eclipse o NetBean + Plugin BlackBerry
IDE Especfico: JDE (BlackBerry Java Development
Environment)
BIDE (BlackBerry Integrated Development Environment): Entorno
integrado para la edicin, gestin y depuracin de proyectos
BSS (BlackBerry SmartPhone Simulator): Simulador de
BlackBerry
JME y API de BlackBerry
Aplicaciones de ejemplo
Francisco Domnguez Mateos
Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.4. Desarrollo de Aplicaciones Mviles


Entornos de Trabajo y Compilacin (II)

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

Francisco Domnguez Mateos


Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.4. Desarrollo de Aplicaciones Mviles


Entornos de Trabajo y Compilacin (III)

Android (I)
IDE (Eclipse) + plugin de ADT
Lnea de comandos + editor de texto
Android:
- Crea y actualiza la aplicacin
- Crea y elimina AVD

Android emulator: Ejecuta la aplicacin en el emulador


Android Debug Bridge: Conecta aplicacin con emuldor o
mvil, para instalar o generar aplicaciones
Ant: Compila y ejecuta proyectos (.apk)

Francisco Domnguez Mateos


Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.4. Desarrollo de Aplicaciones Mviles


Entornos de Trabajo y Compilacin (IV)

Android (II)
KeyTool: Genera clave privada para archivos .apk
Jarsigner: Firma archivos .apk con la clave generada
por KeyTool

Francisco Domnguez Mateos


Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.4. Desarrollo de Aplicaciones Mviles


Entornos de Trabajo y Compilacin (IV)

Android (III)

Proceso de creacin de una aplicacin


Francisco Domnguez Mateos
Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.4. Desarrollo de Aplicaciones Mviles


Entornos de Trabajo y Compilacin (V)

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

Programacin Multimedia y Dispositivos Mviles

1.4. Desarrollo de Aplicaciones Mviles


Entornos de Trabajo y Compilacin (VI)

Palm OS
Ares: Entorno de desarrollo para mviles que
funciona en un navegador
SDK +Plugin PDk
C++
JavaScript
Funciona en Windows, Linux o iOS

- Se integra en el IDE de Eclipse


Francisco Domnguez Mateos
Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.4. Desarrollo de Aplicaciones Mviles


Entornos de Trabajo y Compilacin (VII)

IPhone: Tres tipos de aplicaciones


Web: Se ejecuta en el navegador, no utiliza funcionalidades
del dispositivo
Nativa: Utiliza funcionalidades del dispositivo. Acceso sin
necesidad de conexin a Internet
Hbrida: Combina las anteriores

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

Programacin Multimedia y Dispositivos Mviles

1.4. Desarrollo de Aplicaciones Mviles


Entornos de Trabajo y Compilacin (VIII)

Windows Phone: SDK


Visual Studio 2010: Desarrollo de aplicaciones
Microsoft Expression Blend 4: Diseo de IU
Application Development Tool: Muestra la apliccin en XAP
al emulador o dispositivo
Developer Registration Tool: Permite registrar el
dispositivo para desbloquearlo, para desarrollar, depurar y
mostrar aplicaciones
Windows Phone Marketplace Test Tool: Para realizar
pruebas automticas y manuales de la aplicacin
Francisco Domnguez Mateos
Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.4. Desarrollo de Aplicaciones Mviles


Emuladores (I)
Android
AVD (Android Virtual Device)
Perfil hardware: Define carctersticas de los
dispositivos virtuales
Mapping del sistema: Define la versin de la
platafomra Android para la cual se ejecuta el emulador
Otras opciones: Define tamao de la pantalla,
apariencia, etc.

Francisco Domnguez Mateos


Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.4. Desarrollo de Aplicaciones Mviles


Emuladores (II)
Android: Gestor de dispositivos virtuales

Francisco Domnguez Mateos


Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.4. Desarrollo de Aplicaciones Mviles


Emuladores (III)
Android: Creacin de un nuevo emulador

Francisco Domnguez Mateos


Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.4. Desarrollo de Aplicaciones Mviles


Emuladores (IV)
Android: Apariencia del emulador

Francisco Domnguez Mateos


Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.4. Desarrollo de Aplicaciones Mviles


Emuladores (V)
BlackBerry
PlayBook Simulators
SmartPhone Simulators
Integrados en el JDE

Francisco Domnguez Mateos


Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.4. Desarrollo de Aplicaciones Mviles


Emuladores (VI)
BlackBerry: Apariencia del emulador

Francisco Domnguez Mateos


Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.4. Desarrollo de Aplicaciones Mviles


Emuladores (VII)
Symbian: Emuladores para la plataforma J2ME

Francisco Domnguez Mateos


Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.4. Desarrollo de Aplicaciones Mviles


Emuladores (VIII)
Palm OS

Emulador Antiguo
Francisco Domnguez Mateos
Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Emulador Moderno

Programacin Multimedia y Dispositivos Mviles

1.4. Desarrollo de Aplicaciones Mviles


Emuladores (IX)
IPhone: Funcionalidades
Rotacin
Cambio de dispositivo
Funcionamiento en diferentes versiones de
iOS
Avisos de consumo de memoria (depende de
los recursos del dispositivo)
Francisco Domnguez Mateos
Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.4. Desarrollo de Aplicaciones Mviles


Emuladores (X)
IPhone: Apariencia del emulador

Francisco Domnguez Mateos


Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.4. Desarrollo de Aplicaciones Mviles


Emuladores (XI)
Windows Phone: Visualizacin de aplicaciones
con acelermetro o con geolocalizacin

Emulador de comportamiento
de acelermetro
Francisco Domnguez Mateos
Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Emulador de GPS

Programacin Multimedia y Dispositivos Mviles

1.5. Arquitectura J2ME

Francisco Domnguez Mateos


Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Familia de tecnologas Java 2

Programacin Multimedia y Dispositivos Mviles

1.5. Arquitectura J2ME


Para conseguir flexibilidad y adaptacin se
estructura en tres niveles:
Mquina virtual
CVM (C Virtual Machine)
KVM (Kilo Virtual Machine)

Configuracin
Mnimo conjunto de clases disponibles
Engloba un segmento horizontal de mercado

Perfil
Clases adicionales para un segmento vertical de mercado

Los dispositivos pueden soportar mltiples perfiles


Francisco Domnguez Mateos
Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.5. Arquitectura J2ME


Configuracin de Perfiles
CDC (Connected Device Configuration)
Orientada a dispositivos con

512 KB de ROM
256 KB de RAM
Conexin a red (fija)
Soporte completo a la especificacin de JVM
Interfaz de usuario relativamente limitado

Ejemplos: Internet screenphones, DTV set-top boxes y


sistemas telemticos de automviles
Iniciativas anteriores: PersonalJava, JavaTV, JavaPhone
Francisco Domnguez Mateos
Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.5. Arquitectura J2ME


Configuracin de Perfiles
CLDC (Connected Limited Device Configuration)
Orientada a dispositivos con

160 KB a 512KB de memoria disponible para Java


16 MHz a 32 MHz
Limitaciones de consumo (batera)
Conectividad a red (inalmbrica)
Interfaz de usuario relativamente limitado

Francisco Domnguez Mateos


Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.5. Arquitectura J2ME

Modelo de Estados
MidletSuit.jad

Contenidos del MidletSuit.jar

MidletSuit.jar
manifest.mf

MIDP (Mobile Information Device Profile)


-

Define un conjunto de APIs para el desarrollo de aplicaciones portables


entre dispositivos mviles
MIDlet: Aplicacin con ciclo de vida definido
MIDlet Suit: Conjunto de MIDLets definidas en un mismo .jar

Francisco Domnguez Mateos


Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.5. Arquitectura J2ME


Ciclo de Vida de una Aplicacin (I)
Proceso de creacin de un MIDlet
-

Creacin
Descarga
Instalacin
Ejecucin
Publicacin
Actualizacin
Borrado

Francisco Domnguez Mateos


Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.5. Arquitectura J2ME


Ciclo de Vida de una Aplicacin (II)
Creacin
-

Escribir y compilar
Preverificar el cdigo
Empaquetar en un .JAR y guardar en un .JAD
Ejecutar en el emulador

Francisco Domnguez Mateos


Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.5. Arquitectura J2ME


Ciclo de Vida de una Aplicacin (III)
Descarga
- Gestionada por el AMS
- El dispositivo obtiene el MIDlet de una fuente a
travs de:

Red inalmbrica
Puerto serie
Infrarojos (IRDA)
Bluetooth
Negociacin sobre capacidades del dispositivo segn los
requisitos del MIDlet
Se descarga a la memoria del dispositivo

Francisco Domnguez Mateos


Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.5. Arquitectura J2ME


Ciclo de Vida de una Aplicacin (IV)
Instalacin
- Gestionado por el AMS (Applicatin Management Software)
- Se comprueba que el MIDlet no vulnera las polticas de
seguridad mvil
- Se convierte el MIDlet de un formato pblico al formato
especfico del dispositivo
Ejemplo: PalmOS se transforma a formato PRC (programas
ejecutables en PalmOS)

Francisco Domnguez Mateos


Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.5. Arquitectura J2ME


Ciclo de Vida de una Aplicacin (V)
Ejecucin
El MIDlet entra en la VM y se invocan los mtodos que
gestionan su ciclo de vida
Pausado: Iniciado y a la espera
Activado: Tiene recursos ejecutando
Destruido: Ha liberado recursos, destruido hilos y terminado
toda su actividad
destroyApp()

new()

startApp()

Pausado

Francisco Domnguez Mateos


Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

destroyApp()

Activado

pauseApp()
Programacin Multimedia y Dispositivos Mviles

Destruido

1.5. Arquitectura J2ME


Ciclo de Vida de una Aplicacin (VI)
Publicacin
MIDlet
SERVIDOR

Publicar

Crear

MIDlet
ENTORNO DE DESARROLLO

Francisco Domnguez Mateos


Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Descargar

MIDlet
DISPOSITIVO

Programacin Multimedia y Dispositivos Mviles

1.5. Arquitectura J2ME


Ciclo de Vida de una Aplicacin (VII)
Actualizacin
Se publica una nueva versin del MIDlet
El AMS debe gestionar la lista de MIDlets instalados y sus
versiones
Los atributos de un MIDlet, incluida la versin se
encuentran en:
El descriptor del MIDlet .JAD
El manifiesto del MIDlet contenido en el .JAR

Francisco Domnguez Mateos


Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

1.5. Arquitectura J2ME


Ciclo de Vida de una Aplicacin (VIII)
Borrado
Se realiza a travs del AMS
Se eliminan:
El MIDlet
Todos los registros en memoria permanente escritos
por ese MIDlet

Francisco Domnguez Mateos


Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

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

Francisco Domnguez Mateos


Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles

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.

Francisco Domnguez Mateos


Maximiliano Paredes Velasco
Liliana Patricia Santacruz Valencia

Programacin Multimedia y Dispositivos Mviles