Este artículo necesita ser actualizado . ( Mayo de 2023 ) |
Ediciones de la plataforma Java |
---|
|
Java Platform, Micro Edition o Java ME es una plataforma informática para el desarrollo y despliegue de código portable para dispositivos integrados y móviles (microcontroladores, sensores, puertas de enlace, teléfonos móviles, asistentes digitales personales, decodificadores de TV, impresoras). [1] Java ME era anteriormente conocido como Java 2 Platform, Micro Edition o J2ME .
La plataforma utiliza el lenguaje de programación orientado a objetos Java y forma parte de la familia de plataformas de software Java . Fue diseñada por Sun Microsystems (ahora Oracle Corporation ) y reemplazó a una tecnología similar, PersonalJava .
En 2013, con más de 3 mil millones de teléfonos móviles habilitados para Java ME en el mercado, [2] la plataforma estaba en continuo declive a medida que los teléfonos inteligentes superaban a los teléfonos con funciones básicas. [3]
La plataforma solía ser popular en teléfonos con funciones básicas, como los modelos de la Serie 40 de Nokia . También era compatible con el sistema operativo Bada y con Symbian OS junto con software nativo. Los usuarios de Windows CE , Windows Mobile , Maemo , MeeGo y Android podían descargar Java ME para sus respectivos entornos ("prueba de concepto" para Android). [4] [5]
Originalmente desarrollado bajo el Java Community Process como JSR 68, las diferentes versiones de Java ME han evolucionado en JSR independientes. Los dispositivos Java ME implementan un perfil . Los más comunes son el Perfil de dispositivo de información móvil, destinado a dispositivos móviles como teléfonos celulares, y el Perfil personal, destinado 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). [6]
En 2008, las plataformas Java ME se restringieron a las características de JRE 1.3 y utilizan esa versión del formato de archivo de clase (conocida internamente como versión 47.0).
Oracle proporciona una implementación de referencia de la especificación y algunas configuraciones y perfiles para MIDP y CDC. A partir del SDK de JavaME 3.0, un IDE basado en NetBeans los admitió en un único IDE.
A diferencia de las numerosas implementaciones binarias de la plataforma Java creadas por Sun para servidores y estaciones de trabajo, Sun tendía a no proporcionar binarios para las plataformas de destino de Java ME y, en cambio, dependía de terceros para proporcionar los suyos propios.
La excepción fue un JRE MIDP 1.0 (JVM) para Palm OS. [7] Sun no proporciona ningún JRE J2ME para los dispositivos basados en Microsoft Windows Mobile (Pocket PC), a pesar de una campaña de carta abierta dirigida a Sun para que lanzara una supuesta implementación interna de PersonalJava conocida con el nombre en código "Captain America". [8] Los proveedores de Windows Mobile utilizan ampliamente las implementaciones de terceros.
En algún momento, Sun lanzó una implementación de referencia ahora abandonada bajo el nombre phoneME .
Los sistemas operativos que apuntan a Java ME han sido implementados por DoCoMo bajo la forma de DoJa y por SavaJe bajo la forma de SavaJe OS. Esta última empresa fue adquirida por Sun en abril de 2007 y ahora constituye la base de JavaFX Mobile de Sun.
La máquina virtual de código abierto Mika tiene como objetivo implementar JavaME CDC/FP, pero no está certificada como tal (las implementaciones certificadas deben cobrar regalías, lo que 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 es similar en intención, pero muy diferente en muchos aspectos de Java ME. [9]
Existen otros emuladores, incluidos aquellos proporcionados como parte de los kits de desarrollo por los fabricantes de teléfonos, como Nokia, Sony-Ericsson , Siemens Mobile, etc.
La configuración limitada de dispositivos conectados (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 . La CLDC se utiliza básicamente para clasificar una gran cantidad de 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 dispositivo limitado conectado ofrece a los desarrolladores una plataforma Java sólida para crear aplicaciones para dispositivos de consumo e integrados. La configuración está diseñada para dispositivos con una memoria total de entre 160 KB y 512 KB, que tienen un mínimo de 160 KB de ROM y 32 KB de RAM disponibles para la plataforma Java.
Diseñado para teléfonos móviles, el Perfil de dispositivo de información móvil incluye una interfaz gráfica de usuario 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 .
JSR 271: Mobile Information Device Profile 3 (publicació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 de MIDP2.
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 cierta conectividad de red limitada.
Introducido originalmente 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 y API de seguridad y redes de MIDP 2.0, y otras API como PushRegistry
y platformRequest()
, pero nuevamente no incluye API de UI ni la API de juego.
La configuración de dispositivos conectados es un subconjunto de Java SE que contiene casi todas las bibliotecas que no están relacionadas con la interfaz gráfica de usuario. Es más completa que CLDC.
El perfil de base es un perfil de configuración de dispositivo conectado (CDC) de Java ME. Este perfil está pensado para que lo utilicen dispositivos que requieren una implementación completa de la máquina virtual Java, incluida toda la API de Java Platform, Standard Edition. Las implementaciones típicas utilizarán algún subconjunto de ese conjunto de API, según los perfiles adicionales admitidos. Esta especificación se desarrolló en el marco del proceso de la comunidad Java.
El perfil Personal Basis amplía el perfil Foundation para incluir compatibilidad con GUI liviana en forma de un subconjunto de AWT . Esta es la plataforma sobre la que se basa BD-J .
JSR # | Nombre | Descripción |
---|---|---|
68 | Especificación de la plataforma J2ME | |
30 | CLDC 1.x | |
37 | MIDP 1.0 | |
118 | MIDP 2.x | |
139 | CLDC1.1 | |
271 | MIDP 3.0 | Solo Java ME 3.4 y versiones anteriores, última especificación para teléfonos móviles, características del lenguaje Java como Java SE 1.3 |
360 | CLDC8 | Novedades en Java ME 8 |
361 | MEEP8 (MEEP8) | Novedades de Java ME 8: características del lenguaje como Java SE 8 para dispositivos de Internet de todo |
JSR # | Nombre | Descripción | MSA |
---|---|---|---|
75 | Conexión de archivos y API PIM | Sistema de archivos, contactos, calendario, tareas pendientes | |
82 | Bluetooth | Comunicaciones por puerto serie Bluetooth e intercambio de archivos (OBEX) | |
120 | API de mensajería inalámbrica (WMA) | ||
135 | API de medios móviles (MMAPI) | Audio, vídeo, multimedia | |
172 | API de servicios web | Analizadores XML y RPC | |
177 | API de servicios de seguridad y confianza (SATSA) | APDU, Java Card RMI (JCRMI), infraestructura de clave pública (PKI) y criptografía | |
179 | API de ubicación | Coordenadas GPS, direcciones de calles, sensores de orientación, tiendas de referencia | |
180 | API SIP | ||
184 | Gráficos 3D para móviles (M3G) | Gráficos 3D de alto nivel | |
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 manejo de contenido (CHAPI) | ||
226 | API de gráficos vectoriales 2D escalables para J2ME (M2G) | Manejo de SVG Tiny | |
228 | Perfil del módulo de información de próxima generación (IMP NG) | ||
229 | API de pago | ||
234 | Suplementos multimedia avanzados (AMMS) | Extensiones MMAPI | |
238 | API de internacionalización móvil | Recursos localizados, formato de fecha y número en la configuración regional, comparación de cadenas en la configuración regional | |
239 | Enlaces de Java para la API de OpenGL ES | ||
248 | Arquitectura de servicios móviles (MSA) | ||
253 | API de telefonía móvil | ||
256 | API de sensores móviles | 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 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 2.0 de gráficos vectoriales escalables en 2D para Java ME | ||
293 | API de localización 2.0 | ||
298 | API telemática para Java ME | ||
300 | API DRM para Java ME | ||
325 | Facilitadores de comunicación IMS |
JSR # | Nombre | Descripción |
---|---|---|
297 | API de gráficos 3D para dispositivos móviles (M3G) 2.0 | Proyecto de borrador final propuesto para el 14 de abril de 2009 |
El consorcio ESR se dedica a desarrollar estándares para Java integrado, especialmente estándares rentables. Los dominios de aplicación típicos son el control industrial, el de máquina a máquina, el médico, la medición electrónica, la automatización del hogar , el consumo, la interfaz hombre-máquina, etc.
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 tres tipos de objetos: objetos inmutables, inmortales y regulares (mortales). |
002 | Microinterfaz de usuario | MicroUI define una arquitectura mejorada para permitir un entorno de desarrollo de aplicaciones de terceros abierto 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 potencialmente amplio de dispositivos. |
011 | MWT | MWT define tres roles distintos: diseñadores de widgets, diseñadores de apariencia y diseño y diseñadores de aplicaciones. MWT permite que una aplicación HMI binaria se ejecute de la misma manera en todos los dispositivos que brindan un marco MWT compatible (dispositivos integrados, teléfonos celulares, decodificadores de TV, PC, etc.), lo que permite una verdadera coherencia y ubicuidad de las aplicaciones en todas las líneas de productos (ME, SE, EE). |
015 | RUTA DE CLASES | ECLASSPATH unifica los entornos de ejecución CLDC, CDC, Foundation, SE y EE con un conjunto de alrededor de 300 API de clases. 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. |