SlideShare una empresa de Scribd logo
1 de 32
Introducción a la plataforma J2ME Jorge Iván Meza Martínez < [email_address] > http://www.jorgeivanmeza.com/ http://educacion.misservicios.net/
Contenido ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Introducción J2ME es un subconjunto de la plataforma Java preparado para desarrollar aplicaciones para dispositivos móviles con escasos recursos (memoria, pantalla, dispositivos de entrada, etc) como lo son teléfonos celulares, PDAs, beepers, etc. Imágen tomada de  developers.sun.com .
Introducción Basa su arquitectura en una máquina virtual (JVM) cuya implementación es dependiente del proveedor del dispositivo, sin embargo esta debe cumplir con el estándar básico. Con esto Java intenta extender su premisa “ write it once, run it everywhere ” a los dispositivos móviles.  Sin embargo debido a las posibles variaciones entre los distintos proveedores esta permisa no siempre se cumple con precisión. En comparación con J2SE, el desarrollo de aplicaciones móviles se encuentra seriamente restringido debido a las limitaciones de recursos de los dispositivos objetivo.
Introducción Con respecto a los dispositivos específicos donde se ejecutarán las aplicaciones, el API de J2ME se encuentra dividido en  configuraciones  (familias horizontales de dispositivos): CDC y CLDC.  Sobre estas se apoyan los  perfiles  (familias verticales de dispositivos): MIDP, los cuales amplían el alcance de su implementación.  Mas adelante se profundizará el conocimiento de estos términos. La plataforma J2ME se construye a partir de la unión de múltiples especificaciones cuya gran mayoría pasan a través del  Java Community Process   (JCP), programa que recibe las solicitudes como  Java Specification Requests  (JSR) y las analiza para posteriormente descartarlas o implementarlas según sean sus conclusiones.
Arquitectura La arquitectura de J2ME busca ser lo mas modular y escalable posible para conservar su funcionalidad y portabilidad entre la muy heterogénea gama de dispositivos objetivo. Para esto se divide en capas según el tipo de dispositivo (características y funcionalidades) sobre el cual se va a implementar la plataforma.
Arquitectura El  sistema operativo  es desarrollado por el proveedor del dispositivo. Sobre él se implementa la  máquina virtual  de Java, la cual es también desarrollada por el proveedor del dispositivo adaptándose a las particularidades de este y cumpliendo con los requisitos mínimos especificados por  Sun Microsystems . El proveedor del dispositivo es libre de agregar funcionalidades (API) propietarias mas allá del estándar para explotar al máximo los recursos específicos del dispositivo, sin embargo si se utiliza este API particular las aplicaciones desarrolladas ya no serán portables entre otros dispositivos de diferentes proveedores.
Arquitectura La  configuración  se relaciona con el tipo de dispositivo y hace referencia al conjunto mínimo de características de la máquina virtual y de las librerías de clases que van a estar disponibles para un conjunto de dispositivos según sus características. Las  configuraciones  mas conocidas son la  CLDC  ( connected limited device configuration ) y la  CDC  ( connected device configuration ).
Arquitectura
Arquitectura El  perfil  se relaciona con el nivel de aplicación y define el conjunto mínimo de APIs disponibles para una determinada familia de dispositivos, de manera mas específica y especializada que la proporcionada por la  configuración . Los  perfiles  se implementan para una  configuración  especifica.  Las  aplicaciones  se desarrollan para un  perfil  determinado. Un dispositivo pertenece a una única  configuración  pero puede soportar múltiples  perfiles .
Arquitectura El primer  perfil  que se desarrollo y por ende el mas utilizado es  MIDP  ( mobile information device profile ) para CLDC.  Este perfil posibilita el desarrollo de aplicaciones móviles con intefaz gráfica de usuario, acceso a la red, sonido, seguridad, almacenamiento de datos, etc. Este es el  perfil  utilizado para desarrollar aplicaciones móviles destinadas a teléfonos móviles y beepers con pantallas reducidas, conexión HTTP inalámbrica y memoria limitada.
Arquitectura
Configuraciones ,[object Object],[object Object],[object Object],[object Object],[object Object]
Configuraciones - CDC Configuración para dispositivos conectados , definida por la especificación  JSR-36 . Orientada a dispositivos con procesadores de 32 bits y 2MB o mas de memoria total disponible (para RAM, ROM, JVM y librerías).  Cuentan con conexión a la red (generalmente inalámbrica) y con un ancho de banda limitado. Ejemplos de estos dispositivos son equipos portátiles corriendo Windows Mobile, equipos de televisión interactiva, terminales de puntos de venta (POS), sistemas de navegación, consolas de videojuegos, reproductores de audio digital, etc. A esta  configuración  se le asocia el perfil  Foundation Profile .
Configuraciones - CLDC Configuración para dispositivos con conexión limitada , definida por la especificación  JSR-30  y mejorada por la  JSR-139 . Orientada a dispositivos con procesadores de 16 o 32 bits entre 8 a 32 Mhz y con una cantidad total disponible de memoria de al menos 160 a 512KB hasta 2MB incluyendo el perfil y paquetes adicionales.  Cuentan con una conexión de red con acceso intermitente y bajo ancho de banda. Su máquina virtual se conoce como  Kilo Virtual Machine  (KVM).
Configuraciones - CLDC Es la configuración mas restrictiva en término de recursos: potencia de cálculo, memoria, alimentación, despliegue de información, interfaces de entrada, etc. A esta  configuración  se le asocia el perfil  MIDP . Los teléfonos móviles son un buen ejemplo de esta configuración.
Diferencias entre J2SE y CLDC No hay soporte para tipos y operaciones de punto flotante.  La revisión [1.1] empieza a incluír este soporte. Sólo se definen las excepciones  Error ,  OutOfMemoryError  y  VirtualMachineError .  En [1.1] se incluye  NoClassDefFoundError . Cualquier otra condición de error será tratada de acuerdo a la implementación de la JVM. No hay soporte para  Java Native Interface  (JNI),  reflexión ,  serialización  ni ninguna interfaz de bajo nivel que dependa de ellos.  En [1.1] se incluye soporte para  K Native Interface  (KNI).
Diferencias entre J2SE y CLDC No hay finalización de objetos (llamado al método  finalize() ). No se permiten  cargadores de clases  específicos, es decir, no se puede influír en la manera como se cargan las clases. El proceso de verificación se realiza en dos etapas.  La  preverificación  se realiza en el momento del desarrollo. Para el soporte de internacionalización, CLDC debe proporcionar el soporte a la conversión entre flujos ( streams ) y  Unicode .
Diferencias entre J2SE y CLDC Las clases de J2SE que son  incluidas  por J2ME deberán ser un subconjunto de las mismas, es decir, no pueden incluír miembros o métodos públicos adicionales. Todas las clases particulares a la configuración CLDC deberán residir bajo el paquete  javax.microedition .
Perfiles Un  perfil  es un conjunto de clases que aumentan la funcionalidad de una  configuración  (para un grupo de dispositivos con unas características definidas) . El  perfil  mas utilizado es  Mobile Information Device Profile  (MIDP) para CLDC, el cual fue definido por  JSR-37  y mejorado por  JSR-118 .  Este perfil permite desarrollar aplicaciones con  interfaz de usuario, almacenamiento de datos, comunicación por red encriptada, desarrollo de juegos, manipulación de audio y video, etc . a dispositivos como teléfonos móviles y beepers.
Perfiles El  perfil  MIDP será el utilizado para el desarrollo de las aplicaciones móviles ( midlet ) durante este curso. Existen otros  perfiles  disponibles para el desarrollo de aplicaciones destinadas a otros dispositivos cmo son el  PDA Profile  (PDAP) basado en MIDP para el desarrollo de aplicaciones para PDAs, el  Foundation Profile  (FP) que incluye clases de J2SE adicionales, el  Personal Basis Profile  (PBP) que incluye soporte para  AWT  y el  Personal Profile  (PP) que incluye soporte para  applets  e interfaz gráfica de usuario ampliada.  Estos últimos basados en la  configuración  CDC.
Perfiles - MIDP Como se mencionó anteriormente, el  perfil  MIDP amplía la funcionalidad (API) de la plataforma Java mas allá de lo provisto por la  configuración  CLDC para una familia de dispositivos con recursos limitados. Por razones de seguridad y portabilidad, MIDP no permite el acceso directo al sistema operativo. Sun Microsystems proporciona la implementación de referencia de este  perfil , la cual sirve como base de implementación para los proveedores de los dispositivos quienes deben desarrollar un código nativo adicional para integrar la plataforma con su sistema operativo específico.  Este código de integración no es portable.
MIDP - Requisitos de  hardware Estos son los requisitos mínimos de  hardware  asociados a los dispositivos con soporte para el  perfil  MIDP. Al menos 128KB de memoria para almacenar la implementación de MIDP además de lo requerido por la implementación de CLDC.  Se requieren también 32KB de espacio para la pila de objetos y 8KB de memoria no volátil para guardar información persistente ante la falta de suministro eléctrico.  Los teléfonos actuales proveen comunmente al menos 2MB de memoria a la plataforma. Pantallas de mínimo 96x54 píxeles y soportar al menos dos colores.
MIDP - Requisitos de  hardware Teclado numérico, teclas de dirección y botón de selección.  Los teléfonos móviles cuentan adicionalmente con representación de las teclas alfanuméricas y botones de opciones. Algún tipo de conexión a la red (probablemente inalámbrica, ejemplo  WIFI  y  GPRS ), ya sea de manera incorporada o a través de un módem externo. Con respecto a la red no se asume conexión permanente ni soporte directo para  TCP/IP  por parte del  perfil , sin embargo debido al extenso uso que se le da al protocolo  HTTP  es necesario que el proveedor del dispositivo implemente el soporte para la versión 1.1.
MIDP – Requisitos de  software Estos son los requisitos mínimos de  software  asociados a los dispositivos con soporte para el  perfil  MIDP. Soporte para comunicación por red, ya sea directamente el protocolo HTTP, un API de bajo nivel que permita implementarlo ( sockets ) o indirectamente como una  pasarela . Acceso a los dispositivos de entrada (teclado,  stylus , etc), generación de eventos durante su manipulación y conversión de códigos a un conjunto estándar.
MIDP – Requisitos de  software Acceso a la pantalla del dispositivo como un  mapa de bits . Almacenamiento permanente que persista cuando se apague el dispositivo y una interfaz del sistema operativo para su manipulación.
Paquetes opcionales Los paquetes opcionales son librerías de clases (API) que proveen características adicionales y específicas pero que debido a sus características no pertenecen a ninguna configuración o perfil, ni definen por si mismos un entorno completo de aplicación, sin embargo pueden ser utilizadas y compartidas por diferentes perfiles. Su soporte por parte del dispositivo será opcional, es decir, si el dispositivo cuenta con los recursos de hardware y software necesarios para implementar los paquetes, por este motivo no pueden ser incluídos en un perfil general. Ejemplos de estos paquetes opcionales son los relacionados con  Bluetooth ,  Wireless Messaging API  (WMA),  RMI Optional Package  y  JDBC Optional Package  entre otros.
Máquinas virtuales Kilo Virtual Machine  (KVM) para CLDC y  Compact Virtual Machine  (CVM) para CDC.  Desarrolladas por Sun Microsystems. Los proveedores de dispositivos pueden licenciar estas máquinas virtuales o realizar su propia implementación que cumpla con los requerimientos de la especificación. Su implementación se inició con el proyecto Spotless cuyo objetivo era la implementación de una máquina virtual completa para los dispositivos  PalmPilot  con  PalmOS .
Características de las VM Tamaño de la memoria virtual y librerías de clases entre 50 y 80KB de código objeto. Reducida utilización de memoria (KB). Rendimiento efectivo en entornos de 16 y 32 bits. Arquitectura portable minimizando las secciones de código dependientes del dispositivo.
Características de las VM Recolección de basura  ( garbage collection ) y  multihilo  ( multithreading ) independientes del sistema operativo. Diseño modular para la configuración de dispositivos específicos. Implementación de tipos de datos de punto flotante y enteros largos son opcionales. No es necesaria la implementación de la finalización de objetos.
Características de las VM No se incluye el soporte para  Java Native Interface  (JNI). La verificación de las clases se realiza en el momento del desarrollo (preverificación). El soporte para arreglos multidimensionales es opcional. No es posible manipular directamente por parte de la aplicación la carga de clases.
Fin de la presentación. Creative Commons (CC)

