Plataforma Java, Micro Edition - Java Platform, Micro Edition

Java Platform, Micro Edition o Java ME es una plataforma informática para el desarrollo y despliegue de código portátil para dispositivos integrados y móviles (microcontroladores, sensores, pasarelas, teléfonos móviles, asistentes digitales personales, decodificadores de TV, impresoras). Java ME se conocía anteriormente como Java 2 Platform, Micro Edition o J2ME .

La plataforma utiliza el lenguaje de programación Java orientado a objetos. Es parte de la familia de plataformas de software Java . Java ME fue diseñado por Sun Microsystems , adquirida por Oracle Corporation en 2010; la plataforma reemplazó una tecnología similar, PersonalJava . Desarrollado originalmente bajo el Proceso de la Comunidad Java como JSR 68, los diferentes sabores de Java ME han evolucionado en JSR separados. Oracle proporciona una implementación de referencia de la especificación, pero ha tendido a no proporcionar implementaciones binarias gratuitas de su entorno de ejecución Java ME para dispositivos móviles, sino a depender de terceros para que proporcionen las suyas propias.

A partir del 22 de diciembre de 2006, el código fuente de Java ME tiene la licencia GNU General Public License y se publica con el nombre de proyecto phoneME .

A partir de 2008, todas las plataformas Java ME están actualmente restringidas a las funciones de JRE 1.3 y utilizan esa versión del formato de archivo de clase (conocida internamente como versión 47.0). Si Oracle alguna vez declara una nueva ronda de versiones de configuración de Java ME que admitan los formatos de archivo de clases posteriores y las características del lenguaje, como las correspondientes a JRE 1.5 o 1.6 (en particular, genéricos ), implicará un trabajo adicional por parte de todos los proveedores de plataformas. para actualizar sus JRE.

Los dispositivos Java ME implementan un perfil . Los más comunes son el perfil de dispositivo de información móvil dirigido a dispositivos móviles, como teléfonos móviles, y el perfil personal dirigido a productos de consumo y dispositivos integrados como decodificadores y PDA. Los perfiles son subconjuntos de configuraciones , de las cuales actualmente hay dos: la Configuración de dispositivo limitado conectado (CLDC) y la Configuración de dispositivo conectado (CDC).

Hay más de 2,1 mil millones de teléfonos móviles y PDA habilitados para Java ME. Era popular en dispositivos de menos de $ 200, como la Serie 40 de Nokia . También se utilizó en el sistema operativo Bada y en el sistema operativo Symbian junto con el software nativo. Los usuarios de Windows CE , Windows Mobile , Maemo , MeeGo y Android pueden descargar Java ME para sus respectivos entornos ("prueba de concepto" para Android).

Configuración de dispositivo limitado conectado

La Configuración de dispositivo limitado conectado (CLDC) contiene un subconjunto estricto de las bibliotecas de clase Java y es la cantidad mínima necesaria para que funcione una máquina virtual Java . CLDC se utiliza básicamente para clasificar innumerables dispositivos en una configuración fija.

Una configuración proporciona el conjunto más básico de bibliotecas y características de máquina virtual que deben estar presentes en cada implementación de un entorno J2ME. Cuando se combina con uno o más perfiles, la configuración de dispositivos limitados conectados brinda a los desarrolladores una plataforma Java sólida para crear aplicaciones para consumidores y dispositivos integrados. La configuración está diseñada para dispositivos con una memoria total de 160KB a 512KB, que tiene un mínimo de 160KB de ROM y 32KB de RAM disponibles para la plataforma Java.

Perfil del dispositivo de información móvil

Diseñado para teléfonos móviles, el perfil de dispositivo de información móvil incluye una GUI y una API de almacenamiento de datos, y MIDP 2.0 incluye una API de juegos 2D básica . Las aplicaciones escritas para este perfil se denominan MIDlets . Casi todos los teléfonos móviles nuevos vienen con una implementación MIDP, y ahora es el estándar de facto para juegos de teléfonos móviles descargables. Sin embargo, muchos teléfonos móviles solo pueden ejecutar MIDlets que hayan sido aprobados por el operador, especialmente en América del Norte.

