Tecnología java para dispositivos con recursos limitados

Slides:



Advertisements
Presentaciones similares
DESARROLLO DE SOLUCIONES EMPRESARIALES MOVILES USANDO TECNOLOGIA SUN
Advertisements

2. Manejo de memoria Manejo de memoria estática
Programación de Dispositivos Móviles Estructura de un programa en J2ME Rogelio Ferreira Escutia.
“Java para Dispositivos Móviles”
Características Generales y Entornos de Desarrollo
DESARROLLO DE SOLUCIONES EMPRESARIALES MOVILES USANDO TECNOLOGIA SUN APLICACIONES MOVILES CON J2ME RMS Ing. Ronald Criollo.
DESARROLLO DE SOLUCIONES EMPRESARIALES MOVILES USANDO TECNOLOGIA SUN
DESARROLLO DE SOLUCIONES EMPRESARIALES MOVILES USANDO TECNOLOGIA SUN APLICACIONES MOVILES CON J2ME Ing. Ronald Criollo.
Sistema operativo Componentes de un sistema operativo
Lenguaje de programación Java
Curso de JAVA. Iniciando con las Técnologias Java.
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament dArquitectura de Computadors (Seminaris de CASO) Autors MOVING JAVA INTO MOBILE PHONES Josep Pinyol.
Programación Visual de Sistemas
"java del lado del servidor" Servlet y JSP Java Server Pages.
Instituto Tecnológico Superior de Calkiní Ingeniería en Sistemas Computacionales TÓPICOS DE PROGRAMACIÓN MÓVIL David Enrique Ochoa Díaz Licenciatura en.
JME Java Micro Edition.
RMI Remote Method Invocation
JAVA FX Es un paquete de software que te permitirá desarrollar aplicaciones web para diferentes plataformas, desde un ordenador ordinario hasta teléfonos.
INSTALACIÓN Y MANTENIMIENTO DE SISTEMAS OPERATIVOS
Jesús Arellano. La plataforma Java Micro Edition, o anteriormente Java 2 Micro Edition(J2ME), es una especificación de un subconjunto de la plataforma.
DIAGRAMA DE COMPONENTES INTEGRANTES Córdova Vásquez Giovanny Escobar Alvares Calixto Gomez Quinteros Adelaida Pinto Flores Yarmila.
Por: Santiago Toro Rendón Raquel Sepúlveda.  El SO se instala en una sección definida de la unidad de disco duro, denominada partición de disco. Existen.
Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas.
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Nuevas Aplicaciones en Equipos Móviles Pablo Roncagliolo B. Valparaíso – Chile 2006.
Weka.
Introducción a la Programación. Lenguaje de Máquina.
The world is mobile Desarrollo sobre IOS y conceptos avanzados Kevin Peñaloza M. Chief Technical Officer
Contenido: 1- Que es el .Net Framework 2- Arquitectura en .Net
IIC Creación de Videojuegos Sebastián Montabone Programación de juegos en J2ME para celulares.
EI, Profesor Ramón Castro Liceaga Agosto de 2005 UNIVERSIDAD LATINA (UNILA) PROGRAMACION ORIENTADA A OBJETOS EN JAVA (Optativa) PROGRAMACION DE INTERFASES.
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d’Arquitectura de Computadors (Seminaris de CASO) Autors Introducción a J2ME Bruno Rodríguez Rodríguez.
Curso de Java La tecnología Java
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d’Arquitectura de Computadors (Seminaris de CASO) Autors JavaOS para el negocio José Manuel García.
Ingeniería en Sistemas de Información Diseño de Sistemas (3K1)
INTRODUCCIÓN A JAVA. Índice ¿Qué es Java? La plataforma Java 2 La Máquina Virtual de Java Características principales ¿Qué ventajas tengo como desarrollador?
COMPONENTES DEL SISTEMA OPERATIVO.
J2ME M.C. Juan Carlos Olivares Rojas Department of Computer and System Instituto Tecnológico de Morelia
APLICACIONES EMPLEANDO TRANSFERENCIA POR PUERTOS ESTANDAR
Seminario de Arquitectura e Implementación de Aplicaciones Inalámbricas Internet Móvil: Tecnología y Aplicaciones (J2ME y WAP) Fecha: 26–Junio Autores:Julián.
Java for Mobile Devices M.C. Juan Carlos Olivares Rojas Department of Computer and System Instituto Tecnológico de Morelia
Programación de Dispositivos Móviles “Conceptos de J2ME” Rogelio Ferreira Escutia.
“Programando con J2ME” Rogelio Ferreira Escutia. 2 MIDlet mínimo.
EI, Profesor Ramón Castro Liceaga UNIVERSIDAD NACIONAL AUTONOMA DE MÉXICO DIPLOMADO DE DESARROLLO DE SISTEMAS CON EL PARADIGMA DE ORIENTACIÓN A OBJETOS.
Clase #7 – Sistemas de Procesamiento de Datos
JME Integrantes: Gabriel Centurión Maximiliano Felix.
INFORMÁTICA Y CONVERGENCIA TECNOLÓGICA
LE, EI, Profesor Ramón Castro Liceaga SISTEMA DE UNIVERSIDAD ABIERTA Instalación y prueba de Java.
Dispositivos Móviles John Alexander Cruz Arévalo.
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) LENGUAJES DE PROGRAMACIÓN PARA EL DESARROLLO DE INTERFACES.
Sistemas de Archivos Sistemas Operativos.  Se debe proporcionar un almacenamiento secundario que respalda a la memoria principal  El Sistema de archivos.
Manual violento de Navicat
Naime Cecilia del Toro Alvarez
Universidad Tecnológica de Izúcar de Matamoros Programa Educativo: Tecnologías de la Información Asignatura: Base de datos para aplicaciones Tema: Base.
Introducción a GDevelop
J2ME Java 2 Platform, Micro Edition (J2ME): Esta versión de Java está enfocada a la aplicación de la tecnología Java en dispositivos electrónicos con capacidades.
Un dispositivo móvil lo podemos definir como un aparato de pequeño tamaño, con algunas capacidades de procesamiento, conexión permanente o intermitente.
¿ Por que utilizar Java y la POO
DISPOSITIVOS MOVILES BRENDA KARINA QUINTERO GALEANO.
INVESTIGACION DE TEMARIO JOSE LUIS VEGA MERINO.  1.2. Requerimientos de instalación.  Microsoft Windows 7 Professional y Microsoft Windows 7 Ultimate.
QUE ES UN DISPOSITIVO MOVIL Un dispositivo móvil se puede definir como un aparato de pequeño tamaño, con algunas capacidades de procesamiento, con conexión.
El Sistema Operativo es el software básico necesario para el funcionamiento de cualquier ordenador Los Sistemas Operativos están en continua evolución.
Juan José López Espinosa Servicio de Desarrollo, ATICA Universidad de Murcia 02/06/2007 1Arquitecturas multimedia - Programación Móvil.
Programación orientada a objetos La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos.
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
Entregables del Proyecto
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Introducción a la Ingeniería de Sistemas Taller Computación Móvil Ing. Yassir Barceló
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
API J2ME Fernando Jesús Sánchez Herrera Técnico de Apoyo de Investigación Universidad Extremadura.
Transcripción de la presentación:

