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 (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 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 .
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.