JSR 271: Mobile Information Device Profile 3 (versión final el 9 de diciembre de 2009) especificó el Mobile Information Device Profile (MIDP3) de tercera generación, ampliando la funcionalidad en todas las áreas y mejorando la interoperabilidad entre dispositivos. Un objetivo de diseño clave de MIDP3 es la compatibilidad con versiones anteriores del contenido MIDP2.

Perfil del módulo de información

El perfil del módulo de información (IMP) es un perfil para dispositivos integrados, "sin cabeza", como máquinas expendedoras, aplicaciones industriales integradas, sistemas de seguridad y dispositivos similares con pantalla simple o sin pantalla y con alguna conectividad de red limitada.

Originalmente presentado por Siemens Mobile y Nokia como JSR -195, IMP 1.0 es un subconjunto estricto de MIDP 1.0 excepto que no incluye API de interfaz de usuario ; en otras palabras, no incluye soporte para el paquete Java javax.microedition.lcdui . JSR-228, también conocido como IMP-NG, es la próxima generación de IMP que se basa en MIDP 2.0, aprovechando los nuevos tipos de seguridad y redes y API de MIDP 2.0, y otras API como PushRegistry y platformRequest() , pero nuevamente no incluye UI API, ni la API del juego.

Configuración del dispositivo conectado

La configuración del dispositivo conectado es un subconjunto de Java SE , que contiene casi todas las bibliotecas que no están relacionadas con la GUI. Es más rico que CLDC.

Perfil de la fundación

El perfil básico es un perfil de configuración de dispositivo conectado (CDC) de Java ME. Este perfil está diseñado para ser utilizado por dispositivos que requieran una implementación completa de la máquina virtual Java hasta e incluyendo toda la plataforma Java, API de edición estándar. Las implementaciones típicas usarán algún subconjunto de ese conjunto de API según los perfiles adicionales admitidos. Esta especificación fue desarrollada bajo el Proceso de la Comunidad Java.

Perfil de base personal

El perfil de base personal amplía el perfil de base para incluir soporte de GUI ligero en forma de un subconjunto de AWT . Esta es la plataforma sobre la que se basa BD-J .

Implementaciones

Sun proporciona una implementación de referencia de estas configuraciones y perfiles para MIDP y CDC. A partir del SDK de JavaME 3.0, un IDE basado en NetBeans los admitirá en un único IDE.

A diferencia de las numerosas implementaciones binarias de Java Platform desarrolladas por Sun para servidores y estaciones de trabajo, Sun no proporciona ningún binario para las plataformas de destinos Java ME, con la excepción de MIDP 1.0 JRE (JVM) para Palm OS. Sun no proporciona J2ME JRE para los dispositivos basados ​​en Microsoft Windows Mobile (Pocket PC), a pesar de una campaña de carta abierta a Sun para publicar una supuesta implementación interna de PersonalJava conocida con el nombre en clave "Capitán América". Las implementaciones de terceros son ampliamente utilizadas por los proveedores de Windows Mobile.

Los sistemas operativos dirigidos a Java ME han sido implementados por DoCoMo en forma de DoJa y por SavaJe como SavaJe OS. Esta última empresa fue adquirida por Sun en abril de 2007 y ahora forma la base de Sun JavaFX Mobile .

El Mika VM de código abierto tiene como objetivo implementar JavaME CDC / FP, pero no está certificado como tal (se requieren implementaciones certificadas para cobrar regalías, lo cual no es práctico para un proyecto de código abierto). En consecuencia, los dispositivos que utilizan esta implementación no pueden reclamar compatibilidad con JavaME CDC.

El sistema operativo Android basado en Linux utiliza una versión propietaria de Java que tiene una intención similar, pero muy diferente en muchos aspectos de Java Me.

JSR (solicitudes de especificación de Java)

Fundación

JSR # Nombre Descripción
68 Especificación de la plataforma J2ME
30 CLDC 1.x
37 MIDP 1.0
118 MIDP 2.x
139 CLDC 1.1
271 MIDP 3.0 Java ME 3.4 y versiones anteriores únicamente, última especificación para teléfonos móviles, características del lenguaje Java como Java SE 1.3
360 CLDC 8 Nuevo en Java ME 8
361 MEEP 8 Nuevo en Java ME 8, función de lenguaje como Java SE 8, para dispositivos de Internet of Everything