Tecnología java para dispositivos con recursos limitados J2ME Tecnología java para dispositivos con recursos limitados

Java 2 Micro Edition J2ME es una versión de la plataforma J2SE adaptada a las limitaciones de los móviles, PDA’s y muchos dispositivos con capacidad limitada.

Limitaciones de los dispositivos Memoria Reducida (entre 128Kb y 2Mb aprox.) Poca potencia computacional (processadores de 16 o 32 bits) Pantallas pequeñas (mínimo de 97 x 54 pixels)

Arquitectura de J2ME MIDP PDAP FP PBP PP CLDC CDC KVM CVM Perfiles MIDP JSR 37 PDAP JSR 75 FP JSR 46 PBP JSR 129 PP JSR 62 Configuraciones CLDC JSR 30 CDC JSR 36 Máquina Virtual KVM Kilobyte virtual machine CVM Compact virtual machine SO Depende del dispositivo

Configuraciones Las configuraciones proveen la base funcional para un rango de dispositivos con características similares. Especifican los siguientes aspectos: - El subconjunto del lenguaje java que puede ser usado. - El subconjunto de funciones de la Máquina Virtual Java. - Las APIs fundamentales para este tipo de desarrollo. - Los requerimientos de hardware de los dispositivos enfocados a ésta.

