Platforma Java, Micro Edition - Java Platform, Micro Edition

Java Platform, Micro Edition lub Java ME to platforma obliczeniowa do tworzenia i wdrażania przenośnego kodu dla urządzeń wbudowanych i mobilnych (mikrokontrolery, czujniki, bramki, telefony komórkowe, osobiste asystenty cyfrowe, dekodery telewizyjne, drukarki). Java ME była wcześniej znana jako platforma Java 2, Micro Edition lub J2ME .

Platforma wykorzystuje obiektowy język programowania Java . Jest częścią rodziny platform oprogramowania Java . Java ME została zaprojektowana przez Sun Microsystems , przejętą przez Oracle Corporation w 2010 roku; platforma zastąpiła podobną technologię PersonalJava . Pierwotnie opracowany w ramach Java Community Process jako JSR 68, różne odmiany Java ME ewoluowały w oddzielnych JSR. Oracle zapewnia referencyjną implementację specyfikacji, ale zwykle nie zapewnia bezpłatnych implementacji binarnych swojego środowiska wykonawczego Java ME dla urządzeń mobilnych, a raczej polega na dostarczaniu własnych rozwiązań przez strony trzecie.

Od 22 grudnia 2006 r. Kod źródłowy Java ME jest objęty licencją na licencji GNU General Public License i jest udostępniany pod nazwą projektu phoneME .

Od 2008 roku wszystkie platformy Java ME są obecnie ograniczone do funkcji JRE 1.3 i używają tej wersji formatu pliku klasy (wewnętrznie znanej jako wersja 47.0). Jeśli Oracle kiedykolwiek zadeklaruje nową rundę wersji konfiguracji Java ME, które obsługują późniejsze formaty plików klas i funkcje językowe, takie jak te odpowiadające JRE 1.5 lub 1.6 (zwłaszcza generyczne ), będzie to wymagało dodatkowej pracy ze strony wszystkich dostawców platformy aby zaktualizować swoje środowiska JRE.

Urządzenia Java ME implementują profil . Najpopularniejsze z nich to Mobile Information Device Profile skierowany do urządzeń mobilnych, takich jak telefony komórkowe, oraz Personal Profile, który dotyczy produktów konsumenckich i urządzeń wbudowanych, takich jak dekodery i PDA. Profile to podzbiory konfiguracji , z których obecnie istnieją dwie: podłączona ograniczona konfiguracja urządzenia (CLDC) i konfiguracja podłączonego urządzenia (CDC).

Istnieje ponad 2,1 miliarda telefonów komórkowych i urządzeń PDA obsługujących język Java ME. Był popularny w urządzeniach poniżej 200 USD, takich jak Nokia Series 40 . Był również używany w systemie operacyjnym Bada i Symbian OS wraz z natywnym oprogramowaniem. Użytkownicy systemów Windows CE , Windows Mobile , Maemo , MeeGo i Android mogą pobrać Java ME dla swoich odpowiednich środowisk („proof-of-concept” dla Androida).

Podłączona ograniczona konfiguracja urządzenia

Connected Device Configuration ograniczona (CLDC) zawiera ścisłego podzbioru bibliotek Java klasy i jest minimalną kwotę potrzebną na maszynie wirtualnej Java w obsłudze. CLDC jest zasadniczo używany do klasyfikowania niezliczonych urządzeń w stałej konfiguracji.

Konfiguracja zapewnia najbardziej podstawowy zestaw bibliotek i funkcji maszyny wirtualnej, które muszą być obecne w każdej implementacji środowiska J2ME. W połączeniu z jednym lub kilkoma profilami połączona ograniczona konfiguracja urządzenia zapewnia programistom solidną platformę Java do tworzenia aplikacji dla urządzeń konsumenckich i wbudowanych. Konfiguracja jest przeznaczona dla urządzeń z całkowitą pamięcią od 160KB do 512KB, które mają co najmniej 160KB pamięci ROM i 32KB pamięci RAM dostępnych dla platformy Java.

Profil mobilnego urządzenia informacyjnego

Zaprojektowany dla telefonów komórkowych, Mobile Information Device Profile zawiera GUI i API do przechowywania danych, a MIDP 2.0 zawiera podstawowy interfejs API gier 2D . Aplikacje napisane dla tego profilu nazywane są MIDletami . Prawie wszystkie nowe telefony komórkowe są wyposażone w implementację MIDP i jest to obecnie de facto standard dla gier do pobrania na telefony komórkowe. Jednak wiele telefonów komórkowych może obsługiwać tylko te MIDlety, które zostały zatwierdzone przez operatora, zwłaszcza w Ameryce Północnej.

