Plataforma Java, Micro Edición
Java Platform, Micro Edition o Java ME es una plataforma informática para el desarrollo y la 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). 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 de 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, adquirida por Oracle Corporation en 2010; la plataforma reemplazó una tecnología similar, PersonalJava. Desarrollado originalmente bajo el Proceso de la comunidad de 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 no ha tendido a proporcionar implementaciones binarias gratuitas de su entorno de tiempo de ejecución Java ME para dispositivos móviles, sino que confía en que terceros proporcionen las suyas propias. A partir de 2008, todas las plataformas Java ME están restringidas a las características de JRE 1.3 y usan esa versión del formato de archivo de clase (internamente conocida como versión 47.0). En caso de que Oracle alguna vez declare una nueva ronda de versiones de configuración de Java ME que admitan los formatos de archivo de clase y las funciones de lenguaje posteriores, como los correspondientes a JRE 1.5 o 1.6 (en particular, los 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 destinado a dispositivos móviles, como teléfonos móviles, 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).
Hay más de 2100 millones de teléfonos móviles y PDA habilitados para Java ME. Fue popular en dispositivos de menos de $ 200, como la Serie 40 de Nokia. También se usó 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 dispositivos limitados conectados
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. CLDC se utiliza básicamente para clasificar una miríada de 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 dispositivos limitados conectados brinda a los desarrolladores una sólida plataforma Java 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.
Perfil de 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 celulares nuevos vienen con una implementación MIDP, y ahora es el estándar de facto para los juegos descargables para teléfonos celulares. Sin embargo, muchos teléfonos celulares pueden ejecutar solo aquellos MIDlets que hayan sido aprobados por el operador, especialmente en América del Norte.
JSR 271: Perfil de dispositivo de información móvil 3 (Versión 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 interoperabilidad entre dispositivos. Un objetivo de diseño clave de MIDP3 es la compatibilidad con versiones anteriores del contenido de 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" dispositivos tales como máquinas expendedoras, aplicaciones industriales integradas, sistemas de seguridad y dispositivos similares con pantalla simple o sin pantalla y con conectividad de red limitada.
Lanzado 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, de nuevo, no incluye las API de la interfaz de usuario ni la API del juego.
Configuración de dispositivos conectados
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 GUI. Es más rico que CLDC.
Perfil de la Fundación
El perfil básico es un perfil de configuración de dispositivos conectados (CDC) de Java ME. Este perfil está diseñado para ser utilizado por dispositivos que requieren una implementación completa de la máquina virtual de Java hasta toda la plataforma Java, API de edición estándar incluida. 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.
Perfil de base personal
Personal Basis Profile amplía Foundation Profile para incluir compatibilidad con GUI ligera en forma de un subconjunto 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. Comenzando con JavaME 3.0 SDK, un IDE basado en NetBeans los admitirá 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 no proporciona binarios para las plataformas de objetivos 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 abierta a Sun para lanzar una supuesta implementación interna de PersonalJava conocida por el nombre en clave 'Capitán América'. Las implementaciones de terceros son ampliamente utilizadas por los proveedores de Windows Mobile.
DoCoMo ha implementado sistemas operativos dirigidos a Java ME en forma de DoJa y SavaJe como SavaJe OS. Esta última empresa fue comprada por Sun en abril de 2007 y ahora forma la base de JavaFX Mobile de Sun.
La VM Mika de código abierto pretende implementar JavaME CDC/FP, pero no está certificada 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 usan 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.
JSR (Solicitudes de especificación de Java)
Base
JSR # | Nombre | Descripción |
---|---|---|
68 | J2ME Platform Specification | |
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 antes sólo, Última especificación para teléfonos móviles, Java Language características como Java SE 1.3 |
360 | CLDC 8 | Nuevo en Java ME 8 |
361 | MEEP 8 | Nuevo en Java ME 8, Lenguaje como Java SE 8, para Internet de Todo dispositivos |
Extensiones principales
JSR # | Nombre | Descripción | MSA |
---|---|---|---|
75 | Conexión de archivos y API PIM | Sistema de archivos, contactos, calendario, a hacer | |
82 | Bluetooth | Comunicaciones en serie Bluetooth e intercambios de archivos (OBEX) | |
120 | API de mensajería inalámbrica (WMA) | ||
135 | Mobile Media API (MMAPI) | audio, vídeo, multimedia | |
172 | Web Services API | Parsers XML y RPC | |
177 | Security and Trust Services API (SATSA) | APDU, Java Card RMI (JCRMI), Public Key Infrastructure (PKI) y criptografía | |
179 | Location API | coordenadas GPS, direcciones de la calle, sensores de orientación, tiendas de referencia | |
180 | SIP API | ||
184 | Gráficos 3D móviles (M3G) | Gráficos 3D de alto nivel | |
185 | Java Technology for the Wireless Industry (JTWI) | General | |
205 | API de mensajería inalámbrica (WMA) 2.0 | Envío y recepción de SMS y MMS | |
211 | Content Handler API (CHAPI) | ||
226 | Scalable 2D Vector Graphics API para J2ME (M2G) | SVG Tiny | |
228 | Perfil del módulo de información – Next Generation (IMP NG) | ||
229 | Pago API | ||
234 | Suplementos multimedia avanzados (AMMS) | MMAPI extensions | |
238 | Mobile Internationalization API | Recursos localizados, fecha local y formato de números, comparación local de cadenas | |
239 | Java Bindings para OpenGL ES API | ||
248 | Mobile Service Architecture (MSA) | ||
253 | API de telefonía móvil | ||
256 | Mobile Sensor API | Valores de lectura 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 radiodifusión móvil para terminales portátiles | ||
280 | API XML para Java ME | ||
281 | IMS Services API | ||
287 | Scalable 2D Vector Graphics API 2.0 para Java ME | ||
293 | Location API 2.0 | ||
298 | API de telemática para Java ME | ||
300 | DRM API para Java ME | ||
325 | IMS Communication Enablers |
Futuro
JSR # | Nombre | Descripción |
---|---|---|
297 | Mobile 3D Graphics API (M3G) 2.0 |
VSG
El consorcio ESR está dedicado 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, consumidor, interfaz hombre 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 el software Java integrado. Especifica una fase de inicialización fiable del dispositivo Java, y 3 tipos de objetos: objetos inmutables, inmortales y regulares (mortales). |
002 | MicroUI | Micro UI define una arquitectura mejorada para permitir un entorno abierto, de terceros, de desarrollo de aplicaciones para dispositivos HMI integrados. Estos dispositivos suelen tener alguna forma de visualización, algunos sensores de entrada y potencialmente algunas capacidades de renderización de sonido. Esta especificación abarca un conjunto potencialmente amplio de dispositivos. |
011 | MWT | MWT define tres roles distintos: Widget Designers, Look and Feel Designers, y Application Designers. MWT permite que una aplicación HMI binaria ejecute lo mismo en todos los dispositivos que proporcionan un marco MWT compatible (dispositivos dotados, teléfonos celulares, televisores de caja encimera, PC, etc...) permitiendo una verdadera consistencia y ubicuidad de aplicaciones a través de líneas de productos (ME, SE, EE). |
015 | ECLASSPATH | ECLASSPATH unifica entornos de ejecución CLDC, CDC, Foundation, SE y EE con un conjunto de alrededor de 300 clases API. Compiling against CLDC1.1/ECLASSPATH hace que el código binario sea portátil en todos los entornos de ejecución de Java. |
Contenido relacionado
Manejo de excepciones
Hipertarjeta
Grok