Java Platform, Micro Edition o Java ME es una plataforma informática para el desarrollo e implementación de código portátil 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 se conocía anteriormente como Java 2 Platform, Micro Edition o J2ME .
La plataforma utiliza el lenguaje de programación Java orientado a objetos y forma parte de la familia de plataformas de software Java . Fue diseñado por Sun Microsystems (ahora Oracle Corporation ) y reemplazó 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 básicos. [3]
La plataforma solía ser popular en los teléfonos básicos, como los modelos Serie 40 de Nokia . También fue compatible con el sistema operativo Bada y Symbian OS junto con el software nativo. Los usuarios de Windows CE , Windows Mobile , Maemo , MeeGo y Android podrían descargar Java ME para sus respectivos entornos ("prueba de concepto" para Android). [4] [5]
Originalmente desarrollado bajo el Proceso de la Comunidad Java como JSR 68, las diferentes versiones de Java ME han evolucionado en JSR separados. 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 descodificadores 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 estaban restringidas a las funciones JRE 1.3 y usaban 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 admitía en un único IDE.
En contraste con las numerosas implementaciones binarias de la plataforma Java creada por Sun para servidores y estaciones de trabajo, Sun tendía a no proporcionar binarios para las plataformas de destino Java ME y, en cambio, dependía de terceros para proporcionar los suyos propios.
La excepción fue MIDP 1.0 JRE (JVM) para Palm OS. [7] Sun no proporciona J2ME JRE para dispositivos basados en Microsoft Windows Mobile (Pocket PC), a pesar de una campaña de cartas abiertas a Sun para publicar una rumoreada implementación interna de PersonalJava conocida con el nombre clave "Capitán América". [8] Los proveedores de Windows Mobile utilizan ampliamente implementaciones de terceros.
En algún momento, Sun lanzó una implementación de referencia ahora abandonada con el nombre phoneME .
Los sistemas operativos dirigidos a Java ME han sido implementados por DoCoMo en forma de DoJa y por SavaJe como SavaJe OS. Sun compró esta última empresa en abril de 2007 y ahora forma la base de JavaFX Mobile de Sun.
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. [9]
La configuración de dispositivo limitado conectado (CLDC) contiene un subconjunto estricto de 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 funciones 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 integrados y de consumo. La configuración está diseñada para dispositivos con 160 KB a 512 KB de memoria total, que tiene 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 GUI y una API de almacenamiento de datos, y MIDP 2.0 incluye una API básica de juegos 2D . Las aplicaciones escritas para este perfil se denominan MIDlets .
JSR 271: Perfil de dispositivo de información móvil 3 (lanzamiento final el 9 de diciembre de 2009) especificó el perfil de dispositivo de información móvil de tercera generación (MIDP3), ampliando la funcionalidad en todas las áreas y mejorando la interoperabilidad entre dispositivos. Un objetivo clave del diseño 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 red y seguridad de MIDP 2.0, y otras API como PushRegistry
y platformRequest()
, pero nuevamente no incluye API de UI. , ni la API del juego.
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.
El perfil Foundation es un perfil de configuración de dispositivo conectado (CDC) de Java ME. Este perfil está destinado a ser utilizado por dispositivos que requieren una implementación completa de la máquina virtual Java incluyendo toda la API de la Plataforma Java, Edición Estándar. Las implementaciones típicas utilizará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.
El perfil personal básico amplía el perfil básico para incluir compatibilidad con GUI ligera en forma de un subconjunto AWT . Esta es la plataforma sobre la que se construye BD-J .
El consorcio 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édico, medición electrónica, automatización del hogar , consumo, interfaz hombre-máquina, etc.