Más contenido relacionado

La actualidad más candente

Performance tuning in sap bi 7.0
Performance tuning in sap bi 7.0Performance tuning in sap bi 7.0
Performance tuning in sap bi 7.0gireesho
 
Unidad 5 marcos de referencia para la gestión de servicios de ti
Unidad 5 marcos de referencia para la gestión de servicios de tiUnidad 5 marcos de referencia para la gestión de servicios de ti
Unidad 5 marcos de referencia para la gestión de servicios de tiJessi Luna
 
Sap manual testing
Sap manual testingSap manual testing
Sap manual testingDele N.
 
Procesos de evolución del software
Procesos de evolución del softwareProcesos de evolución del software
Procesos de evolución del softwareuriel plata
 
Introducing firebase
Introducing firebaseIntroducing firebase
Introducing firebaseFarouk Touzi
 
Core Data Service
Core Data ServiceCore Data Service
Core Data ServiceSujoy Saha
 
onpremise환경에서 kubespray설치
onpremise환경에서 kubespray설치onpremise환경에서 kubespray설치
onpremise환경에서 kubespray설치choi sungwook
 
SAP ABAP web services creation.
SAP ABAP web services creation. SAP ABAP web services creation.
SAP ABAP web services creation. Anjali Rao
 
Android development
Android developmentAndroid development
Android developmentRhitik Kumar
 