Configuraciones Actualmente existen dos configuraciones: Connected Limited Device Configuration (CLDC): Está diseñada para dispositivos con conexión intermitente, poco procesador, y memoria limitada como los teléfonos móviles y PDA´s (procesador de 16-32 bits y memorias de 128Kb como mínimo). Connected Device Configuration (CDC): Está diseñada para equipos con más memoria, procesadores más rápidos y conexiones de mayor ancho de banda, sistemas telemáticos de vehículos o computadores de mano de gran capacidad (procesador de 32 bits y memoria de 2Mb o más).

Perfiles Un perfil define un conjunto de APIs características comunes para un conjunto de dispositivos.

Mobile Information Device Profile MIDP es un perfil diseñado para desarrollar aplicaciones enfocadas a móviles, PDA’s y dispositivos soportados por la configuración CLDC. Se encarga de las siguientes funcionalidades: - Interfaz de usuario (javax.microedition.lcdui) - Funciones de red (añade funciones a javax.microedition.io) - Almacenamiento persisitente (javax.microedition.rms)

MIDP 1.0 y 2.0 La versión más reciente es la 2.0 (sobre CLDC 1.1), sin embargo, la mayor parte de dispositivos que hay en el mercado actual funcionan sobre MIDP 1.0 (CLDC 1.0). MIDP 2.0 MIDP 1.0 CLDC Javax.microedition.media Javax.microedition.lcdui.game Javax.microedition.pki Javax.microedition.lcdui Javax.microedition.midlet Javax.microedition.rms Java.io Java.util Java.lang Javax.microedition.io

Diferencias entre MIDP y J2SE Tipos de datos: CLDC no soporta los tipos float y double (son muy costosos). Preverificación: J2SE verifica el código en tiempo de ejecución. En J2ME una parte se verifica antes (fuera del dispositivo) reduciendo así la carga de la máquina. Descriptor y manifiesto: Cada aplicación incluye archivos adicionales con información referente a las aplicaciones. No hay recolector de basura: Hay que eliminar de forma explícita los elementos que no vayan a usarse más. La máquina virtual: La KVM es una versión reducida de la JVM diseñada para dispositivos limitados. No hay “main”: El equivalente sería la función startApp().

Javax.microedition.midlet Las aplicaciones midp heredan de la la classe MIDLet. Ésta es la encargada de gestionar el ciclo de vida de la aplicación, mediante las funciones startApp, pauseApp y destroyApp.

Javax.microedition.lcdui Este paquete contiene las clases necesarias para implementar la interficie de usuario.

Javax.microedition.lcdui Por cada MIDlet tenemos una instancia de la clase Display. La aplicación llama al método getDisplay() desde la constructora para poder referenciar a dicha instancia. Los Displayable se emplazan en la display mediante la función setCurrent(Displayable)

Javax.microedition.lcdui La calse Displayable tiene dos descendientes: - Canvas: Permite el control total de la pantalla a bajo nivel. Se usa en aplicaciones que capturan eventos y realizan llamadas gráficas. Llama al método paint(Graphics) para dibujar en la pantalla. - Screen: Ofrece estructuras predefinidas (Form, Alert, TextBox, List). No accede a las características nativas del dispositivo. Permite un mayor grado de portabilidad.

Javax.microedition.lcdui El manejo de eventos utiliza dos componentes: - Command: Es un generador de eventos que podemos asociar a un displayable mediante el método addCommand(Command). - CommandListener: Es una interfaz que permite escuchar eventos generados por Commands al objeto que la implemeta. Se invoca al método CommandAction(Command,Displayable) cada vez que se produce un nuevo evento. Se asocia a un Displayable con el método de esta clase setCommandListener(CommandListener).

Javax.microedition.lcdui.game MIDP 2.0 incorpora este paquete diseñado especialmente para el desarrollo de juegos. Ofrece una subclase de Canvas que permite trabajar con layers o capas y controlar colisones entre éstas.

