Wstęp do konfiguracji CLDC
CLDC jest konfiguracją opracowaną przez JCP dla urządzeń o
bardzo ograniczonej mocy procesora i dostępnej ilości pamięci. Są to przede
wszystkim telefony komórkowe i słabe PDA.
Dokładna dokumentacja dostępna jest pod adresem http://jcp.org/jsr/detail/30.jsp.
Tutaj przedstawię tylko krótki wstęp niezbędny do zrozumienia kolejnych rozdziałów tego kursu.
Connected, Limited Device Configuration jest podstawą dla dwóch profili.
Pierwszy - MID Profile - został już opracowany i jest implementowany w przenośnych urządzeniach. W planach jest jeszcze "wypuszczenie" profilu przeznaczonego specjalnie dla urządzeń klasy PDA - urządzeń jakże różnych od telefonów komórkowych.
Profil ten nazywa się PDA Profile i jego rozwój można obserwować na
stronie Java Community Process: http://jcp.org/jsr/detail/75.jsp. Profil ten będzie umożliwiał dostęp do kalendarza, książki adresowej i listy spraw do zrobienia, a także będzie umożliwiał działanie w systemie plików urządzenia, pozwalając aplikacji działać np. na plikach wymienialnych kart pamięci. Obecnie urządzenia PDA implementują profil MIDP.
Poniższy szkic prezentuje prostą zależność opisywanej konfiguracji i jej profili:

Konfiguracja CLDC i jej profile.
^ do góry ^
Zawartość CLDC
Widzimy, że konfiguracja CLDC definiuje bazę, na której zbudowane są jej profile. Definiując tę bazę, opierano się na
standardowej wersji Javy (dokładnie na specyfikacji wersji 1.3).
Do CLDC przeniesiono klasy z trzech pakietów podstawowej wersji Javy:
-
java.io
-
java.lang
-
java.util
Widać, iż jest to minimalny zestaw pakietów. Nie zawiera np. żadnego interfejsu użytkownika. Taka funkcjonalność zostanie dodana przez profile.
Ponieważ nie wszystkie klasy z powyższych pakietów zostały przeniesione do CLDC, warto obejrzeć dokumentację i sprawdzić które klasy do J2ME nie trafiły.
Widzimy w niej, że wielu klas z przeniesionych pakietów brakuje. Niektóre klasy
odrzucono, jako zbyt "zasobochłonne", inne ze względu na bezpieczeństwo. Nie
przeniesiono również większości klas oznaczonych w Java 2 v1.3 jako
"deprecated", czyli nie zalecanych do stosowania. W standardowej wersji Javy są one obecne ze względu na wymóg
"zgodności wstecz", w przypadku technologii J2ME takiego wymogu brak.
W przypadku CLDC klasy, które dołączone są z J2SE mogą zostać zmodyfikowane. Nie można oczywiście rozszerzyć funkcjonalności
klasy, ale można ją "odchudzić" pozbywając się metod i pól bądź działających na odrzuconych klasach (jak
Double czy Float), bądź
nie zalecanych w Java 2 w wersji 1.3.
Widzimy także, że dodano pakiet napisany "od zera".
javax.microedition.io zawiera klasy i interfejsy wchodzące w skład tzw. GCF (Generic Connection Framework), który zapewnia dostęp do zewnętrznych
sieci czy urządzeń. Konfiguracja CLDC nie wprowadza jednak protokołu HTTP. Wymóg obsługi tego protokołu przez urządzenia wprowadza profil MIDP.
^ do góry ^
CLDC w wersji 1.1
27.03.2003 grupa ekspercka ukryta pod JSR-139 opublikowała ostateczną wersję specyfikacji opracowywanej przez siebie konfiguracji CLDC 1.1.
Celem grupy nie było stworzenie konkurencyjnego modelu, ale uporządkowanie zawartości i dokumentacji wersji 1.0. CLDC 1.1 rozszerza więc CLDC 1.0, zachowując jednocześnie "zgodność wstecz". Poniżej przedstawię istotne różnice pomiędzy obiema wersjami:
-
Dodano obsługę wartości zmiennoprzecinkowych.
Dodano klasy Float oraz Double, których bardzo brakowało w wersji poprzedniej. Zatroszczono się również o metody usunięte wcześniej ze względu na to, iż operowały na liczbach zmiennoprzecinkowych. Wróciły do swoich pierwotnych klas:)
- Powróciła obsługa słabych referencji.
-
Rozszerzono klasę
Thread.
Teraz - jak w J2SE - wątki mają nazwy. Dodano metodę Thread.getName() do jej pobrania oraz dodano nowe konstruktory.
- Specyfikacja mówi również o usuniętych błędach i odchudzonej dokumentacji.
Przede wszystkim poprzez dodanie działań na liczbach zmiennoprzecinkowych zwiększono wymagania w stosunku do urządzeń, na których CLDC 1.1 mialoby być implementowane.
Oczywiście chodzi przede wszystkim o pamięć. Zamiast - jak w przypadku CLDC 1.0 - 160kB dla samej platformy plus 32 dla sterty, wymagania CLDC 1.1 przewidują 192kB dla platformy i 32 dla sterty. Wymagane 8kB dla pamięci nieulotnej pozosteje bez zmian.
Inne wymogi dotyczące sprzętu, jak dostęp do internetu pozostają te same, co dla wersji 1.0.
^ do góry ^
|