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ę