Java-Plattform, Micro Edition - Java Platform, Micro Edition

Java Platform, Micro Edition oder Java ME ist eine Computerplattform für die Entwicklung und Bereitstellung von tragbarem Code für eingebettete und mobile Geräte (Mikrocontroller, Sensoren, Gateways, Mobiltelefone, persönliche digitale Assistenten, TV-Set-Top-Boxen, Drucker). Java ME war früher als Java 2 Platform, Micro Edition oder J2ME bekannt .

Die Plattform verwendet die objektorientierte Programmiersprache Java . Es ist Teil der Java-Softwareplattformfamilie . Java ME wurde von Sun Microsystems entwickelt und 2010 von der Oracle Corporation übernommen. Die Plattform ersetzte eine ähnliche Technologie, PersonalJava . Ursprünglich im Rahmen des Java Community Process als JSR 68 entwickelt, haben sich die verschiedenen Varianten von Java ME in separaten JSRs entwickelt. Oracle bietet eine Referenzimplementierung der Spezifikation, bietet jedoch keine kostenlosen binären Implementierungen seiner Java ME-Laufzeitumgebung für mobile Geräte an, sondern verlässt sich auf Dritte, um ihre eigenen bereitzustellen.

Ab dem 22. Dezember 2006 ist der Java ME-Quellcode unter der GNU General Public License lizenziert und wird unter dem Projektnamen phoneME veröffentlicht .

Ab 2008 sind alle Java ME-Plattformen derzeit auf JRE 1.3-Funktionen beschränkt und verwenden diese Version des Klassendateiformats (intern als Version 47.0 bekannt). Sollte Oracle jemals eine neue Runde von Java ME-Konfigurationsversionen deklarieren, die die späteren Klassendateiformate und Sprachfunktionen unterstützen, z. B. diejenigen, die JRE 1.5 oder 1.6 entsprechen (insbesondere Generika ), bedeutet dies zusätzliche Arbeit seitens aller Plattformanbieter um ihre JREs zu aktualisieren.

Java ME-Geräte implementieren ein Profil . Am häufigsten sind das Profil für mobile Informationsgeräte für mobile Geräte wie Mobiltelefone und das persönliche Profil für Verbraucherprodukte und eingebettete Geräte wie Set-Top-Boxen und PDAs. Profile sind Teilmengen von Konfigurationen , von denen es derzeit zwei gibt: die CLDC (Connected Limited Device Configuration) und die CDC (Connected Device Configuration).

Es gibt mehr als 2,1 Milliarden Java ME-fähige Mobiltelefone und PDAs. Es war beliebt bei Geräten unter 200 US-Dollar wie der Nokia Series 40 . Es wurde auch auf dem Bada- Betriebssystem und unter Symbian OS zusammen mit nativer Software verwendet. Benutzer von Windows CE , Windows Mobile , Maemo , MeeGo und Android können Java ME für ihre jeweiligen Umgebungen herunterladen ("Proof-of-Concept" für Android).

Connected Limited Device-Konfiguration

Die CLDC ( Connected Limited Device Configuration ) enthält eine strikte Teilmenge der Java-Klassenbibliotheken und ist die Mindestmenge, die für den Betrieb einer virtuellen Java-Maschine erforderlich ist . CLDC wird grundsätzlich verwendet, um unzählige Geräte in eine feste Konfiguration zu klassifizieren.

Eine Konfiguration bietet die grundlegendsten Bibliotheken und Funktionen für virtuelle Maschinen, die in jeder Implementierung einer J2ME-Umgebung vorhanden sein müssen. In Verbindung mit einem oder mehreren Profilen bietet die Connected Limited Device Configuration Entwicklern eine solide Java-Plattform zum Erstellen von Anwendungen für Consumer- und Embedded-Geräte. Die Konfiguration ist für Geräte mit einem Gesamtspeicher von 160 KB bis 512 KB konzipiert, für die mindestens 160 KB ROM und 32 KB RAM für die Java-Plattform verfügbar sind.

Profil des mobilen Informationsgeräts

Das für Mobiltelefone entwickelte Mobile Information Device Profile enthält eine GUI und eine Datenspeicher-API, und MIDP 2.0 enthält eine grundlegende 2D-Gaming- API . Für dieses Profil geschriebene Anwendungen werden als MIDlets bezeichnet . Fast alle neuen Handys sind mit einer MIDP-Implementierung ausgestattet und mittlerweile der De-facto- Standard für herunterladbare Handyspiele. Auf vielen Mobiltelefonen können jedoch nur die vom Netzbetreiber genehmigten MIDlets ausgeführt werden, insbesondere in Nordamerika.

