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 . A partir del 22 de diciembre de 2006, el código fuente de Java ME tiene la licencia pública general GNU y se publica con el nombre de proyecto phoneME .
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 , adquirido por Oracle Corporation en 2010; la plataforma reemplazó una tecnología similar, PersonalJava . Originalmente desarrollado bajo el Proceso de la Comunidad Java como JSR 68, las diferentes versiones 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 que depende de terceros para que proporcionen las suyas propias. A partir de 2008, todas las plataformas Java ME están restringidas a las funciones 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 declarara una nueva ronda de versiones de configuración de Java ME que admitan los formatos de archivos de clases y características de lenguaje posteriores, como los correspondientes a JRE 1.5 o 1.6 (en particular, genéricos ), implicará trabajo adicional por parte de todos los proveedores de plataformas. para actualizar sus JRE. [¿ especulación? ]
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). [2]
En 2013, había más de 3 mil millones de teléfonos móviles habilitados para Java ME, y cada año se comercializaban más de 30 veces más teléfonos Java que Android e iOS combinados. [3] 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 podrían descargar Java ME para sus respectivos entornos ("prueba de concepto" para Android). [4] [5]
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 .
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 la plataforma Java creada por Sun para servidores y estaciones de trabajo, Sun no proporciona ningún binario para las plataformas de destino Java ME con la excepción de MIDP 1.0 JRE (JVM) para Palm OS. [6] 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". [7] Los proveedores de Windows Mobile utilizan ampliamente implementaciones de terceros.
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. [8]
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.