| Java-Plattform -Editionen |
|---|
|
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

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.
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 # | 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 ältere Versionen, letzte Spezifikation für Mobiltelefone, Java-Sprachmerkmale wie Java SE 1.3 |
| 360 | CLDC 8 | Neu in Java ME 8 |
| 361 | MEEP 8 | Neu in Java ME 8, Sprachfunktion wie in Java SE 8, für IoT- Geräte |
Haupterweiterungen
| JSR # | Name | Beschreibung | MSA |
|---|---|---|---|
| 75 | Dateiverbindung und PIM-API | Dateisystem, Kontakte, Kalender, Aufgaben | |
| 82 | Bluetooth | Bluetooth-Schnittstellenkommunikation und Dateiaustausch (OBEX) | |
| 120 | Wireless Messaging API (WMA) | ||
| 135 | Mobile Media API (MMAPI) | Audio, Video, Multimedia | |
| 172 | Web Services API | XML-Parser und RPC | |
| 177 | Security and Trust Services API (SATSA) | APDU, Java Card RMI (JCRMI), Public-Key-Infrastruktur (PKI) und Kryptographie | |
| 179 | Standort-API | GPS-Koordinaten, Straßenadressen, Orientierungssensoren, markante Geschäfte | |
| 180 | SIP-API | ||
| 184 | Mobile 3D Graphics (M3G) | Hochwertige 3D-Grafik | |
| 185 | Java Technology for the Wireless Industry (JTWI) | Allgemein | |
| 205 | Wireless Messaging API (WMA) 2.0 | Senden und Empfangen von SMS und MMS | |
| 211 | Content Handler API (CHAPI) | ||
| 226 | Skalierbare 2D-Vektorgrafik-API für J2ME (M2G) | Umgang mit SVG Tiny | |
| 228 | Informationsmodulprofil – Nächste Generation (IMP NG) | ||
| 229 | Zahlungs-API | ||
| 234 | Erweiterte Multimedia-Zusätze (AMMS) | MMAPI-Erweiterungen | |
| 238 | Mobile Internationalization API | Lokalisierte Ressourcen, Datums- und Zahlenformatierung nach Gebietsschema, Gebietsschemavergleich von Zeichenketten | |
| 239 | Java-Bindings für die OpenGL ES API | ||
| 248 | Mobile Service Architecture (MSA) | ||
| 253 | Mobilfunk-API | ||
| 256 | Mobile Sensor API | Messwerte von Beschleunigungsmessern, Gyroskopen, Kompassen, Thermometern, Barometern und einigen weiteren Geräten auslesen | |
| 257 | API für kontaktlose Kommunikation | ||
| 258 | API zur Anpassung der mobilen Benutzeroberfläche | ||
| 272 | Mobile Broadcast Service API für Handheld-Terminals | ||
| 280 | XML-API für Java ME | ||
| 281 | IMS Services API | ||
| 287 | Scalable 2D Vector Graphics API 2.0 for Java ME | ||
| 293 | Standort-API 2.0 | ||
| 298 | Telematik-API für Java ME | ||
| 300 | DRM-API für Java ME | ||
| 325 | IMS-Kommunikationsgeräte |
Zukunft
| JSR # | Name | Beschreibung |
|---|---|---|
| 297 | Mobile 3D Graphics API (M3G) 2.0 | Vorgeschlagener 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 # | Name | Beschreibung |
|---|---|---|
| 001 | B-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. |
| 002 | MicroUI | MicroUI 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. |
| 011 | MWT | MWT 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). |
| 015 | ECLASSPATH | ECLASSPATH 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
- Android (Betriebssystem)
- iOS
- BlackBerry OS
- Danger Hiptop
- Eingebettetes Java
- JavaFX Mobile
- Mobile Entwicklung
- Mobile-Spiele
- Mobiles Lernen
- Qualcomm Brew
- Smartphone
Referenzen
- ^ „Java ME Übersicht“ . Oracle Corporation . Abgerufen am 26. Februar 2017 .
- ^ „Mehr über Java-Technologie erfahren“ . Archiviert vom Original am 8. März 2013. Abgerufen am 15. Februar 2024 .
- ^ Farivar, Cyrus (14. August 2013). „Smartphones verkaufen sich weltweit (erneut) besser als Feature-Phones“ . Ars Technica . Abgerufen am 15. März 2024 .
- ^ phoneME für Windows CE, Windows Mobile und Android (Entwicklung eingestellt am 15.06.2011) – Originalversion hier
- ^ „App Runner (Entwicklung eingestellt am 11.05.2010)“ . Archiviert vom Original am 3. Januar 2012. Abgerufen am 5. August 2012 .
- ^ Java ME-Technologie
- ^ MIDP für Palm OS 1.0: Entwicklung von Java-Anwendungen für Palm OS-Geräte Januar 2002
- ^ CDC und Personal Profile – Offener Brief an SUN zur Entwicklung einer persönlichen Java-JRE für Pocket PC (Archiviert am 3. Juni 2008 in der Wayback Machine 2003)
- ^ Mobile Anwendungsentwicklung: Android im Vergleich zu J2ME ( Archiviert am 25. September 2018 in der Wayback Machine; ursprünglich Februar 2013)
- Anmerkungen
- JSR 232: Mobiles Betriebsmanagement – eine fortschrittliche, auf OSGi-Technologie basierende Plattform für mobiles Rechnen
- JSR 291: Dynamische Komponentenunterstützung für Java SE – symmetrisches Programmiermodell für Java SE zu Java ME JSR 232
Bibliographie
- Ben Hayun, Roy (30. März 2009). Java ME auf Symbian OS: Einblicke in das Smartphone-Modell (1. Aufl.). Wiley . S. 482. ISBN 978-0-470-74318-8Die
- Knudsen, Jonathan ( 8. Januar 2008). Kicking Butt with MIDP and MSA: Creating Great Mobile Applications (1. Aufl.). Prentice Hall . S. 432. ISBN 978-0-321-46342-5Die
- Li, Sing; Knudsen, Jonathan ( 25. April 2005). Beginning J2ME: From Novice to Professional (3. Aufl.). Apress . S. 480. ISBN 1-59059-479-7Die
Externe Links
- Sun Developer Network, Java ME
- Java-Seiten im Nokia Developer Hub
- Nokia S60 Java Runtime Blogs
- Sony Ericsson Developer World
- Motorola Developer Network , archiviert am 21. Juli 2009 in der Wayback Machine
- J2ME Authoring Tool LMA-Benutzernetzwerk
- Samsung Mobile Developer-Website
- Website für Sprint-Anwendungsentwickler
- Leistungsdatenbank von Java ME-kompatiblen Geräten
- MicroEJ-Plattformen für eingebettete Systeme
- Buch – Mobiltelefonprogrammierung mit Java ME (J2ME), archiviert am 5. März 2016 im Internet Archive .
- Tutorial Master ng, J2ME