Die Java Platform, Micro Edition oder Java ME ist eine Computerplattform zur Entwicklung und Bereitstellung von portablem Code für eingebettete Systeme und mobile Geräte (Mikrocontroller, Sensoren, Gateways, Mobiltelefone, PDAs, TV-Set-Top-Boxen, Drucker). [ 1 ] Java ME war früher als Java 2 Platform, Micro Edition oder J2ME bekannt .

Die Plattform nutzt die objektorientierte Programmiersprache Java und ist Teil der Java-Softwareplattformfamilie . Sie wurde von Sun Microsystems (heute Oracle Corporation ) entwickelt und ersetzte eine ähnliche Technologie namens PersonalJava .

Im Jahr 2013, als mehr als drei Milliarden Java ME-fähige Mobiltelefone auf dem Markt waren, [ 2 ] befand sich die Plattform weiterhin im Niedergang, da Smartphones die Feature-Phones verdrängt hatten . [ 3 ]

Geschichte

Die Plattform war früher bei Feature-Phones wie den Nokia - Modellen der Serie 40 beliebt . Sie wurde auch vom Betriebssystem Bada und von Symbian OS zusammen mit nativer Software unterstützt. Nutzer von Windows CE , Windows Mobile , Maemo , MeeGo und Android konnten Java ME für ihre jeweiligen Umgebungen herunterladen (für Android als Proof-of-Concept). [ 4 ] [ 5 ]

Ursprünglich im Rahmen des Java Community Process als JSR 68 entwickelt, haben sich die verschiedenen Varianten von Java ME in separaten JSRs weiterentwickelt. Java ME-Geräte implementieren ein Profil . Die gebräuchlichsten Profile sind das Mobile Information Device Profile für mobile Geräte wie Mobiltelefone und das Personal Profile für Konsumprodukte und eingebettete Systeme wie Set-Top-Boxen und PDAs. Profile sind Teilmengen von Konfigurationen , von denen es derzeit zwei gibt: die Connected Limited Device Configuration (CLDC) und die Connected Device Configuration (CDC). [ 6 ]

Im Jahr 2008 wurden Java ME-Plattformen auf JRE 1.3-Funktionen beschränkt und verwenden diese Version des Klassendateiformats (intern als Version 47.0 bekannt).

Implementierungen

Screenshot von MicroEmulator

Oracle stellt eine Referenzimplementierung der Spezifikation sowie einige Konfigurationen und Profile für MIDP und CDC bereit. Ab dem JavaME 3.0 SDK unterstützte eine NetBeans- basierte IDE diese in einer einzigen Umgebung.

Im Gegensatz zu den zahlreichen Binärimplementierungen der Java Platform, die von Sun für Server und Workstations entwickelt wurden, stellte Sun in der Regel keine Binärdateien für die Plattformen der Java ME-Ziele bereit, sondern verließ sich stattdessen darauf, dass Dritte ihre eigenen bereitstellten.

Eine Ausnahme bildete die MIDP 1.0 JRE (JVM) für Palm OS. [ 7 ] Sun bietet keine J2ME JRE für Microsoft Windows Mobile (Pocket PC)-basierte Geräte an, trotz einer Kampagne mit offenen Briefen an Sun, in der die Veröffentlichung einer internen Implementierung von PersonalJava mit dem Codenamen „Captain America“ gefordert wurde. [ 8 ] Implementierungen von Drittanbietern werden von Windows Mobile-Anbietern häufig verwendet.

Irgendwann veröffentlichte Sun eine mittlerweile aufgegebene Referenzimplementierung unter dem Namen phoneME .

Betriebssysteme für Java ME wurden von DoCoMo in Form von DoJa und von SavaJe als SavaJe OS implementiert. Letzteres Unternehmen wurde im April 2007 von Sun übernommen und bildet nun die Grundlage für Suns JavaFX Mobile .

Die Open-Source -VM Mika zielt darauf ab, JavaME CDC/FP zu implementieren, ist jedoch nicht entsprechend zertifiziert (zertifizierte Implementierungen sind lizenzpflichtig, was für ein Open-Source-Projekt unpraktisch ist). Daher dürfen Geräte, die diese Implementierung verwenden, keine JavaME-CDC-Kompatibilität beanspruchen.

Das auf Linux basierende Betriebssystem Android verwendet eine proprietäre Version von Java, die zwar in ihrer Zielsetzung ähnlich, in vielerlei Hinsicht aber sehr unterschiedlich zu Java ME ist. [ 9 ]

Emulatoren

  • Sun Java Wireless Toolkit (kurz WTK) – ist ein proprietärer Java ME-Emulator, der ursprünglich von Sun Microsystems und später von Oracle bereitgestellt wurde.
  • MicroEmulator (kurz MicroEMU) — ist ein Open-Source-Java-ME-Emulator.
  • J2ME Loader – ein Open-Source-Android-Java-ME-Emulator.
  • FreeJ2ME-plus — Ein Fork von FreeJ2ME, einem kostenlosen, plattformübergreifenden J2ME-Emulator mit Unterstützung für Libretro- und AWT-Frontends.