JSR 271: Mobile Information Device Profile 3 (endgültige Version am 9. Dezember 2009) spezifizierte das Mobile Information Device Profile (MIDP3) der 3. Generation, das die Funktionalität in allen Bereichen erweitert und die Interoperabilität zwischen Geräten verbessert. Ein wichtiges Entwurfsziel von MIDP3 ist die Abwärtskompatibilität mit MIDP2-Inhalten.

Profil des Informationsmoduls

Das Information Module Profile (IMP) ist ein Profil für eingebettete "kopflose" Geräte wie Verkaufsautomaten, industrielle Embedded-Anwendungen, Sicherheitssysteme und ähnliche Geräte mit einfacher oder keiner Anzeige und eingeschränkter Netzwerkkonnektivität.

IMP 1.0 wurde ursprünglich von Siemens Mobile und Nokia als JSR -195 eingeführt und ist eine strikte Teilmenge von MIDP 1.0, außer dass es keine Benutzeroberflächen- APIs enthält - mit anderen Worten, es enthält keine Unterstützung für das Java-Paket javax.microedition.lcdui . JSR-228, auch bekannt als IMP-NG, ist die nächste Generation von IMP, die auf MIDP 2.0 basiert und die neuen Sicherheits- und Netzwerktypen und APIs von MIDP 2.0 sowie andere APIs wie PushRegistry und platformRequest() nutzt, aber auch hier keine Benutzeroberfläche enthält APIs, noch die Spiel-API.

Konfiguration des verbundenen Geräts

Die Connected Device-Konfiguration ist eine Teilmenge von Java SE und enthält fast alle Bibliotheken, die nicht mit der GUI zusammenhängen. Es ist reicher als CLDC.

Stiftungsprofil

Das Foundation-Profil ist ein CDC-Profil (Java ME Connected Device Configuration). Dieses Profil soll von Geräten verwendet werden, die eine vollständige Implementierung der Java Virtual Machine bis einschließlich der gesamten Java Platform, Standard Edition API, erfordern. Typische Implementierungen verwenden abhängig von den zusätzlich unterstützten Profilen eine Teilmenge dieses API-Satzes. Diese Spezifikation wurde im Rahmen des Java Community Process entwickelt.

Persönliches Basisprofil

Das Personal Basis Profile erweitert das Foundation Profile um eine einfache GUI-Unterstützung in Form einer AWT- Teilmenge. Dies ist die Plattform, auf der BD-J basiert.

Implementierungen

Sun bietet eine Referenzimplementierung dieser Konfigurationen und Profile für MIDP und CDC. Ab dem JavaME 3.0 SDK unterstützt eine NetBeans- basierte IDE diese in einer einzigen IDE.

Im Gegensatz zu den zahlreichen binären Implementierungen der von Sun für Server und Workstations erstellten Java-Plattform bietet Sun keine Binärdateien für die Plattformen von Java ME-Zielen mit Ausnahme einer MIDP 1.0-JRE (JVM) für Palm OS. Sun bietet keine J2ME-JRE für Microsoft Windows Mobile- Geräte (Pocket PC) an, obwohl Sun eine offene Kampagne zur Veröffentlichung einer angeblichen internen Implementierung von PersonalJava veröffentlicht hat, die unter dem Codenamen "Captain America" ​​bekannt ist. Implementierungen von Drittanbietern werden von Windows Mobile-Anbietern häufig verwendet.

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

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

Das Linux-basierte Android-Betriebssystem verwendet eine proprietäre Version von Java, die in ihrer Absicht ähnlich ist, sich jedoch in vielerlei Hinsicht stark von Java Me unterscheidet.

JSRs (Java Specification Requests)

Stiftung

JSR # Name Beschreibung
68 J2ME-Plattformspezifikation
30 CLDC 1.x.
37 MIDP 1.0
118 MIDP 2.x.
139 CLDC 1.1
271 MIDP 3.0 Nur Java ME 3.4 und früher, Letzte Spezifikation für Mobiltelefone, Java-Sprachfunktionen wie Java SE 1.3
360 CLDC 8 Neu in Java ME 8
361 MEEP 8 Neu in Java ME 8, Sprachfunktion als Java SE 8, für Internet of Everything- Geräte

Haupterweiterungen

