Java Platform, Micro Edition

Java Platform, Micro Edition lub Java ME (wcześniej jako Java 2 Platform, Micro Edition lub J2ME) – specyfikacja opracowana przez firmę Sun Microsystems opisująca uproszczoną wersję platformy Java. Platforma Java ME została zaprojektowana z myślą o tworzeniu aplikacji mobilnych dla urządzeń o bardzo ograniczonych zasobach, takich jak telefony komórkowe lub palmtopy.

Ze względu na ograniczenia techniczne takich urządzeń, tj. wolniejsze procesory, mniejszą pamięć, Java ME posiada swój własny, okrojony w stosunku do Java SE zbiór klas zwanych konfiguracją (ang. configuration). Konfiguracje są uzupełniane przez profile (ang. profiles) dodające do istniejących klas swoje własne klasy zapewniające wykonywanie określonych zadań na konkretnych urządzeniach. Profile mogą natomiast być wzbogacone o pakiety opcjonalne (ang. Optional Packages). Taka różnorodność API (Application Programming Interface) daje projektantom i programistom dużą elastyczność w tworzeniu oprogramowania dla urządzeń wyposażonych w różne konfiguracje sprzętowe. Środowisko Java ME posiada także w zależności od wybranej konfiguracji swoje własne maszyny wirtualne.

Wykorzystanie edytuj

Java ME jest popularną platformą wykorzystywaną m.in. przy tworzeniu gier na telefony komórkowe. Duży wybór narzędzi pozwalających na rozwój i testowanie aplikacji przy użyciu programów zwanych emulatorami, które instalowane są na komputerach klasy PC, bez konieczności instalowania tworzonych programów za każdym razem na telefonie komórkowym, obniża znacznie koszt i przyspiesza proces tworzenia oprogramowania. W porównaniu do skomplikowanego procesu tworzenia gier na inne platformy, takie jak: Nintendo, Sony, Microsoft, które wymagają nabycia i stosowania dodatkowych (oprócz PC) urządzeń, specyficznych dla danego rozwiązania, powoduje, że Java ME jest jedną z najczęściej wykorzystywanych w tym celu technologii.

Konfiguracje i profile edytuj

W Java ME wyróżniamy dwie konfiguracje: CLDC (Connected Limited Device Configuration) oraz CDC (Connected Device Configuration).

CLDC (Connected Limited Device Configuration) jest konfiguracją zaprojektowaną dla urządzeń o najbardziej ograniczonych zasobach, m.in. telefonów komórkowych. Dostępne dla tej konfiguracji profile to:

  • MIDP (Mobile Information Device Profile, JSR 37 oraz JSR 118)
  • IMP (Information Module Profile, JSR 195)

Kombinacja CLDC wraz z profilem MIDP (Mobile Information Device Profile) to najczęściej spotykane połączenie. Na jego bazie tworzone są aplikacje zwane MIDletami, wśród których wyróżnić możemy gry lub inne aplikacje wykorzystywane przykładowo w biznesie. Gotowy MIDlet może być uruchamiany na wszystkich urządzeniach, które mają zaimplementowaną maszynę wirtualną dla konfiguracji CLDC i profilu MIDP. Instalacja aplikacji na urządzeniu mobilnym sprowadza się do skopiowania pliku JAR (Java Archive) i JAD (Java Application Descriptor) przy pomocy kabla, IRDy, Bluetooth lub technologii GPRS na dane urządzenie.

CDC (Connected Device Configuration) jest konfiguracją zaprojektowaną dla urządzeń o większej mocy obliczeniowej, pamięci i bardziej rozbudowanym interfejsie sieciowym, wśród których wyróżnić możemy: PDA (Personal Digital Assistant), organizery i telefony "z wyższej półki". Dostępne dla tej konfiguracji profile to:

  • Foundation Profile (JSR 219)
  • Personal Basis Profile (JSR 217)
  • Personal Profile (JSR 216)

Maszyny wirtualne edytuj

Każdy producent urządzeń mobilnych implementuje swoją własną maszynę wirtualną. Jej budowa jest zależna od platformy systemowej urządzenia. W zależności od implementacji mogą pojawić się dodatkowe funkcjonalności, np. kontrola nad wibratorem czy podświetlaniem ekranu w telefonie, dostęp do części książki telefonicznej, możliwość wysyłania SMS-ów czy nawet wykonania rozmowy telefonicznej. Do własnej maszyny wirtualnej producenci dostarczają jej API. Używanie charakterystycznych dla urządzenia funkcji zawęża jednak grupę odbiorców naszej aplikacji. Maszyna wirtualna opracowana dla konfiguracji CLDC nazywana jest KVM (K Virtual Machine).

Zobacz też edytuj

Linki zewnętrzne edytuj