Es gibt weitere Emulatoren, darunter Emulatoren, die von Telefonherstellern wie Nokia , Sony-Ericsson , Siemens Mobile usw. als Teil von Entwicklungskits bereitgestellt werden.

Konfiguration verbundener eingeschränkter Geräte

Die Connected Limited Device Configuration (CLDC) enthält eine strikte Teilmenge der Java-Klassenbibliotheken und stellt das Minimum dar, das für den Betrieb einer Java Virtual Machine erforderlich ist . CLDC dient im Wesentlichen dazu, eine Vielzahl von Geräten in eine feste Konfiguration einzuordnen.

Eine Konfiguration stellt die grundlegendsten Bibliotheken und Funktionen der virtuellen Maschine bereit, die in jeder J2ME-Umgebung vorhanden sein müssen. In Kombination mit einem oder mehreren Profilen bietet die Konfiguration für verbundene Geräte mit begrenzter Kapazität Entwicklern eine solide Java-Plattform zur Erstellung von Anwendungen für Endgeräte und eingebettete Systeme. Die Konfiguration ist für Geräte mit einem Gesamtspeicher von 160 KB bis 512 KB ausgelegt, von denen mindestens 160 KB ROM und 32 KB RAM für die Java-Plattform zur Verfügung stehen müssen.

Mobiles Informationsgeräteprofil

Das Mobile Information Device Profile (MIDP) wurde für Mobiltelefone entwickelt und umfasst eine grafische Benutzeroberfläche (GUI ) sowie eine Datenspeicher-API. MIDP 2.0 beinhaltet zudem eine grundlegende 2D-Gaming- API . Anwendungen, die für dieses Profil geschrieben werden, heißen MIDlets .

JSR 271: Mobile Information Device Profile 3 (Finale Version vom 9. Dezember 2009) spezifizierte das Mobile Information Device Profile der dritten Generation (MIDP3) und erweiterte dessen Funktionalität in allen Bereichen sowie die Interoperabilität zwischen Geräten. Ein zentrales Designziel von MIDP3 ist die Abwärtskompatibilität mit MIDP2-Inhalten.

Informationsmodulprofil

Das Information Module Profile (IMP) ist ein Profil für eingebettete, "headless" Geräte wie Verkaufsautomaten, industrielle eingebettete Anwendungen, Sicherheitssysteme und ähnliche Geräte mit einfacher oder gar keiner Anzeige und begrenzter Netzwerkanbindung.

Ursprünglich von Siemens Mobile und Nokia als JSR -195 eingeführt, ist IMP 1.0 eine strikte Teilmenge von MIDP 1.0, mit der Ausnahme, dass es keine Benutzerschnittstellen- APIs enthält – d. h. es unterstützt das Java-Paket nicht javax.microedition.lcdui. JSR-228, auch bekannt als IMP-NG, ist die nächste Generation von IMP und basiert auf MIDP 2.0. Es nutzt die neuen Sicherheits- und Netzwerktypen und APIs von MIDPPushRegistry 2.0 sowie weitere APIs wie beispielsweise platformRequest()[API-Name 1] und [API-Name 2]. Auch hier fehlen jedoch Benutzerschnittstellen-APIs und die Spiele-API.

Konfiguration des verbundenen Geräts

Die Konfiguration verbundener Geräte (Connected Device Configuration, CLDC) ist eine Teilmenge von Java SE und umfasst nahezu alle Bibliotheken, die nicht zur grafischen Benutzeroberfläche gehören. Sie ist umfangreicher als CLDC.

Stiftungsprofil

Das Foundation Profile ist ein Java ME Connected Device Configuration (CDC)-Profil. Es ist für Geräte vorgesehen, die eine vollständige Implementierung der Java Virtual Machine bis einschließlich der gesamten Java Platform, Standard Edition API benötigen. Typische Implementierungen verwenden je nach den unterstützten zusätzlichen Profilen eine Teilmenge dieser API. Diese Spezifikation wurde im Rahmen des Java Community Process entwickelt.

Persönliches Basisprofil

Das Personal Basis Profile erweitert das Foundation Profile um eine schlanke GUI-Unterstützung in Form einer AWT- Teilmenge. Auf dieser Plattform basiert BD-J .

JSRs (Java Specification Requests)

Stiftung