Extensiones principales

JSR # Nombre Descripción MSA
75 Conexión de archivos y API PIM Sistema de archivos, contactos, calendario, tareas pendientes sí
82 Bluetooth Comunicaciones por puerto serie Bluetooth e intercambio de archivos (OBEX) sí
120 API de mensajería inalámbrica (WMA)
135 API de medios móviles (MMAPI) Audio, video, multimedia sí
172 API de servicios web Analizadores XML y RPC sí
177 API de servicios de seguridad y confianza (SATSA) APDU, Java Card RMI (JCRMI), Public Key Infrastructure (PKI) y criptografía sí
179 API de ubicación Coordenadas GPS, direcciones de calles, sensores de orientación, tiendas emblemáticas sí
180 API SIP sí
184 Gráficos 3D móviles (M3G) Gráficos 3D de alto nivel sí
185 Tecnología Java para la industria inalámbrica (JTWI) General
205 API de mensajería inalámbrica (WMA) 2.0 Envío y recepción de SMS y MMS
211 API de controlador de contenido (CHAPI) sí
226 API de gráficos vectoriales 2D escalables para J2ME (M2G) Manejo de SVG Tiny sí
228 Perfil del módulo de información: próxima generación (IMP NG)
229 API de pago sí
234 Suplementos multimedia avanzados (AMMS) Extensiones MMAPI sí
238 API de internacionalización móvil Recursos localizados, formato de fecha y número de configuración regional, comparación de cadenas de configuración regional sí
239 Enlaces de Java para la API de OpenGL ES
248 Arquitectura de servicios móviles (MSA) sí
253 API de telefonía móvil
256 API de sensor móvil Lectura de valores de acelerómetros, giroscopios, brújulas, termómetros, barómetros y algunos más
257 API de comunicación sin contacto
258 API de personalización de la interfaz de usuario móvil
272 API de servicio de transmisión móvil para terminales portátiles
280 API XML para Java ME
281 API de servicios IMS
287 API de gráficos vectoriales 2D escalables para Java ME
293 API de ubicación 2.0
298 API de telemática para Java ME
300 API DRM para Java ME
325 Habilitadores de comunicación IMS

Futuro

JSR # Nombre Descripción
297 API de gráficos 3D para dispositivos móviles (M3G) 2.0

ESR

El consorcio de ESR se dedica a los estándares para Java integrado. Estándares especialmente rentables. Los dominios de aplicaciones típicos son control industrial, máquina a máquina, médica, medición electrónica, domótica , consumidor, interfaz persona a máquina, ...

ESR # Nombre Descripción
001 B-ON (más allá de CLDC) B-ON sirve como una base muy sólida para implementar software Java integrado. Especifica una fase de inicialización confiable del dispositivo Java y 3 tipos de objetos: objetos inmutables, inmortales y regulares (mortales).
002 MicroUI MicroUI define una arquitectura mejorada para permitir un entorno abierto de desarrollo de aplicaciones de terceros para dispositivos HMI integrados. Estos dispositivos suelen tener algún tipo de pantalla, algunos sensores de entrada y potencialmente algunas capacidades de reproducción de sonido. Esta especificación abarca un conjunto de dispositivos potencialmente amplio.
011 MWT MWT define tres roles distintos: diseñadores de widgets, diseñadores de apariencia y estilo y diseñadores de aplicaciones. MWT permite que una aplicación HMI binaria se ejecute de la misma manera en todos los dispositivos que proporcionan un marco MWT compatible (dispositivos integrados, teléfonos móviles, decodificadores de TV, PC, etc.), lo que permite una verdadera coherencia y ubicuidad de aplicaciones en todas las líneas de productos ( YO, SE, EE).
015 ECLASSPATH ECLASSPATH unifica los entornos de ejecución CLDC, CDC, Foundation, SE y EE con un conjunto de alrededor de 300 clases de API. La compilación con CLDC1.1 / ECLASSPATH hace que el código binario sea portátil en todos los entornos de ejecución de Java.

Ver también

Referencias

Notas

Bibliografía

enlaces externos