Download Federación Murciana de Fútbol

Document related concepts
no text concepts found
Transcript
Juan José López Espinosa
Servicio de Desarrollo, ATICA
[email protected]
Universidad de Murcia
02/06/2007
Arquitecturas multimedia - Programación Móvil
1
Indice
 Introducción
 Ventajas de la programación móvil
 Tipos de programación
 El lenguaje J2ME
 Arquitectura
 Midp
 Clases
 Mejoras en el codigo
 Caso práctico
 Caso real
 Dudas
Arquitecturas multimedia - Programación Móvil
2
Ventajas de la programación móvil I
 Movilidad
 Estará conectado a internet en
cualquier lugar e instante,
pagina web, correo, base de
datos…
 Economía
 Tener un dispositivo móvil
(teléfono móvil, smart phone,
blackberry…) para acceder a los
programas o internet, es más
económico que un pc, portátil,
tabletPc…
Arquitecturas multimedia - Programación Móvil
3
Ventajas de la programación móvil I
 Comodidad
 Tanto a la hora de transportarlo por
su reducido tamaño…
 Como por el tiempo de puesta en
funcionamiento
 Sencillo, intuitivo
 Es más fácil de utilizar que un pc.
Cualquier persona es capaz de utilizar
las aplicaciones sin un tutorial previo.
Arquitecturas multimedia - Programación Móvil
4
Tipos de programación móvil I
Programación web
 Implementaríamos una
página web adaptada a las
limitaciones de los
dispositivos:
 Tamaño pantalla
 Velocidad de descarga
 Procesador
 Navegador del cliente
 Inconveniente: gran variedad.
Arquitecturas multimedia - Programación Móvil
5
Tipos de programación móvil II
Programación flash
 Implementaríamos una aplicación
flash:
 Tamaño pantalla
 Velocidad de descarga
 Procesador
 Inconvenientes
 Carga inicial lenta
 Dispositivos que soportan flash
Arquitecturas multimedia - Programación Móvil
6
Tipos de programación móvil III
Programación Java
 Implementaríamos una
aplicación java
 Tamaño pantalla
 Velocidad de descarga
 Procesador
 Navegador del cliente
 Inconveniente:
 Mantenimiento,
reinstalación en el cliente.
Arquitecturas multimedia - Programación Móvil
7
Arquitectura de los dispositivos I
 La KVM (Kilobyte Virtual
Machine)
 Se trata de una máquina
virtual java altamente
portable y compacta pensada
y diseñada para funcionar en
dispositivos con recursos
limitados y con conexión a
red.
 La CVM (Compact Virtual
Machine)
 . Está orientada a dispositivos
electrónicos con
procesadores de 32 bits de
gama alta y entorno a 2Mb o
más de memoria RAM.
Arquitecturas multimedia - Programación Móvil
8
Arquitectura de los dispositivos II
 Las aplicaciones se desarrollan sobre un determinado perfil que a su vez está
implementado sobre una determinada configuración.
 Un perfil define un conjunto de APIs y características comunes para una franja
vertical de dispositivos. Las clases de un perfil permiten el acceso a
funcionalidades específicas de los dispositivos como la interfaz gráfica,
funcionalidades de red, almacenamiento persistente, etc.
 Las aplicaciones desarrolladas sobre un determinado perfil van a ser portables a
cualquier dispositivo que soporte ese perfil.
 Los perfiles identifican un grupo de dispositivos por la funcionalidad que
proporcionan (electrodomésticos, teléfonos móviles, etc.) y el tipo de
aplicaciones que se ejecutarán en ellos.
 Esto hace que a la hora de construir una aplicación se cuente tanto con las APIs
del perfil como de la configuración
Arquitecturas multimedia - Programación Móvil
9
Arquitectura de los dispositivos III
 Foundation Profile. Dispositivos que carecen de interfaz




gráfica.
Personal Profile. Proporciona un entorno con un completo
soporte gráfico AWT.
RMI Profile. El perfil RMI soporta un subconjunto de las
APIs J2SE v1.3 RMI.
PDA Profile. Pretende abarcar PDAs de gama baja, tipo
Palm, con una pantalla y algún tipo de puntero.
MID Profile. Perfil más usado actualmente para el
desarrollo de aplicaciones.
Arquitecturas multimedia - Programación Móvil
10
Arquitectura de los dispositivos III
El ciclo de vida de un MIDP
esta muy bien definido ya
que ayuda al MIDlet a
coexistir con otros
programas en el MIDP.
Fases:
 Retrieval
 Installation
 Launching
 Version Management
 Removal
Arquitecturas multimedia - Programación Móvil
11
El perfil MIDP
 Este perfil esta diseñado para funcionar especialmente con CLDC.
 Las clases que contiene son:
 javax.microedition.midlet: se ocupa del ciclo de vida de la aplicación
 javax.microedition.lcdui: interfaz de usuario
 javax.microedition.rms: sistema de mantenimiento de registros (Record
Management System) usado para guardar información
 javax.microedition.io: clases para usar redes
 java.lang: clases de lenguaje
 java.util: clases de utilidades
Arquitecturas multimedia - Programación Móvil
12
Lenguaje J2ME: MIDlets
 Un MIDlet es más parecido a un applet
que a una aplicación Java estándar.
 Un MIDlet tiene que ejecutarse en un
entorno muy concreto (un dispositivo con
soporte J2ME)
 Un MIDlet tiene que heredar de la clase