JSR #NameBeschreibung
68J2ME-Plattformspezifikation
30CLDC 1.x
37MIDP 1.0
118MIDP 2.x
139CLDC 1.1
271MIDP 3.0Nur Java ME 3.4 und ältere Versionen, letzte Spezifikation für Mobiltelefone, Java-Sprachmerkmale wie Java SE 1.3
360CLDC 8Neu in Java ME 8
361MEEP 8Neu in Java ME 8, Sprachfunktion wie in Java SE 8, für IoT- Geräte

Haupterweiterungen

JSR #NameBeschreibungMSA
75Dateiverbindung und PIM-APIDateisystem, Kontakte, Kalender, AufgabenJa
82BluetoothBluetooth-Schnittstellenkommunikation und Dateiaustausch (OBEX)Ja
120Wireless Messaging API (WMA)
135Mobile Media API (MMAPI)Audio, Video, MultimediaJa
172Web Services APIXML-Parser und RPCJa
177Security and Trust Services API (SATSA)APDU, Java Card RMI (JCRMI), Public-Key-Infrastruktur (PKI) und KryptographieJa
179Standort-APIGPS-Koordinaten, Straßenadressen, Orientierungssensoren, markante GeschäfteJa
180SIP-APIJa
184Mobile 3D Graphics (M3G)Hochwertige 3D-GrafikJa
185Java Technology for the Wireless Industry (JTWI)Allgemein
205Wireless Messaging API (WMA) 2.0Senden und Empfangen von SMS und MMS
211Content Handler API (CHAPI)Ja
226Skalierbare 2D-Vektorgrafik-API für J2ME (M2G)Umgang mit SVG TinyJa
228Informationsmodulprofil – Nächste Generation (IMP NG)
229Zahlungs-APIJa
234Erweiterte Multimedia-Zusätze (AMMS)MMAPI-ErweiterungenJa
238Mobile Internationalization APILokalisierte Ressourcen, Datums- und Zahlenformatierung nach Gebietsschema, Gebietsschemavergleich von ZeichenkettenJa
239Java-Bindings für die OpenGL ES API
248Mobile Service Architecture (MSA)Ja
253Mobilfunk-API
256Mobile Sensor APIMesswerte von Beschleunigungsmessern, Gyroskopen, Kompassen, Thermometern, Barometern und einigen weiteren Geräten auslesen
257API für kontaktlose Kommunikation
258API zur Anpassung der mobilen Benutzeroberfläche
272Mobile Broadcast Service API für Handheld-Terminals
280XML-API für Java ME
281IMS Services API
287Scalable 2D Vector Graphics API 2.0 for Java ME
293Standort-API 2.0
298Telematik-API für Java ME
300DRM-API für Java ME
325IMS-Kommunikationsgeräte

Zukunft

JSR #NameBeschreibung
297Mobile 3D Graphics API (M3G) 2.0Vorgeschlagener endgültiger Entwurf vom 14. April 2009

ESR

Das ESR-Konsortium widmet sich Standards für eingebettetes Java, insbesondere kosteneffizienten Standards. Typische Anwendungsbereiche sind industrielle Steuerungstechnik, Maschine-zu-Maschine-Kommunikation, Medizintechnik, elektronische Messsysteme, Hausautomation , Konsumgüter, Mensch-Maschine-Schnittstellen usw.

ESR #NameBeschreibung
001B-ON (Beyond CLDC)B-ON dient als sehr robuste Grundlage für die Implementierung eingebetteter Java-Software. Es spezifiziert eine zuverlässige Initialisierungsphase des Java-Geräts und 3 Arten von Objekten: unveränderliche, unsterbliche und reguläre (sterbliche) Objekte.
002MicroUIMicroUI definiert eine erweiterte Architektur, die eine offene Entwicklungsumgebung für Drittanbieteranwendungen für eingebettete HMI-Geräte ermöglicht. Solche Geräte verfügen typischerweise über ein Display, Eingabesensoren und gegebenenfalls über Funktionen zur Audiowiedergabe. Diese Spezifikation deckt ein potenziell breites Spektrum an Geräten ab.
011MWTMWT definiert drei unterschiedliche Rollen: Widget-Designer, Look-and-Feel-Designer und Anwendungsdesigner. MWT ermöglicht es einer binären HMI-Anwendung, auf allen Geräten mit einem kompatiblen MWT-Framework (eingebettete Systeme, Mobiltelefone, Set-Top-Boxen, PCs usw.) identisch zu laufen und gewährleistet so echte Konsistenz und universelle Einsatzmöglichkeiten von Anwendungen über verschiedene Produktlinien hinweg (ME, SE, EE).
015ECLASSPATHECLASSPATH vereint die Ausführungsumgebungen CLDC, CDC, Foundation, SE und EE mit einer API von rund 300 Klassen. Die Kompilierung gegen CLDC 1.1/ECLASSPATH gewährleistet die Portabilität des Binärcodes auf alle Java-Ausführungsumgebungen.

Siehe auch

Referenzen

Anmerkungen

Bibliographie