.net CLR
.net CLR.net CLR
.net CLRDevTalk
 
IBM Websphere introduction and installation for beginners
IBM Websphere introduction and installation for beginnersIBM Websphere introduction and installation for beginners
IBM Websphere introduction and installation for beginnersShubham Gupta
 
Cuadro Comparativo Datawarehouse Vs Bd Relacionales
Cuadro Comparativo Datawarehouse Vs Bd RelacionalesCuadro Comparativo Datawarehouse Vs Bd Relacionales
Cuadro Comparativo Datawarehouse Vs Bd Relacionalesguest47f539
 
Identificación y análisis de patrones de trafico malicioso en redes ip
Identificación y análisis de patrones de trafico malicioso en redes ipIdentificación y análisis de patrones de trafico malicioso en redes ip
Identificación y análisis de patrones de trafico malicioso en redes ipJaime Restrepo
 
Microsoft ALM Platform Overview
Microsoft ALM Platform OverviewMicrosoft ALM Platform Overview
Microsoft ALM Platform OverviewSteve Lange
 
Comparison of mobile os
Comparison of mobile osComparison of mobile os
Comparison of mobile osasrf786
 
Introduction to iOS Development
Introduction to iOS DevelopmentIntroduction to iOS Development
Introduction to iOS DevelopmentAsim Rais Siddiqui
 
Encoding at Scale for Live Video Streaming
Encoding at Scale for Live Video StreamingEncoding at Scale for Live Video Streaming
Encoding at Scale for Live Video StreamingRay Adensamer
 

La actualidad más candente (20)

Performance tuning in sap bi 7.0
Performance tuning in sap bi 7.0Performance tuning in sap bi 7.0
Performance tuning in sap bi 7.0
 
Unidad 5 marcos de referencia para la gestión de servicios de ti
Unidad 5 marcos de referencia para la gestión de servicios de tiUnidad 5 marcos de referencia para la gestión de servicios de ti
Unidad 5 marcos de referencia para la gestión de servicios de ti
 
Sap manual testing
Sap manual testingSap manual testing
Sap manual testing
 
Procesos de evolución del software
Procesos de evolución del softwareProcesos de evolución del software
Procesos de evolución del software
 
Introducing firebase
Introducing firebaseIntroducing firebase
Introducing firebase
 
Core Data Service
Core Data ServiceCore Data Service
Core Data Service
 
onpremise환경에서 kubespray설치
onpremise환경에서 kubespray설치onpremise환경에서 kubespray설치
onpremise환경에서 kubespray설치
 
SAP ABAP web services creation.
SAP ABAP web services creation. SAP ABAP web services creation.
SAP ABAP web services creation.
 
Android development
Android developmentAndroid development
Android development
 
.net CLR
.net CLR.net CLR
.net CLR
 
Android studio
Android studioAndroid studio
Android studio
 
IBM Websphere introduction and installation for beginners
IBM Websphere introduction and installation for beginnersIBM Websphere introduction and installation for beginners
IBM Websphere introduction and installation for beginners
 
Cuadro Comparativo Datawarehouse Vs Bd Relacionales
Cuadro Comparativo Datawarehouse Vs Bd RelacionalesCuadro Comparativo Datawarehouse Vs Bd Relacionales
Cuadro Comparativo Datawarehouse Vs Bd Relacionales
 
Identificación y análisis de patrones de trafico malicioso en redes ip
Identificación y análisis de patrones de trafico malicioso en redes ipIdentificación y análisis de patrones de trafico malicioso en redes ip
Identificación y análisis de patrones de trafico malicioso en redes ip
 
Mobile Operating System
Mobile Operating SystemMobile Operating System
Mobile Operating System
 
Primer Ejemplo de Proyecto en Android Studio
Primer Ejemplo de Proyecto en Android StudioPrimer Ejemplo de Proyecto en Android Studio
Primer Ejemplo de Proyecto en Android Studio
 
Microsoft ALM Platform Overview
Microsoft ALM Platform OverviewMicrosoft ALM Platform Overview
Microsoft ALM Platform Overview
 
Comparison of mobile os
Comparison of mobile osComparison of mobile os
Comparison of mobile os
 