JSR # Name Beschreibung MSA
75 Dateiverbindung und PIM-API Dateisystem, Kontakte, Kalender, Aufgaben Ja
82 Bluetooth Kommunikation über serielle Bluetooth-Schnittstelle und Dateiaustausch (OBEX) Ja
120 Wireless Messaging API (WMA)
135 Mobile Media API (MMAPI) Audio, Video, Multimedia Ja
172 Web Services API XML-Parser und RPC Ja
177 API für Sicherheits- und Vertrauensdienste (SATSA) APDU, Java Card RMI (JCRMI), Public Key Infrastructure (PKI) und Kryptografie Ja
179 Standort-API GPS-Koordinaten, Straßenadressen, Orientierungssensoren, Orientierungspunkte Ja
180 SIP-API Ja
184 Mobile 3D-Grafik (M3G) Hochwertige 3D-Grafiken Ja
185 Java-Technologie für die drahtlose Industrie (JTWI) Allgemeines
205 Wireless Messaging API (WMA) 2.0 Senden und Empfangen von SMS und MMS
211 Content Handler API (CHAPI) Ja
226 Skalierbare 2D-Vektorgrafik-API für J2ME (M2G) Umgang mit SVG Tiny Ja
228 Informationsmodulprofil - Nächste Generation (IMP NG)
229 Zahlungs-API Ja
234 Advanced Multimedia Supplements (AMMS) MMAPI-Erweiterungen Ja
238 Mobile Internationalization API Lokalisierte Ressourcen, Formatierung von Datum und Nummer des Gebietsschemas, Vergleich des Gebietsschemas von Zeichenfolgen Ja
239 Java-Bindungen für die OpenGL ES-API
248 Mobile Service Architecture (MSA) Ja
253 Mobiltelefon-API
256 Mobile Sensor API Lesen von Werten von Beschleunigungsmessern, Gyroskopen, Kompassen, Thermometern, Barometern und mehr
257 Kontaktlose Kommunikations-API
258 Anpassungs-API für die mobile Benutzeroberfläche
272 Mobile Broadcast Service API für Handheld-Terminals
280 XML API für Java ME
281 IMS Services API
287 Skalierbare 2D-Vektorgrafik-API 2.0 für Java ME
293 Standort-API 2.0
298 Telematik-API für Java ME
300 DRM-API für Java ME
325 IMS-Kommunikationsaktivierer

Zukunft

JSR # Name Beschreibung
297 Mobile 3D Graphics API (M3G) 2.0

ESR

Das ESR-Konsortium widmet sich Standards für eingebettetes Java. Besonders kostengünstige Standards. Typische Anwendungsbereiche sind Industriesteuerung, Maschine-zu-Maschine, Medizin, E-Metering, Hausautomation , Verbraucher, Mensch-Maschine-Schnittstelle, ...

ESR # Name Beschreibung
001 B-ON (über CLDC hinaus) B-ON dient als sehr robuste Grundlage für die Implementierung eingebetteter Java-Software. Es gibt eine zuverlässige Initialisierungsphase des Java-Geräts und drei Arten von Objekten an: unveränderliche, unsterbliche und reguläre (sterbliche) Objekte.
002 MicroUI MicroUI definiert eine erweiterte Architektur, um eine offene Anwendungsentwicklungsumgebung von Drittanbietern für eingebettete Bediengeräte zu ermöglichen. Solche Geräte haben typischerweise irgendeine Form von Anzeige, einige Eingangssensoren und möglicherweise einige Tonwiedergabefunktionen. Diese Spezifikation umfasst einen potenziell breiten Satz von Geräten.
011 MWT MWT definiert drei unterschiedliche Rollen: Widget-Designer, Look and Feel-Designer und Anwendungsdesigner. Mit MWT kann eine binäre HMI-Anwendung auf allen Geräten, die ein kompatibles MWT-Framework (eingebettete Geräte, Mobiltelefone, Set-Top-Box-Fernseher, PCs usw.) bieten, gleich ausgeführt werden. Dies ermöglicht eine echte Konsistenz und Allgegenwart von Anwendungen über Produktlinien hinweg ( ME, SE, EE).
015 ECLASSPATH ECLASSPATH vereint CLDC-, CDC-, Foundation-, SE- und EE-Ausführungsumgebungen mit einer Reihe von rund 300 Klassen-APIs. Durch das Kompilieren mit CLDC1.1 / ECLASSPATH kann Binärcode in alle Java-Ausführungsumgebungen portiert werden.

Siehe auch

Verweise

Anmerkungen

Literaturverzeichnis

Externe Links