Java-Plattform, Micro Edition - Java Platform, Micro Edition
Java-Plattform- Editionen |
---|
|
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 | |
82 | Bluetooth | Kommunikation über serielle Bluetooth-Schnittstelle 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 | API für Sicherheits- und Vertrauensdienste (SATSA) | APDU, Java Card RMI (JCRMI), Public Key Infrastructure (PKI) und Kryptografie | |
179 | Standort-API | GPS-Koordinaten, Straßenadressen, Orientierungssensoren, Orientierungspunkte | |
180 | SIP-API | ||
184 | Mobile 3D-Grafik (M3G) | Hochwertige 3D-Grafiken | |
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) | ||
226 | Skalierbare 2D-Vektorgrafik-API für J2ME (M2G) | Umgang mit SVG Tiny | |
228 | Informationsmodulprofil - Nächste Generation (IMP NG) | ||
229 | Zahlungs-API | ||
234 | Advanced Multimedia Supplements (AMMS) | MMAPI-Erweiterungen | |
238 | Mobile Internationalization API | Lokalisierte Ressourcen, Formatierung von Datum und Nummer des Gebietsschemas, Vergleich des Gebietsschemas von Zeichenfolgen | |
239 | Java-Bindungen für die OpenGL ES-API | ||
248 | Mobile Service Architecture (MSA) | ||
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
- Android (Betriebssystem)
- iOS
- BlackBerry OS
- Gefahr Hiptop
- Eingebettetes Java
- JavaFX Mobile
- Mobile Entwicklung
- Handyspiele
- Mobiles Lernen
- Qualcomm Brew
- Smartphone
Verweise
- Anmerkungen
- JSR 232: Mobile Operational Management - eine fortschrittliche Plattform auf Basis der OSGi-Technologie für Mobile Computing
- JSR 291: Dynamic Component Support für Java SE - Symmetrisches Programmiermodell für Java SE zu Java ME JSR 232
Literaturverzeichnis
- Ben Hayun, Roy (30. März 2009). Java ME unter Symbian OS: Im Smartphone-Modell (1. Ausgabe). Wiley . p. 482. ISBN 0-470-74318-2 .
- Knudsen, Jonathan (8. Januar 2008). Kicking Butt mit MIDP und MSA: Erstellen großartiger mobiler Anwendungen (1. Ausgabe). Prentice Hall . p. 432 . ISBN 0-321-46342-0 .
- Li, Sing; Knudsen, Jonathan (25. April 2005). Beginn von J2ME: Vom Anfänger zum Profi (3. Aufl.). Apress . p. 480 . ISBN 1-59059-479-7 .
Externe Links
- Sun Developer Network, Java ME
- Java-Seiten des Nokia Developer Hub
- Nokia S60 Java Runtime-Blogs
- Sony Ericsson Developer World
- Motorola Developer Network
- J2ME Authoring Tool LMA-Benutzernetzwerk
- Samsung Mobile Entwickler-Website
- Website für Sprint-Anwendungsentwickler
- Leistungsdatenbank von Java ME-kompatiblen Geräten
- MicroEJ-Plattformen für eingebettete Systeme
- Buch - Handyprogrammierung mit Java ME (J2ME)
- Tutorial Master ng, J2ME