Introduction to iOS Development
Introduction to iOS DevelopmentIntroduction to iOS Development
Introduction to iOS Development
 
Encoding at Scale for Live Video Streaming
Encoding at Scale for Live Video StreamingEncoding at Scale for Live Video Streaming
Encoding at Scale for Live Video Streaming
 

Similar a Introducción a la plataforma J2ME

Similar a Introducción a la plataforma J2ME (20)

La configuración CLDC
La configuración CLDCLa configuración CLDC
La configuración CLDC
 
La configuracion cldc_imprimible
La configuracion cldc_imprimibleLa configuracion cldc_imprimible
La configuracion cldc_imprimible
 
La configuracion cldc
La configuracion cldcLa configuracion cldc
La configuracion cldc
 
La configuración cldc imprimible
La configuración cldc imprimibleLa configuración cldc imprimible
La configuración cldc imprimible
 
La arquitectura j2 me
La arquitectura j2 meLa arquitectura j2 me
La arquitectura j2 me
 
Evidencias
EvidenciasEvidencias
Evidencias
 
J2ME
J2MEJ2ME
J2ME
 
J2ME
J2MEJ2ME
J2ME
 
Java Micro Edition "J2ME"
Java Micro Edition "J2ME"Java Micro Edition "J2ME"
Java Micro Edition "J2ME"
 
Java micro edition 2012
Java micro edition 2012Java micro edition 2012
Java micro edition 2012
 
Presentacion j2me
Presentacion j2mePresentacion j2me
Presentacion j2me
 
J2me Presentacion
J2me PresentacionJ2me Presentacion
J2me Presentacion
 
J2 me
J2 meJ2 me
J2 me
 
J2 me o java me
J2 me o java meJ2 me o java me
J2 me o java me
 
Tecnología androide
Tecnología androideTecnología androide
Tecnología androide
 
Tecnología androide
Tecnología androideTecnología androide
Tecnología androide
 
Tecnología androide_Mishelle_Ruiz
Tecnología androide_Mishelle_RuizTecnología androide_Mishelle_Ruiz
Tecnología androide_Mishelle_Ruiz
 
arquitectura android y tecnologia mpls
arquitectura android y tecnologia mplsarquitectura android y tecnologia mpls
arquitectura android y tecnologia mpls
 
Actividad no. 3 dispositivos moviles
Actividad no. 3 dispositivos movilesActividad no. 3 dispositivos moviles
Actividad no. 3 dispositivos moviles
 
Unidad jme-01--ingbarcia-fina-2011
Unidad jme-01--ingbarcia-fina-2011Unidad jme-01--ingbarcia-fina-2011
Unidad jme-01--ingbarcia-fina-2011
 

Más de Jorge Iván Meza Martínez

Presentación grupo de investigación UAM, 201203
Presentación grupo de investigación UAM, 201203Presentación grupo de investigación UAM, 201203
Presentación grupo de investigación UAM, 201203Jorge Iván Meza Martínez
 
Mercadeo en la era de la web 2.0, UniQuindio 20110517
Mercadeo en la era de la web 2.0, UniQuindio 20110517Mercadeo en la era de la web 2.0, UniQuindio 20110517
Mercadeo en la era de la web 2.0, UniQuindio 20110517Jorge Iván Meza Martínez
 
GridUAM, presentación del proyecto - 20110128
GridUAM, presentación del proyecto - 20110128GridUAM, presentación del proyecto - 20110128
GridUAM, presentación del proyecto - 20110128Jorge Iván Meza Martínez
 
Presentación introducción taller cluster 2010/07
Presentación introducción taller cluster 2010/07Presentación introducción taller cluster 2010/07
Presentación introducción taller cluster 2010/07Jorge Iván Meza Martínez
 
Historia breve de un compromiso de seguridad - Instalación de RedHat 8.0
Historia breve de un compromiso de seguridad - Instalación de RedHat 8.0Historia breve de un compromiso de seguridad - Instalación de RedHat 8.0
Historia breve de un compromiso de seguridad - Instalación de RedHat 8.0Jorge Iván Meza Martínez
 
Práctica: distribución de midlets mediante OTA con J2ME - parte I
Práctica: distribución de midlets mediante OTA con J2ME - parte IPráctica: distribución de midlets mediante OTA con J2ME - parte I
Práctica: distribución de midlets mediante OTA con J2ME - parte IJorge Iván Meza Martínez
 
Generación del midlet HolaMundo utilizando EclipseME
Generación del midlet HolaMundo utilizando EclipseMEGeneración del midlet HolaMundo utilizando EclipseME
Generación del midlet HolaMundo utilizando EclipseMEJorge Iván Meza Martínez
 
Generación del midlet HolaMundo utilizando las herramientas de línea de comando
Generación del midlet HolaMundo utilizando las herramientas de línea de comandoGeneración del midlet HolaMundo utilizando las herramientas de línea de comando
Generación del midlet HolaMundo utilizando las herramientas de línea de comandoJorge Iván Meza Martínez
 
Generación del midlet HolaMundo utilizando el JWTK
Generación del midlet HolaMundo utilizando el JWTKGeneración del midlet HolaMundo utilizando el JWTK
Generación del midlet HolaMundo utilizando el JWTKJorge Iván Meza Martínez
 
Introducción al desarrollo de Google Mapplets
Introducción al desarrollo de Google MappletsIntroducción al desarrollo de Google Mapplets
Introducción al desarrollo de Google MappletsJorge Iván Meza Martínez
 

Más de Jorge Iván Meza Martínez (18)

Presentación grupo de investigación UAM, 201203
Presentación grupo de investigación UAM, 201203Presentación grupo de investigación UAM, 201203
Presentación grupo de investigación UAM, 201203
 
Presentación GridUAM 201112
Presentación GridUAM 201112Presentación GridUAM 201112
Presentación GridUAM 201112
 
Mercadeo en la era de la web 2.0, UniQuindio 20110517
Mercadeo en la era de la web 2.0, UniQuindio 20110517Mercadeo en la era de la web 2.0, UniQuindio 20110517
Mercadeo en la era de la web 2.0, UniQuindio 20110517
 