JSR 271: Mobile Information Device Profile 3 (wersja ostateczna z 9 grudnia 2009 r.) Określał profil mobilnego urządzenia informacyjnego trzeciej generacji (MIDP3), rozszerzając funkcjonalność we wszystkich obszarach, a także poprawiając interoperacyjność między urządzeniami. Kluczowym celem projektowym MIDP3 jest zgodność wsteczna z zawartością MIDP2.

Profil modułu informacyjnego

Profilu Information Module (IMP) jest profilem dla osadzonych, „bez głowy” urządzeń, takich jak automaty, przemysłowych zastosowań wbudowanych, systemów zabezpieczeń i podobnych urządzeń z prosta lub bez wyświetlacza iz pewnym ograniczonym łączności sieciowej.

Pierwotnie wprowadzony przez Siemens Mobile i Nokia jako JSR -195, IMP 1.0 jest ścisłym podzbiorem MIDP 1.0, z wyjątkiem tego, że nie zawiera interfejsów API interfejsu użytkownika - innymi słowy, nie obejmuje wsparcia dla pakietu Java javax.microedition.lcdui . JSR-228, znany również jako IMP-NG, to następna generacja IMP, oparta na MIDP 2.0, wykorzystująca nowe typy zabezpieczeń i sieci oraz interfejsy API MIDP 2.0, a także inne interfejsy API, takie jak PushRegistry i platformRequest() , ale znowu nie zawiera interfejsu użytkownika API ani API gier.

Konfiguracja podłączonego urządzenia

Connected Device Configuration jest podzbiorem Java SE , zawierający prawie wszystkie biblioteki, które nie są związane z GUI. Jest bogatszy niż CLDC.

Profil Fundacji

Profil podstawowy to profil konfiguracji podłączonych urządzeń (CDC) Java ME. Ten profil jest przeznaczony do użytku przez urządzenia wymagające pełnej implementacji wirtualnej maszyny Java, włącznie z całym Java Platform, Standard Edition API. Typowe implementacje będą używać pewnego podzbioru tego zestawu API w zależności od dodatkowych obsługiwanych profili. Ta specyfikacja została opracowana w ramach procesu społeczności Java.

Profil Podstawowy Osobisty

Personal Basis Profile rozszerza Foundation Profile o lekkie wsparcie GUI w postaci podzbioru AWT . To jest platforma, na której zbudowano BD-J .

Wdrożenia

Firma Sun udostępnia wzorcową implementację tych konfiguracji i profili dla MIDP i CDC. Począwszy od JavaME 3.0 SDK, środowisko IDE oparte na NetBeans będzie obsługiwać je w jednym środowisku IDE.

W przeciwieństwie do licznych implementacji binarnych platformy Java zbudowanej przez firmę Sun dla serwerów i stacji roboczych, firma Sun nie dostarcza żadnych plików binarnych dla platform docelowych Java ME, z wyjątkiem JRE MIDP 1.0 (JVM) dla Palm OS. Firma Sun nie dostarcza J2ME JRE dla urządzeń opartych na Microsoft Windows Mobile (Pocket PC), pomimo otwartej kampanii skierowanej do firmy Sun, mającej na celu wydanie podobno wewnętrznej implementacji PersonalJava, znanej pod kryptonimem „Kapitan Ameryka”. Implementacje innych firm są szeroko stosowane przez dostawców Windows Mobile.

Systemy operacyjne ukierunkowane na Java ME zostały wdrożone przez DoCoMo w postaci DoJa oraz przez SavaJe jako SavaJe OS. Ta ostatnia firma została zakupiona przez firmę Sun w kwietniu 2007 roku i obecnie stanowi podstawę Sun JavaFX Mobile .

Open-source Mika VM ma na celu wdrożenie JavaME CDC / FP, ale nie jest certyfikowany jako taki (certyfikowane implementacje są wymagane do pobierania opłat licencyjnych, co jest niepraktyczne w przypadku projektów open source). W związku z tym urządzenia korzystające z tej implementacji nie mogą żądać zgodności z JavaME CDC.

Oparty na Linuksie system operacyjny Android wykorzystuje zastrzeżoną wersję języka Java, która jest podobna w zamierzeniu, ale bardzo różni się pod wieloma względami od Java Me.

JSR (żądania specyfikacji Java)

Fundacja

JSR # Nazwa Opis
68 Specyfikacja platformy J2ME
30 CLDC 1.x
37 MIDP 1.0
118 MIDP 2.x
139 CLDC 1.1
271 MIDP 3.0 Tylko Java ME 3.4 i starsze, Ostatnia specyfikacja dla telefonów komórkowych, funkcje języka Java jako Java SE 1.3
360 CLDC 8 Nowość w Javie ME 8
361 MEEP 8 Nowość w Java ME 8, funkcja języka jako Java SE 8, dla urządzeń Internetu wszystkiego