Javax.microedition.lcdui.game GameCanvas: Canvas con capacidades adicionales. - Los métodos getGraphics() y flushGraphics(g) nos permiten trabajar off-screen. - El método getKeyState() permite trabajar por encuesta o polling y consultar en todo momento la tecla pulsada. LayerManager:Permite la gestión de los layers. - Mediante el método append(Layer) le asignamos layers. - setViewWindow(x,y,width,height) define la región de la pantalla donde seran visibles los layers asignados. Layer: Clase abstracta que representa un elemento visual de la aplicación. - Todas sus subclases deben implementar el método paint(Graphics).

Javax.microedition.lcdui.game Sprite: Consiste en un layer formado por una secuencia de imágenes para realizar animaciones. - Sprite(Image,width,height) crea el Sprite a partir de la imagen y el tamaño de sus secciones. - Ofrece métodos para controlar colisiones con otros layers.

Javax.microediton.lcdui.game TiledLayer: Esta compuesto por una parrilla de tiles en la que a cada uno podemos asignarle secciones de una imagen. - tiledLayer(cols,rows,img,width,height) -Permite crear tiles animados llamando al método int createAnimatedTile(tileIndex) i modificarlo mediante setAnimatedTile(animatedTileIndex,staticTileIndex)

Imágenes MIDP sólo acepta el formato png. Hay varias maneras de mostrar imágenes: - Un archivo incluido en el MIDlet. - Un array de bytes: - Almacenado en memoria persistente - Descargado de un servidor - Incluído en el propio programa El método createImage de la classe Image ofrece todas estas possibilades.

Javax.microedition.rms Este paquete proporciona una clase (RecordStore) y varias interfaces para el almacenamiento persistente. Consiste en un mecanismo simple orientado a registros que permite guardar datos, salir de la aplicación y recuperarlos en una ejecución posterior. La clase RecordStore es una colección de registros en la que cada uno se identifica por un entero (Record ID).

Javax.microedition.rms La interface RecordListener permite monitorizar los cambios en un RecordStore. Cuando se modifica un RecordStore se lanza un evento al RecordListener asociado. Hay 3 tipos de eventos: recordAdded(RecordStore rs,int recordId) recordChanged(RecordStore rs,int recordId) recordDeleted(RecordStore rs,int recordId)

Javax.microedition.io Contiene varias interfaces que ofrecen distintas posibilidades de comunicación. La clase connector permite crear las conexiones: Connection connector.open(String url) url = [protocol] : [dirección] Valores de protocol http Datagram Comm File Socket

Estructura básica de una aplicación import java.lang.*; // Packetes cldc, midp y opcionales … public class NetClientMIDlet extends MIDlet implements CommandListener { private Display display; // Interficie de usuario private Form form; // Objeto Displayable private Command exit; // Commando public NetClientMIDlet() { display = Display.getDisplay(this); // Inicialización de la interficie …} Public void startApp(){ form.setCommandListener(this); // Gestor de eventos display.setCurrent(form); // Asignación de la pantalla public void pauseApp() { public void destroyApp() { public void commandAction(Command c, Displayable d) { if (c == exit) destroyApp(); // Tratamiento de eventos

Instalación de las aplicaciones Cuando compilamos una aplicación con el Wireless toolkit se generan 2 ficheros: - JAR: Contiene todas las clases e imágenes que usa la aplicación y un fichero llamado manifiesto con información sobre su contenido (versión, midlets, etc…) - JAD: Es igual que el manifiesto y adicionalmente incluye una entrada con la url donde se encuentra el jar y otra con su tamaño. Solo hace falta este fichero para instalar la aplicación ya que durante la instalación se descarga automaticamente el jar de la url especificada.

Herramientas para el desarrollo Java 2 SDK versión 1.4 o superior J2ME Wireless Toolkit Entorno de Desarrollo Visual (IDE) Opcional. SunONE, JBuilder (Mobile Set), NetBeans.

Bibliografia Toda la información usada para desarrollar este documento ha sido obtenida en las siguientes direcciones: - http://java.sun.com/j2me/ - http://www.forum.nokia.com - http://www.microjava.com