GridUAM, presentación del proyecto - 20110128
GridUAM, presentación del proyecto - 20110128GridUAM, presentación del proyecto - 20110128
GridUAM, presentación del proyecto - 20110128
 
Charla introducción a processing - 2010/09
Charla introducción a processing - 2010/09Charla introducción a processing - 2010/09
Charla introducción a processing - 2010/09
 
Presentación introducción taller cluster 2010/07
Presentación introducción taller cluster 2010/07Presentación introducción taller cluster 2010/07
Presentación introducción taller cluster 2010/07
 
Historia breve de un compromiso de seguridad - Instalación de RedHat 8.0
Historia breve de un compromiso de seguridad - Instalación de RedHat 8.0Historia breve de un compromiso de seguridad - Instalación de RedHat 8.0
Historia breve de un compromiso de seguridad - Instalación de RedHat 8.0
 
Instalacion Básica De Drupal 6
Instalacion Básica De Drupal 6Instalacion Básica De Drupal 6
Instalacion Básica De Drupal 6
 
Buscador de Talento Amigo - Presentación
Buscador de Talento Amigo - PresentaciónBuscador de Talento Amigo - Presentación
Buscador de Talento Amigo - Presentación
 
Práctica: distribución de midlets mediante OTA con J2ME - parte I
Práctica: distribución de midlets mediante OTA con J2ME - parte IPráctica: distribución de midlets mediante OTA con J2ME - parte I
Práctica: distribución de midlets mediante OTA con J2ME - parte I
 
Generación del midlet HolaMundo utilizando EclipseME
Generación del midlet HolaMundo utilizando EclipseMEGeneración del midlet HolaMundo utilizando EclipseME
Generación del midlet HolaMundo utilizando EclipseME
 
Generación del midlet HolaMundo utilizando las herramientas de línea de comando
Generación del midlet HolaMundo utilizando las herramientas de línea de comandoGeneración del midlet HolaMundo utilizando las herramientas de línea de comando
Generación del midlet HolaMundo utilizando las herramientas de línea de comando
 
Introducción a Kohana Framework
Introducción a Kohana FrameworkIntroducción a Kohana Framework
Introducción a Kohana Framework
 
Generación del midlet HolaMundo utilizando el JWTK
Generación del midlet HolaMundo utilizando el JWTKGeneración del midlet HolaMundo utilizando el JWTK
Generación del midlet HolaMundo utilizando el JWTK
 
Disección del midlet Hola Mundo en J2ME
Disección del midlet Hola Mundo en J2MEDisección del midlet Hola Mundo en J2ME
Disección del midlet Hola Mundo en J2ME
 
Desarrollo de Mi Primer Mapplet
Desarrollo de Mi Primer MappletDesarrollo de Mi Primer Mapplet
Desarrollo de Mi Primer Mapplet
 
Introducción al desarrollo de Google Mapplets
Introducción al desarrollo de Google MappletsIntroducción al desarrollo de Google Mapplets
Introducción al desarrollo de Google Mapplets
 
Midlets con J2ME
Midlets con J2MEMidlets con J2ME
Midlets con J2ME
 

Último

Chat GPT para la educación Latinoamerica
Chat GPT para la educación LatinoamericaChat GPT para la educación Latinoamerica
Chat GPT para la educación LatinoamericaEdwinGarca59
 
Imágenes digitales: Calidad de la información
Imágenes digitales: Calidad de la informaciónImágenes digitales: Calidad de la información
Imágenes digitales: Calidad de la informaciónUniversidad de Sonora
 
Uso de las TIC en la vida cotidiana .
Uso de las TIC en la vida cotidiana       .Uso de las TIC en la vida cotidiana       .
Uso de las TIC en la vida cotidiana .itzyrivera61103
 
Tipos de datos en Microsoft Access de Base de Datos
Tipos de datos en Microsoft Access de Base de DatosTipos de datos en Microsoft Access de Base de Datos
Tipos de datos en Microsoft Access de Base de DatosYOMIRAVILLARREAL1
 
Desarrollo del Dominio del Internet - Estrada
Desarrollo del Dominio del Internet - EstradaDesarrollo del Dominio del Internet - Estrada
Desarrollo del Dominio del Internet - EstradaRicardoEstrada90
 
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUALJORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUALGuadalinfoHuscarGuad
 
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiCVelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC6dwwcgtpfx
 
el uso de las TIC en la vida cotidiana.pptx
el uso de las TIC en la vida cotidiana.pptxel uso de las TIC en la vida cotidiana.pptx
el uso de las TIC en la vida cotidiana.pptx221112876
 
BUSCADORES DE INTERNET (Universidad de Sonora).
BUSCADORES DE INTERNET (Universidad de Sonora).BUSCADORES DE INTERNET (Universidad de Sonora).
BUSCADORES DE INTERNET (Universidad de Sonora).jcaballerosamayoa
 
Redes Neuronales profundas convolucionales CNN ́s-1.pdf
Redes Neuronales profundas convolucionales CNN ́s-1.pdfRedes Neuronales profundas convolucionales CNN ́s-1.pdf
Redes Neuronales profundas convolucionales CNN ́s-1.pdfJosAndrRosarioVzquez
 
editorial de informática de los sueños.docx
editorial de informática de los sueños.docxeditorial de informática de los sueños.docx
editorial de informática de los sueños.docxssusere34b451
 
Navegadores de internet - Nuevas Tecnologías de la Información y la Comunicación
Navegadores de internet - Nuevas Tecnologías de la Información y la ComunicaciónNavegadores de internet - Nuevas Tecnologías de la Información y la Comunicación
Navegadores de internet - Nuevas Tecnologías de la Información y la ComunicaciónAntonia Yamilet Perez Palomares
 
De Olmos Santiago_Dolores _ M1S3AI6.pptx
De Olmos Santiago_Dolores _ M1S3AI6.pptxDe Olmos Santiago_Dolores _ M1S3AI6.pptx
De Olmos Santiago_Dolores _ M1S3AI6.pptxdoloresolmosantiago
 
