Java Platform, Micro Edition o Java ME es una plataforma informática para el desarrollo y despliegue de código portátil para dispositivos integrados y móviles (microcontroladores, sensores, pasarelas, 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. 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ó a una tecnología similar, PersonalJava . Desarrollado originalmente bajo el Proceso de la Comunidad Java como JSR 68, los diferentes sabores 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 tiempo de ejecución Java ME para dispositivos móviles, sino a depender de terceros para proporcionar las suyas propias.
Desde el 22 de diciembre de 2006, el código fuente de Java ME tiene la licencia GNU General Public License y se publica con el nombre de proyecto phoneME .
A partir de 2008, todas las plataformas Java ME están actualmente restringidas a las funciones de JRE 1.3 y utilizan esa versión del formato de archivo de clase (conocida internamente como versión 47.0). En caso de que Oracle declare alguna vez una nueva ronda de versiones de configuración de Java ME que admitan los formatos de archivo de clases posteriores y las características del lenguaje, como las correspondientes a JRE 1.5 o 1.6 (en particular, genéricos ), supondrá un 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]
Hay más de 2.100 millones de teléfonos móviles y PDA habilitados para Java ME. [3] [ ¿cuándo? ] Fue popular en dispositivos de menos de $ 200 como el 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). [4] [5]
Configuración de dispositivo limitado conectado
La Configuración de dispositivo limitado conectado (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 innumerables 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 dispositivos limitados conectados ofrece a los desarrolladores una plataforma Java sólida para crear aplicaciones para consumidores y dispositivos integrados. La configuración está diseñada para dispositivos con una memoria total de 160 KB a 512 KB, que tiene un mínimo de 160 KB de ROM y 32 KB de RAM disponibles para la plataforma Java.
Perfil del dispositivo de información móvil
Diseñado para teléfonos móviles, Mobile Information Device Profile 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 móviles nuevos vienen con una implementación MIDP, y ahora es el estándar de facto para los juegos de teléfonos móviles descargables. Sin embargo, muchos teléfonos móviles solo pueden ejecutar aquellos MIDlets que hayan sido aprobados por el operador, especialmente en América del Norte. [ cita requerida ]
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 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", como máquinas expendedoras, aplicaciones industriales integradas, sistemas de seguridad y dispositivos similares con pantalla simple o sin pantalla y con alguna conectividad de red limitada.
Originalmente presentado 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 de seguridad y redes y API de MIDP 2.0, y otras API como PushRegistry
y platformRequest()
, pero nuevamente no incluye UI API, ni la API del juego.
Configuración del dispositivo conectado
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.
Perfil de la fundación
El perfil básico es un perfil de configuración de dispositivo conectado (CDC) de Java ME. Este perfil está diseñado para ser utilizado por dispositivos que requieran una implementación completa de la máquina virtual Java hasta e incluyendo toda la plataforma Java, API de 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.
Perfil de base personal
El perfil de base personal amplía el perfil de base para incluir soporte de GUI ligero en forma de un subconjunto de 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. 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 Java Platform desarrolladas por Sun para servidores y estaciones de trabajo, Sun no proporciona ningún binario para las plataformas de destinos Java ME, con la excepción de MIDP 1.0 JRE (JVM) para Palm OS. [6] Sun no proporciona J2ME JRE para los dispositivos basados en Microsoft Windows Mobile (Pocket PC), a pesar de una campaña de carta abierta a Sun para lanzar una implementación interna de PersonalJava conocida por el nombre en clave "Capitán América". [7] Las implementaciones de terceros son ampliamente utilizadas por los proveedores de Windows Mobile.
Los sistemas operativos destinados a Java ME han sido implementados por DoCoMo en forma de DoJa y por SavaJe como SavaJe OS. Esta última empresa fue adquirida por Sun en abril de 2007 y ahora forma la base de Sun JavaFX Mobile .
El 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]
JSR (solicitudes de especificación de Java)
Fundación
JSR # | Nombre | Descripción |
---|---|---|
68 | Especificación de la plataforma J2ME | |
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 versiones anteriores únicamente, última especificación para teléfonos móviles, características del lenguaje Java como Java SE 1.3 |
360 | CLDC 8 | Nuevo en Java ME 8 |
361 | MEEP 8 | Nuevo en Java ME 8, función de lenguaje como Java SE 8, para dispositivos de Internet of Everything |
Extensiones principales
JSR # | Nombre | Descripción | MSA |
---|---|---|---|
75 | Conexión de archivos y API PIM | Sistema de archivos, contactos, calendario, tareas pendientes | |
82 | Bluetooth | Comunicaciones e intercambio de archivos por puerto serie Bluetooth (OBEX) | |
120 | API de mensajería inalámbrica (WMA) | ||
135 | API de medios móviles (MMAPI) | Audio, video, multimedia | |
172 | API de servicios web | Analizadores XML y RPC | |
177 | API de servicios de seguridad y confianza (SATSA) | APDU, Java Card RMI (JCRMI), Public Key Infrastructure (PKI) y criptografía | |
179 | API de ubicación | Coordenadas GPS, direcciones de calles, sensores de orientación, tiendas emblemáticas | |
180 | API SIP | ||
184 | Gráficos 3D 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 controlador 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: 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 número y fecha de configuración regional, comparación de cadenas de 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 sensor móvil | 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 la 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 de gráficos vectoriales 2D escalables para Java ME | ||
293 | API de ubicación 2.0 | ||
298 | API de telemática para Java ME | ||
300 | API DRM para Java ME | ||
325 | Habilitadores de comunicación IMS |
Futuro
JSR # | Nombre | Descripción |
---|---|---|
297 | API de gráficos 3D para dispositivos móviles (M3G) 2.0 |
ESR
El consorcio de 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édica, medición electrónica, domótica , consumidor, interfaz persona-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 software Java integrado. Especifica una fase de inicialización confiable del dispositivo Java y 3 tipos de objetos: objetos inmutables, inmortales y regulares (mortales). |
002 | MicroUI | 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 estilo y diseñadores de aplicaciones. MWT permite que una aplicación HMI binaria se ejecute de la misma manera en todos los dispositivos que proporcionan un marco MWT compatible (dispositivos integrados, teléfonos móviles, decodificadores de TV, PC, etc.), lo que permite una verdadera coherencia y ubicuidad de las aplicaciones en todas las líneas de productos ( YO, SE, EE). |
015 | ECLASSPATH | ECLASSPATH unifica los entornos de ejecución CLDC, CDC, Foundation, SE y EE con un conjunto de alrededor de 300 clases de API. 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. |
Ver también
- Android (sistema operativo)
- iOS
- BlackBerry OS
- Peligro hiptop
- Java incrustado
- JavaFX móvil
- Desarrollo móvil
- Juegos móviles
- Aprendizaje móvil
- Cerveza Qualcomm
- Teléfono inteligente
Referencias
- ^ "Descripción general de Java ME" . Oracle Corporation . Consultado el 26 de febrero de 2017 .
- ^ Tecnología Java ME
- ^ Acerca de Java
- ^ phoneME para Windows CE, Windows Mobile y Android (el desarrollo se detuvo en 2011-06-15) - en origen aquí
- ^ "App Runner (desarrollo detenido en 2010-05-11)" . Archivado desde el original el 3 de enero de 2012 . Consultado el 5 de agosto de 2012 .
- ^ MIDP para Palm OS 1.0: Desarrollo de aplicaciones Java para dispositivos Palm OS, enero de 2002
- ^ CDC y perfil personal: carta abierta a SUN para producir un JRE personal de Java para Pocket PC 2003
- ^ Desarrollo de aplicaciones móviles: Android en comparación con J2ME febrero de 2013
- Notas
- JSR 232: Gestión operativa móvil : una plataforma avanzada basada en tecnología OSGi para informática móvil
- JSR 291: Soporte de componentes dinámicos para Java SE - modelo de programación simétrica para Java SE a Java ME JSR 232
Bibliografía
- Ben Hayun, Roy (30 de marzo de 2009). Java ME en Symbian OS: Dentro del modelo de teléfono inteligente (1ª ed.). Wiley . pag. 482. ISBN 0-470-74318-2.
- Knudsen, Jonathan (8 de enero de 2008). Kicking Butt con MIDP y MSA: creando excelentes aplicaciones móviles (1ª ed.). Prentice Hall . pag. 432 . ISBN 0-321-46342-0.
- Li, Sing; Knudsen, Jonathan (25 de abril de 2005). Beginning J2ME: From Novice to Professional (3rd ed.). Presione . pag. 480 . ISBN 1-59059-479-7.
enlaces externos
- Red de desarrolladores de Sun, Java ME
- Páginas Java del Centro de desarrolladores de Nokia
- Blogs de Nokia S60 Java Runtime
- Sony Ericsson Developer World
- Red de desarrolladores de Motorola
- Red de usuarios de J2ME Authoring Tool LMA
- Sitio de Samsung Mobile Developer
- Sitio web del desarrollador de la aplicación Sprint
- Base de datos de rendimiento de dispositivos compatibles con Java ME
- Plataformas MicroEJ para sistemas embebidos
- Libro - Programación de teléfonos móviles usando Java ME (J2ME)
- Tutorial Master ng, J2ME