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ę