Electricidad Libro compendio de temas estudiados.docx
Electricidad Libro compendio de temas estudiados.docxElectricidad Libro compendio de temas estudiados.docx
Electricidad Libro compendio de temas estudiados.docxCsarNlsonMrquezContr
 
innovacion banking & warehouse 2024 blog
innovacion banking & warehouse 2024 bloginnovacion banking & warehouse 2024 blog
innovacion banking & warehouse 2024 blogManuel Diaz
 
avancestecnologicossigloveintiunoprofetengohambreayuda
avancestecnologicossigloveintiunoprofetengohambreayudaavancestecnologicossigloveintiunoprofetengohambreayuda
avancestecnologicossigloveintiunoprofetengohambreayudadocente
 
Ejercicio 1 periodo 2 de Tecnología 2024
Ejercicio 1 periodo 2 de Tecnología 2024Ejercicio 1 periodo 2 de Tecnología 2024
Ejercicio 1 periodo 2 de Tecnología 2024NicolleAndrade7
 
herramientas web para estudiantes interesados en el tema
herramientas web para estudiantes interesados en el temaherramientas web para estudiantes interesados en el tema
herramientas web para estudiantes interesados en el temaJadeVilcscordova
 
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptx
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptxTipos de Datos de Microsoft Access-JOEL GARCIA.pptx
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptxJOELGARCIA849853
 
Introduccion-a-la-electronica-industrial.pptx
Introduccion-a-la-electronica-industrial.pptxIntroduccion-a-la-electronica-industrial.pptx
Introduccion-a-la-electronica-industrial.pptxcj12paz
 

Último (20)

Chat GPT para la educación Latinoamerica
Chat GPT para la educación LatinoamericaChat GPT para la educación Latinoamerica
Chat GPT para la educación Latinoamerica
 
Imágenes digitales: Calidad de la información
Imágenes digitales: Calidad de la informaciónImágenes digitales: Calidad de la información
Imágenes digitales: Calidad de la información
 
Uso de las TIC en la vida cotidiana .
Uso de las TIC en la vida cotidiana       .Uso de las TIC en la vida cotidiana       .
Uso de las TIC en la vida cotidiana .
 
Tipos de datos en Microsoft Access de Base de Datos
Tipos de datos en Microsoft Access de Base de DatosTipos de datos en Microsoft Access de Base de Datos
Tipos de datos en Microsoft Access de Base de Datos
 
Desarrollo del Dominio del Internet - Estrada
Desarrollo del Dominio del Internet - EstradaDesarrollo del Dominio del Internet - Estrada
Desarrollo del Dominio del Internet - Estrada
 
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUALJORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
 
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiCVelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC
 
el uso de las TIC en la vida cotidiana.pptx
el uso de las TIC en la vida cotidiana.pptxel uso de las TIC en la vida cotidiana.pptx
el uso de las TIC en la vida cotidiana.pptx
 
BUSCADORES DE INTERNET (Universidad de Sonora).
BUSCADORES DE INTERNET (Universidad de Sonora).BUSCADORES DE INTERNET (Universidad de Sonora).
BUSCADORES DE INTERNET (Universidad de Sonora).
 
Redes Neuronales profundas convolucionales CNN ́s-1.pdf
Redes Neuronales profundas convolucionales CNN ́s-1.pdfRedes Neuronales profundas convolucionales CNN ́s-1.pdf
Redes Neuronales profundas convolucionales CNN ́s-1.pdf
 
editorial de informática de los sueños.docx
editorial de informática de los sueños.docxeditorial de informática de los sueños.docx
editorial de informática de los sueños.docx
 
Navegadores de internet - Nuevas Tecnologías de la Información y la Comunicación
Navegadores de internet - Nuevas Tecnologías de la Información y la ComunicaciónNavegadores de internet - Nuevas Tecnologías de la Información y la Comunicación
Navegadores de internet - Nuevas Tecnologías de la Información y la Comunicación
 
De Olmos Santiago_Dolores _ M1S3AI6.pptx
De Olmos Santiago_Dolores _ M1S3AI6.pptxDe Olmos Santiago_Dolores _ M1S3AI6.pptx
De Olmos Santiago_Dolores _ M1S3AI6.pptx
 
Electricidad Libro compendio de temas estudiados.docx
Electricidad Libro compendio de temas estudiados.docxElectricidad Libro compendio de temas estudiados.docx
Electricidad Libro compendio de temas estudiados.docx
 
innovacion banking & warehouse 2024 blog
innovacion banking & warehouse 2024 bloginnovacion banking & warehouse 2024 blog
innovacion banking & warehouse 2024 blog
 
avancestecnologicossigloveintiunoprofetengohambreayuda
avancestecnologicossigloveintiunoprofetengohambreayudaavancestecnologicossigloveintiunoprofetengohambreayuda
avancestecnologicossigloveintiunoprofetengohambreayuda
 
Ejercicio 1 periodo 2 de Tecnología 2024
Ejercicio 1 periodo 2 de Tecnología 2024Ejercicio 1 periodo 2 de Tecnología 2024
Ejercicio 1 periodo 2 de Tecnología 2024
 
herramientas web para estudiantes interesados en el tema
herramientas web para estudiantes interesados en el temaherramientas web para estudiantes interesados en el tema
herramientas web para estudiantes interesados en el tema
 
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptx
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptxTipos de Datos de Microsoft Access-JOEL GARCIA.pptx
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptx
 
Introduccion-a-la-electronica-industrial.pptx
Introduccion-a-la-electronica-industrial.pptxIntroduccion-a-la-electronica-industrial.pptx
Introduccion-a-la-electronica-industrial.pptx
 

