La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Juan José López Espinosa Servicio de Desarrollo, ATICA Universidad de Murcia 02/06/2007 1Arquitecturas multimedia - Programación Móvil.

Presentaciones similares


Presentación del tema: "Juan José López Espinosa Servicio de Desarrollo, ATICA Universidad de Murcia 02/06/2007 1Arquitecturas multimedia - Programación Móvil."— Transcripción de la presentación:

1 Juan José López Espinosa Servicio de Desarrollo, ATICA juanjolp@um.es Universidad de Murcia 02/06/2007 1Arquitecturas multimedia - Programación Móvil

2 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 2Arquitecturas multimedia - Programación Móvil

3 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… 3Arquitecturas multimedia - Programación Móvil

4 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. Ventajas de la programación móvil I 4Arquitecturas multimedia - Programación Móvil

5 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. 5Arquitecturas multimedia - Programación Móvil

6 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 6Arquitecturas multimedia - Programación Móvil

7 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. 7Arquitecturas multimedia - Programación Móvil

8 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. 8Arquitecturas multimedia - Programación Móvil

9 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 9Arquitecturas multimedia - Programación Móvil

10 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. 10Arquitecturas multimedia - Programación Móvil

11 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 11 Arquitectura de los dispositivos III Arquitecturas multimedia - Programación Móvil

12 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 12Arquitecturas multimedia - Programación Móvil

13 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. 13Arquitecturas multimedia - Programación Móvil

14 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óvil14

15 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 Arquitecturas multimedia - Programación Móvil15 int append(Item elemento) void delete(int índice) void insert(int índice, Item elemento) void set(int índice, Item elemento) size()

16 16 Lenguaje J2ME: MIDlets -> Elementos FORM Arquitecturas multimedia - Programación Móvil

17 Lenguaje J2ME: MIDlets -> CANVAS Esta clase es capaz de mostrar información gráfica a nivel de píxel, a bajo nivel. Arquitecturas multimedia - Programación Móvil17 void setColor(int rojo, int verde, int azul); void drawLine (int x1, int y1, int x2, int y2); void drawRect (int x, int y, int ancho, int alto); void drawRoundRect () igual que drawRect Tres métodos importantes en canvas: kieyPressed() KeyReleased() KeyRepeated()

18 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,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}; 18Arquitecturas multimedia - Programación Móvil

19 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); 19Arquitecturas multimedia - Programación Móvil

20 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; 20Arquitecturas multimedia - Programación Móvil

21 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; } 21Arquitecturas multimedia - Programación Móvil

22 Estructura, ejemplo Controlador BBDD BBDD Cliente Móvil Programación de la BBDD en MySQL Programación del controlador de BBDD en PHP (genera páginas web que serán accedidas por el terminal móvil) Programación del cliente móvil en J2ME. “Llama” a las páginas php 22Arquitecturas multimedia - Programación Móvil

23 Caso practico 23Arquitecturas multimedia - Programación Móvil

24 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 24Arquitecturas multimedia - Programación Móvil

25 Juan José López Espinosa Servicio de Desarrollo, ATICA juanjolp@um.es 25Arquitecturas multimedia - Programación Móvil


Descargar ppt "Juan José López Espinosa Servicio de Desarrollo, ATICA Universidad de Murcia 02/06/2007 1Arquitecturas multimedia - Programación Móvil."

Presentaciones similares


Anuncios Google