Technologie biznesu elektronicznego Java 2 Micro Edition J2ME

advertisement
Technologie biznesu
elektronicznego
Java 2 Micro Edition
J2ME
Autor : Mateusz Kupczyk
Plan prezentacji
• Wstęp
• J2ME - omówienie
• Szczegółowe omówienie profilu MIDP
–
–
–
–
–
KVM
MIDLet oraz MIDSuite
Interfejs użytkownika, składowanie danych
Narzędzia wspomagające
Przykład „Hello world”
• Podsumowanie
Dlaczego ? ( Magia liczb )
• Lawinowy wzrost zainteresowania
technologią bezprzewodową
– Liczba telefonów komórkowych na świecie w
2002 roku – 1 miliard sztuk
– Zakładana produkcja telefonów komórkowych
w roku 2006 – 600 milionów sztuk
• Wielka popularność sieci internet
Java
• „Write once, run everywhere”
• OAK – przodek Javy
• Główne zalety Javy
– Wieloplatformowość
– Bezpieczeństwo wykonania
– Obiektowa orientacja
• Potrzeba podziału ogółu na trzy grupy :
– J2SE
– J2EE
– J2ME
Java – podział
J2ME – co to takiego ?
• J2SE zbyt “ciężkie”
dla urządzeń
przenośnych
• J2ME – kolekcja
specyfikacji
• J2ME – podział na
konfiguracje oraz
profile
J2ME – Dla kogo ?
• Użytkownicy
• Programiści
• Operatorzy / Wytwórcy
Konfiguracje J2ME
• Konfiguracja – definiuje podział ze
względu na :
– Wielkość pamięci operacyjnej
– Moc procesora
– Rodzaj połączenia sieciowego
• Składa się z wirtualnej maszyny oraz
bazowych klas Javy
Konfiguracje J2ME - CLDC
• CLDC ( Connected Limited Device
Configuration ) – implementacja Sun`a
• Dla urządzeń z dużymi ograniczeniami
pamięciowymi
• Zawiera wirtualną maszynę zwaną KVM
• Garbage Collector zoptymalizowany do środowiska
z ograniczeniami pamięciowymi
• Przykładowe zastosowanie konfiguracji dla
– Telefonów komórkowych
– Organizerów (PDA – Personal Digital Assistant )
Konfiguracje J2ME - CDC
• CDC ( Connected Device Configuration ) –
implementacja Sun`a
–
–
–
–
Stoi pomiędzy J2SE a konfiguracją CLDC
Pamięć operacyjna na poziomie co najmniej 2MB
Procesory o większej mocy obliczeniowej
Wirtualna maszyna CVM – implementuje większość
funkcjonalności JVM
– Przykładowe zastosowanie konfiguracji
• Tunery telewizyjne ( set-top-boxes )
• Telefony internetowe ( web telephones )
Profile J2ME
• Konfiguracja nie daje całkowitego
zróżnicowania między urządzeniami
• Profil – uzupełnienie konfiguracji o
funkcjonalności charakterystyczne dla
konkretnego urządzenia
• Udostępnia najbardziej zewnętrzne API
dla programistów
Profile J2ME - przykłady
•
•
•
•
•
•
MIDP ( Mobile Information Device Profile )
PDAP ( PDA Profile )
Foundation profile
Personal Basis and Personal profiles
RMI Profile
Game profile
KVM ( Kilobyte Virtual Machine )
• Umiejscowiona w konfiguracji CLDC
• O wiele mniejszy rozmiar w stosunku do
JVM
• Podstawowe różnice
– Brak obsługi liczb zmiennoprzecinkowych
– Brak JNI, finalizacji obiektów, słabych
referencji
– Dwuetapowa weryfikacja klas
• Specyfikacja :
http://java.sun.com/products/cldc/wp/
MIDP - charakterystyka
• Architektura
• Minimalne wymagania dla
MIDP
– Pamięć operacyjna
• 128 KB dla samego profilu
• 32 KB pamięci dla stosu
– Pamięć trwała
• 8 KB pamięci trwałej
– Wyświetlanie
• 96x54 pikseli co najmniej
dwukolorowych
– Urządzenia I/O
Platforma MIDP
• JAM – Java Application Manager
• Aplikacja MIDP – co najmniej jedna klasa
dziedzicząca z abstrakcyjnej
javax.microedition.midlet.MIDlet
• Aplikacja umieszczona w kontenerze
midletów ( MIDLet Suite )
• Kontener ładowany do urządzenia w
postaci archiwum JAR, dodatkowo
opisywany przez plik deskryptora JAD
Kontener Midletów
• Midlety zebrane w kontenerze instalowane
są w urządzeniu jako integralna całość
• Wszystkie Midlety zebrane w kontenerze
dzielą zasoby :
– Wykonują te same instancje klas VM
– Dane zapisane w trwałej pamięci
– Klasy oraz pola statyczne
• Nie ma możliwości dostępu do zasobów
między kontenerami
Midlet – przeciążone metody
•
•
•
•
Publiczny konstruktor
Początek aplikacji
Wstrzymanie aplikacji
Destrukcja aplikacji
– Warunkowa
– Bezwarunkowa
Midlet – maszyna stanów
• Metody wykonywane
przez aplikacje
zarządzającą
• Metody wykonywane
przez Midlet
– requestResume()
– notifyPaused()
– notifyDestroyed()
• Rozgraniczenie kodu
konstrukcji od kodu
wznowienia
Midlet – pakowanie oraz instalacja
• Archiwum JAR
• Plik konfiguracyjny JAR ( JAR Manifest File
)
• Deskryptor aplikacji Javy ( JAD – Java
application Descriptor )
MIDP – interfejs użytkownika
• Stworzony od nowa
• Duża prostota i małe rozmiary
• Dwa poziomy tworzenia interfejsu
– Wysoki poziom ( High-level UI )
– Niski poziom ( Low-level UI )
MIDP – interfejs użytkownika ( Diagram
klas )
MIDP – obsługa pamięci trwałej
• Brak dysków twardych bądź szybkich łącz
sieciowych umożliwiających zapis
• Record Management System
• Rekord – kolekcja danych
Narzędzia – Sun Wireless Toolkit
• Implementacja MIDP`a wraz z dużą ilością
emulatorów rzeczywistych urządzeń
mobilnych
• Środowisko niekompletne – brak
wspomagania tworzenia kodu źródłowego
• Duża integralność z istniejącymi
środowiskami IDE ( Eclipse, Forte,
JBuilder)
Narzędzia – EclipseMe
• Plug-in do środowiska Eclipse
• Umożliwia :
–
–
–
–
–
Korzystanie z kilku dostępnych Wireless Toolkits
Tworzenie kontenrów Midletów
Tworzenie Midletów
Łatwą edycję plików JAD
Uruchamianie w zintegrowanym z Eclipsem
emulatorem
– Prekompliacje
– Kompilacje do wykonywalnych JAR`ów
Narzędzia – EclipseMe – wymagania
• J2SE w wersji co najmniej 1.4.x
• Eclipse platform 3.0.x
• Jeden z niżej wymienionych toolkitów
–
–
–
–
–
–
Sun wireless toolkit
Motorola SDK for J2ME
Nokia developer suite 2.2 for J2ME
Sony Ericsson J2ME SDK
Sprint PCS Wireless Toolkit for Java 2.0.13
Siemens SMTK for Series 60
Hello World – z wykorzystaniem EclipseMe
Hello World – z wykorzystaniem EclipseME
Podsumowanie
• J2ME – dobra alternatywa dla prężnie
rozwijającego się rynku urządzeń
mobilnych
• J2ME – technologia podlegająca
nieustannemu rozwojowi ( J2ME polish )
• J2ME – technologia niewiele różniąca się
od J2SE, tym samym łatwa do
przyswojenia dla programistów Javy
Źródła
• Literatura
– Kim Topley – „J2ME in the nuttshell”
– James White, David Hemphill – „J2ME – Java in
small things”
– Martin de Jode – „Programming Java 2 Micro
Edition for Symbian OS”
• Internet
– http://www.google.pl
– http://java.sun.com/j2me
– http://eclipseMe.org
Zakończenie
• Czy mają państwo jakieś pytania ?
• Dziękuje za uwagę
Download