Introducción a la plataforma J2ME

  • 1. Introducción a la plataforma J2ME Jorge Iván Meza Martínez < [email_address] > http://www.jorgeivanmeza.com/ http://educacion.misservicios.net/
  • 2.
  • 3. Introducción J2ME es un subconjunto de la plataforma Java preparado para desarrollar aplicaciones para dispositivos móviles con escasos recursos (memoria, pantalla, dispositivos de entrada, etc) como lo son teléfonos celulares, PDAs, beepers, etc. Imágen tomada de developers.sun.com .
  • 4. Introducción Basa su arquitectura en una máquina virtual (JVM) cuya implementación es dependiente del proveedor del dispositivo, sin embargo esta debe cumplir con el estándar básico. Con esto Java intenta extender su premisa “ write it once, run it everywhere ” a los dispositivos móviles. Sin embargo debido a las posibles variaciones entre los distintos proveedores esta permisa no siempre se cumple con precisión. En comparación con J2SE, el desarrollo de aplicaciones móviles se encuentra seriamente restringido debido a las limitaciones de recursos de los dispositivos objetivo.
  • 5. Introducción Con respecto a los dispositivos específicos donde se ejecutarán las aplicaciones, el API de J2ME se encuentra dividido en configuraciones (familias horizontales de dispositivos): CDC y CLDC. Sobre estas se apoyan los perfiles (familias verticales de dispositivos): MIDP, los cuales amplían el alcance de su implementación. Mas adelante se profundizará el conocimiento de estos términos. La plataforma J2ME se construye a partir de la unión de múltiples especificaciones cuya gran mayoría pasan a través del Java Community Process (JCP), programa que recibe las solicitudes como Java Specification Requests (JSR) y las analiza para posteriormente descartarlas o implementarlas según sean sus conclusiones.
  • 6. Arquitectura La arquitectura de J2ME busca ser lo mas modular y escalable posible para conservar su funcionalidad y portabilidad entre la muy heterogénea gama de dispositivos objetivo. Para esto se divide en capas según el tipo de dispositivo (características y funcionalidades) sobre el cual se va a implementar la plataforma.
  • 7. Arquitectura El sistema operativo es desarrollado por el proveedor del dispositivo. Sobre él se implementa la máquina virtual de Java, la cual es también desarrollada por el proveedor del dispositivo adaptándose a las particularidades de este y cumpliendo con los requisitos mínimos especificados por Sun Microsystems . El proveedor del dispositivo es libre de agregar funcionalidades (API) propietarias mas allá del estándar para explotar al máximo los recursos específicos del dispositivo, sin embargo si se utiliza este API particular las aplicaciones desarrolladas ya no serán portables entre otros dispositivos de diferentes proveedores.
  • 8. Arquitectura La configuración se relaciona con el tipo de dispositivo y hace referencia al conjunto mínimo de características de la máquina virtual y de las librerías de clases que van a estar disponibles para un conjunto de dispositivos según sus características. Las configuraciones mas conocidas son la CLDC ( connected limited device configuration ) y la CDC ( connected device configuration ).
  • 10. Arquitectura El perfil se relaciona con el nivel de aplicación y define el conjunto mínimo de APIs disponibles para una determinada familia de dispositivos, de manera mas específica y especializada que la proporcionada por la configuración . Los perfiles se implementan para una configuración especifica. Las aplicaciones se desarrollan para un perfil determinado. Un dispositivo pertenece a una única configuración pero puede soportar múltiples perfiles .
  • 11. Arquitectura El primer perfil que se desarrollo y por ende el mas utilizado es MIDP ( mobile information device profile ) para CLDC. Este perfil posibilita el desarrollo de aplicaciones móviles con intefaz gráfica de usuario, acceso a la red, sonido, seguridad, almacenamiento de datos, etc. Este es el perfil utilizado para desarrollar aplicaciones móviles destinadas a teléfonos móviles y beepers con pantallas reducidas, conexión HTTP inalámbrica y memoria limitada.
  • 13.
  • 14. Configuraciones - CDC Configuración para dispositivos conectados , definida por la especificación JSR-36 . Orientada a dispositivos con procesadores de 32 bits y 2MB o mas de memoria total disponible (para RAM, ROM, JVM y librerías). Cuentan con conexión a la red (generalmente inalámbrica) y con un ancho de banda limitado. Ejemplos de estos dispositivos son equipos portátiles corriendo Windows Mobile, equipos de televisión interactiva, terminales de puntos de venta (POS), sistemas de navegación, consolas de videojuegos, reproductores de audio digital, etc. A esta configuración se le asocia el perfil Foundation Profile .
  • 15. Configuraciones - CLDC Configuración para dispositivos con conexión limitada , definida por la especificación JSR-30 y mejorada por la JSR-139 . Orientada a dispositivos con procesadores de 16 o 32 bits entre 8 a 32 Mhz y con una cantidad total disponible de memoria de al menos 160 a 512KB hasta 2MB incluyendo el perfil y paquetes adicionales. Cuentan con una conexión de red con acceso intermitente y bajo ancho de banda. Su máquina virtual se conoce como Kilo Virtual Machine (KVM).
  • 16. Configuraciones - CLDC Es la configuración mas restrictiva en término de recursos: potencia de cálculo, memoria, alimentación, despliegue de información, interfaces de entrada, etc. A esta configuración se le asocia el perfil MIDP . Los teléfonos móviles son un buen ejemplo de esta configuración.
  • 17. Diferencias entre J2SE y CLDC No hay soporte para tipos y operaciones de punto flotante. La revisión [1.1] empieza a incluír este soporte. Sólo se definen las excepciones Error , OutOfMemoryError y VirtualMachineError . En [1.1] se incluye NoClassDefFoundError . Cualquier otra condición de error será tratada de acuerdo a la implementación de la JVM. No hay soporte para Java Native Interface (JNI), reflexión , serialización ni ninguna interfaz de bajo nivel que dependa de ellos. En [1.1] se incluye soporte para K Native Interface (KNI).
  • 18. Diferencias entre J2SE y CLDC No hay finalización de objetos (llamado al método finalize() ). No se permiten cargadores de clases específicos, es decir, no se puede influír en la manera como se cargan las clases. El proceso de verificación se realiza en dos etapas. La preverificación se realiza en el momento del desarrollo. Para el soporte de internacionalización, CLDC debe proporcionar el soporte a la conversión entre flujos ( streams ) y Unicode .
  • 19. Diferencias entre J2SE y CLDC Las clases de J2SE que son incluidas por J2ME deberán ser un subconjunto de las mismas, es decir, no pueden incluír miembros o métodos públicos adicionales. Todas las clases particulares a la configuración CLDC deberán residir bajo el paquete javax.microedition .
  • 20. Perfiles Un perfil es un conjunto de clases que aumentan la funcionalidad de una configuración (para un grupo de dispositivos con unas características definidas) . El perfil mas utilizado es Mobile Information Device Profile (MIDP) para CLDC, el cual fue definido por JSR-37 y mejorado por JSR-118 . Este perfil permite desarrollar aplicaciones con interfaz de usuario, almacenamiento de datos, comunicación por red encriptada, desarrollo de juegos, manipulación de audio y video, etc . a dispositivos como teléfonos móviles y beepers.
  • 21. Perfiles El perfil MIDP será el utilizado para el desarrollo de las aplicaciones móviles ( midlet ) durante este curso. Existen otros perfiles disponibles para el desarrollo de aplicaciones destinadas a otros dispositivos cmo son el PDA Profile (PDAP) basado en MIDP para el desarrollo de aplicaciones para PDAs, el Foundation Profile (FP) que incluye clases de J2SE adicionales, el Personal Basis Profile (PBP) que incluye soporte para AWT y el Personal Profile (PP) que incluye soporte para applets e interfaz gráfica de usuario ampliada. Estos últimos basados en la configuración CDC.
  • 22. Perfiles - MIDP Como se mencionó anteriormente, el perfil MIDP amplía la funcionalidad (API) de la plataforma Java mas allá de lo provisto por la configuración CLDC para una familia de dispositivos con recursos limitados. Por razones de seguridad y portabilidad, MIDP no permite el acceso directo al sistema operativo. Sun Microsystems proporciona la implementación de referencia de este perfil , la cual sirve como base de implementación para los proveedores de los dispositivos quienes deben desarrollar un código nativo adicional para integrar la plataforma con su sistema operativo específico. Este código de integración no es portable.
  • 23. MIDP - Requisitos de hardware Estos son los requisitos mínimos de hardware asociados a los dispositivos con soporte para el perfil MIDP. Al menos 128KB de memoria para almacenar la implementación de MIDP además de lo requerido por la implementación de CLDC. Se requieren también 32KB de espacio para la pila de objetos y 8KB de memoria no volátil para guardar información persistente ante la falta de suministro eléctrico. Los teléfonos actuales proveen comunmente al menos 2MB de memoria a la plataforma. Pantallas de mínimo 96x54 píxeles y soportar al menos dos colores.
  • 24. MIDP - Requisitos de hardware Teclado numérico, teclas de dirección y botón de selección. Los teléfonos móviles cuentan adicionalmente con representación de las teclas alfanuméricas y botones de opciones. Algún tipo de conexión a la red (probablemente inalámbrica, ejemplo WIFI y GPRS ), ya sea de manera incorporada o a través de un módem externo. Con respecto a la red no se asume conexión permanente ni soporte directo para TCP/IP por parte del perfil , sin embargo debido al extenso uso que se le da al protocolo HTTP es necesario que el proveedor del dispositivo implemente el soporte para la versión 1.1.
  • 25. MIDP – Requisitos de software Estos son los requisitos mínimos de software asociados a los dispositivos con soporte para el perfil MIDP. Soporte para comunicación por red, ya sea directamente el protocolo HTTP, un API de bajo nivel que permita implementarlo ( sockets ) o indirectamente como una pasarela . Acceso a los dispositivos de entrada (teclado, stylus , etc), generación de eventos durante su manipulación y conversión de códigos a un conjunto estándar.
  • 26. MIDP – Requisitos de software Acceso a la pantalla del dispositivo como un mapa de bits . Almacenamiento permanente que persista cuando se apague el dispositivo y una interfaz del sistema operativo para su manipulación.
  • 27. Paquetes opcionales Los paquetes opcionales son librerías de clases (API) que proveen características adicionales y específicas pero que debido a sus características no pertenecen a ninguna configuración o perfil, ni definen por si mismos un entorno completo de aplicación, sin embargo pueden ser utilizadas y compartidas por diferentes perfiles. Su soporte por parte del dispositivo será opcional, es decir, si el dispositivo cuenta con los recursos de hardware y software necesarios para implementar los paquetes, por este motivo no pueden ser incluídos en un perfil general. Ejemplos de estos paquetes opcionales son los relacionados con Bluetooth , Wireless Messaging API (WMA), RMI Optional Package y JDBC Optional Package entre otros.
  • 28. Máquinas virtuales Kilo Virtual Machine (KVM) para CLDC y Compact Virtual Machine (CVM) para CDC. Desarrolladas por Sun Microsystems. Los proveedores de dispositivos pueden licenciar estas máquinas virtuales o realizar su propia implementación que cumpla con los requerimientos de la especificación. Su implementación se inició con el proyecto Spotless cuyo objetivo era la implementación de una máquina virtual completa para los dispositivos PalmPilot con PalmOS .
  • 29. Características de las VM Tamaño de la memoria virtual y librerías de clases entre 50 y 80KB de código objeto. Reducida utilización de memoria (KB). Rendimiento efectivo en entornos de 16 y 32 bits. Arquitectura portable minimizando las secciones de código dependientes del dispositivo.
  • 30. Características de las VM Recolección de basura ( garbage collection ) y multihilo ( multithreading ) independientes del sistema operativo. Diseño modular para la configuración de dispositivos específicos. Implementación de tipos de datos de punto flotante y enteros largos son opcionales. No es necesaria la implementación de la finalización de objetos.
  • 31. Características de las VM No se incluye el soporte para Java Native Interface (JNI). La verificación de las clases se realiza en el momento del desarrollo (preverificación). El soporte para arreglos multidimensionales es opcional. No es posible manipular directamente por parte de la aplicación la carga de clases.
  • 32. Fin de la presentación. Creative Commons (CC)