Główne rozszerzenia

JSR # Nazwa Opis MSA
75 Połączenie plików i PIM API System plików, kontakty, kalendarz, zadania tak
82 Bluetooth Komunikacja przez port szeregowy Bluetooth i wymiana plików (OBEX) tak
120 Wireless Messaging API (WMA)
135 Mobile Media API (MMAPI) Audio, wideo, multimedia tak
172 Interfejs API usług sieci Web Parsery XML i RPC tak
177 Security and Trust Services API (SATSA) APDU, Java Card RMI (JCRMI), infrastruktura klucza publicznego (PKI) i kryptografia tak
179 Location API Współrzędne GPS, adresy ulic, czujniki orientacji, punkty orientacyjne tak
180 SIP API tak
184 Mobilna grafika 3D (M3G) Grafika 3D na wysokim poziomie tak
185 Technologia Java dla przemysłu bezprzewodowego (JTWI) Generał
205 Wireless Messaging API (WMA) 2.0 Wysyłanie i odbieranie wiadomości SMS i MMS
211 Interfejs API programu obsługi treści (CHAPI) tak
226 Skalowalny interfejs API grafiki wektorowej 2D dla J2ME (M2G) Obsługa SVG Tiny tak
228 Profil modułu informacyjnego - następna generacja (IMP NG)
229 API płatności tak
234 Zaawansowane dodatki multimedialne (AMMS) Rozszerzenia MMAPI tak
238 Mobilny interfejs API internacjonalizacji Zlokalizowane zasoby, data i formatowanie liczb w języku, porównanie łańcuchów w języku tak
239 Powiązania Java dla API OpenGL ES
248 Architektura usług mobilnych (MSA) tak
253 Mobile Telephony API
256 Mobile Sensor API Odczytywanie wartości z akcelerometrów, żyroskopów, kompasów, termometrów, barometrów i innych
257 Contactless Communication API
258 Interfejs API dostosowywania interfejsu użytkownika mobilnego
272 Interfejs API usługi transmisji mobilnej dla terminali przenośnych
280 XML API dla Java ME
281 IMS Services API
287 Scalable 2D Vector Graphics API 2.0 dla Java ME
293 Location API 2.0
298 Telematics API for Java ME
300 DRM API dla Java ME
325 IMS Communication Enablers

Przyszłość

JSR # Nazwa Opis
297 Mobile 3D Graphics API (M3G) 2.0

ESR

Konsorcjum ESR zajmuje się standardami wbudowanej Java. Szczególnie opłacalne normy. Domeny typowych zastosowań to sterowanie przemysłowe, maszyna-maszyna, medycyna, e-pomiary, automatyka domowa , konsumenci, interfejs człowiek-maszyna, ...

ESR # Nazwa Opis
001 B-ON (poza CLDC) B-ON stanowi bardzo solidną podstawę do wdrażania wbudowanego oprogramowania Java. Określa niezawodną fazę inicjalizacji urządzenia Java i 3 rodzaje obiektów: niezmienne, nieśmiertelne i zwykłe (śmiertelne).
002 MicroUI MicroUI definiuje ulepszoną architekturę, aby umożliwić otwarte, zewnętrzne środowisko programistyczne dla wbudowanych urządzeń HMI. Takie urządzenia zazwyczaj mają jakąś formę wyświetlacza, niektóre czujniki wejściowe i potencjalnie pewne możliwości renderowania dźwięku. Ta specyfikacja obejmuje potencjalnie szeroki zestaw urządzeń.
011 MWT MWT definiuje trzy różne role: projektantów widżetów, projektantów wyglądu i stylu oraz projektantów aplikacji. MWT pozwala, aby aplikacja binarna HMI działała tak samo na wszystkich urządzeniach, które zapewniają zgodną strukturę MWT (urządzenia wbudowane, telefony komórkowe, dekodery telewizyjne, komputery PC itp.), Co pozwala na prawdziwą spójność i wszechobecność aplikacji we wszystkich liniach produktów ( JA, SE, EE).
015 ECLASSPATH ECLASSPATH łączy środowiska wykonawcze CLDC, CDC, Foundation, SE i EE z zestawem około 300 klas API. Kompilowanie z CLDC1.1 / ECLASSPATH umożliwia przenoszenie kodu binarnego we wszystkich środowiskach wykonawczych Java.

Zobacz też

Bibliografia

Uwagi

Bibliografia

Zewnętrzne linki