MIDlet
 Tres métodos especialmente importantes:
 startApp() – Estado = ejecución.
 pauseApp() – Estado = pausa.
 destroyApp() - Estado = finalizado.
Arquitecturas multimedia - Programación Móvil
13
Lenguaje J2ME: Elementos
 Un MIDlets nos permite dos
tipos de entorno:
 Por un lado podremos trabajar
con ‘Screens’ sobre las que
podremos colocar elementos de
la interfaz de usuario, como
textos, menus, etc.
 Por otro, podremos basar
nuestras aplicaciones en ‘Canvas’
sobre las que podemos trabajar a
nivel gráfico, es decir, a más bajo
nivel. Tanto Screen como Canvas
son objetos que heredan de la
clase ‘Displayable’.
Arquitecturas multimedia - Programación Móvil
14
Lenguaje J2ME: Screen
 Un Form es un
elemento de tipo
contenedor, es capaz
de contener una serie
de elementos visuales
con los que podemos
construir interfaces
más elaboradas
int append(Item elemento)
void delete(int índice)
void insert(int índice, Item elemento)
void set(int índice, Item elemento)
size()
Arquitecturas multimedia - Programación Móvil
15
Lenguaje J2ME: MIDlets -> Elementos FORM
Arquitecturas multimedia - Programación Móvil
16
Lenguaje J2ME: MIDlets -> CANVAS
 Esta clase es capaz de
mostrar información
gráfica a nivel de píxel,
a bajo nivel.
void setColor(int rojo, int verde, int azul);
Tres métodos importantes en canvas:
void drawLine (int x1, int y1, int x2, int y2);
kieyPressed()
void drawRect (int x, int y, int ancho, int alto);
KeyReleased()
void drawRoundRect () igual que drawRect
KeyRepeated()
Arquitecturas multimedia - Programación Móvil
17
Canvas: Scrolling, primera visión
 Un fondo estático no es demasiado
atractivo, además, un mapa de 7X7 no da
demasiado juego (que es lo que cabría en
la pantalla suponiendo celdas de ½ cm),
necesitamos un mapa más grande. Para
el caso de un juego será de 7X20.
 Se hace evidente que un mapa de 7x20
tiles no cabe en la pantalla.
 SOLUCION: según se mueva nuestro
personaje principal (hombre, avión,
coche..) por el escenario, el mapa avance
en la misma dirección.
 Este desplazamiento del escenario se
llama scrolling.




















int map[]={1,1,1,1,1,1,1,
1,1,1,1,1,1,1,
1,2,1,1,1,1,1,
1,1,1,4,1,1,1,
1,1,1,1,1,1,1,
1,1,3,1,2,1,1,
1,1,1,1,1,1,1,
1,4,1,1,1,1,1,
1,1,1,1,3,1,1,
1,1,1,1,1,1,1,
1,4,1,1,1,1,1,
1,1,1,3,1,1,1,
1,1,1,1,1,1,1,
1,1,1,1,1,1,1,
1,2,1,1,1,1,1,
1,1,1,4,1,1,1,
1,1,1,1,1,1,1,
1,1,3,1,2,1,1,
1,1,1,1,1,1,1,
1,4,1,1,1,1,1};
Arquitecturas multimedia - Programación Móvil
18
Mejoras en el código II
Eliminar subexpresiones comunes
 El siguiente código:
b = Math.abs(a) * c;
d = e / (Math.abs(a) + b);
 Puede ser optimizado de la
siguiente forma:
int tmp = Math.abs(a);
b = tmp * c;
d = e / (tmp + b);
Arquitecturas multimedia - Programación Móvil
19
Mejoras en el código III
Aprovechar las variables locales
 El siguiente código:
for (int i=0; i<1000; i++)
a = obj.b * i;
 Puede ser optimizado de la
siguiente forma:
int localb = obj.b;
for (int i=0; i<1000; i++)
a = localb * i;
Arquitecturas multimedia - Programación Móvil
20
Mejoras en el código IV
Expandir los bucles
 El siguiente código:
for (int i=0; i<1000; i++)
a[i] = 25;
 Puede ser optimizado de la
siguiente forma:
for (int i=0; i<100; i++){
a[i++] = 25;
a[i++] = 25;
a[i++] = 25;
a[i++] = 25;
a[i++] = 25;
a[i++] = 25;
a[i++] = 25;
a[i++] = 25;
a[i++] = 25;
a[i++] = 25;
}
Arquitecturas multimedia - Programación Móvil
21
Estructura, ejemplo
BBDD
Programación de la
BBDD en MySQL
Controlador BBDD
Programación del controlador de
BBDD en PHP (genera páginas
web que serán accedidas por el
terminal móvil)
Arquitecturas multimedia - Programación Móvil
Cliente Móvil
Programación del
cliente móvil en
J2ME. “Llama” a
las páginas php
22
Caso practico
Arquitecturas multimedia - Programación Móvil
23
Caso real
Secretaría virtual móvil
Servicios ofrecidos al usuario
 Reserva de alas
 Reserva Instalaciones
deportivas
 Consulta estado CI
 Consulta de notas
 Consulta de expediente
Arquitecturas multimedia - Programación Móvil
24
Juan José López Espinosa
Servicio de Desarrollo, ATICA
[email protected]
Arquitecturas multimedia - Programación Móvil
25