Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce J2ME - Java Micro Edition Agata Gałecka, Martyna Sikorska, Tomasz Cebula Politechnika Wrocławska Informatyka 28 kwietnia 2009 Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Agenda 1 Wprowadzenie do J2ME 2 Wykorzystanie J2ME 3 Konfiguracje 4 Maszyny wirtualne 5 Profile 6 Profil MIDP 7 Klasa MIDlet 8 Narzędzia 9 JME w praktyce Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Agenda 1 Wprowadzenie do J2ME 2 Wykorzystanie J2ME 3 Konfiguracje 4 Maszyny wirtualne 5 Profile 6 Profil MIDP 7 Klasa MIDlet 8 Narzędzia 9 JME w praktyce Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Agenda 1 Wprowadzenie do J2ME 2 Wykorzystanie J2ME 3 Konfiguracje 4 Maszyny wirtualne 5 Profile 6 Profil MIDP 7 Klasa MIDlet 8 Narzędzia 9 JME w praktyce Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Agenda 1 Wprowadzenie do J2ME 2 Wykorzystanie J2ME 3 Konfiguracje 4 Maszyny wirtualne 5 Profile 6 Profil MIDP 7 Klasa MIDlet 8 Narzędzia 9 JME w praktyce Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Agenda 1 Wprowadzenie do J2ME 2 Wykorzystanie J2ME 3 Konfiguracje 4 Maszyny wirtualne 5 Profile 6 Profil MIDP 7 Klasa MIDlet 8 Narzędzia 9 JME w praktyce Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Agenda 1 Wprowadzenie do J2ME 2 Wykorzystanie J2ME 3 Konfiguracje 4 Maszyny wirtualne 5 Profile 6 Profil MIDP 7 Klasa MIDlet 8 Narzędzia 9 JME w praktyce Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Agenda 1 Wprowadzenie do J2ME 2 Wykorzystanie J2ME 3 Konfiguracje 4 Maszyny wirtualne 5 Profile 6 Profil MIDP 7 Klasa MIDlet 8 Narzędzia 9 JME w praktyce Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Agenda 1 Wprowadzenie do J2ME 2 Wykorzystanie J2ME 3 Konfiguracje 4 Maszyny wirtualne 5 Profile 6 Profil MIDP 7 Klasa MIDlet 8 Narzędzia 9 JME w praktyce Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Agenda 1 Wprowadzenie do J2ME 2 Wykorzystanie J2ME 3 Konfiguracje 4 Maszyny wirtualne 5 Profile 6 Profil MIDP 7 Klasa MIDlet 8 Narzędzia 9 JME w praktyce Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Informacje ogólne Podział platformy Java Dlaczego Java2 ? Umożliwia wytwarzanie oprogramowania niezależnie od systemu. „Write once, run everywhere" Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Informacje ogólne Podział platformy Java Dlaczego Java2 ? Umożliwia wytwarzanie oprogramowania niezależnie od systemu. „Write once, run everywhere" Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Informacje ogólne Podział platformy Java Dlaczego Java2 ? Umożliwia wytwarzanie oprogramowania niezależnie od systemu. „Write once, run everywhere" Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Informacje ogólne Podział platformy Java Informacje ogólne Specyfikacja J2ME powstała w odpowiedzi na zapotrzebowanie ze strony urządzeń elektronicznych z tzw. "oprogramowaniem wbudowanym". Urządzenia te potrzebują oprogramowania wysoce niezawodnego, a jednocześnie niewymagającego dużej mocy obliczeniowej czy dużej ilości pamięci. Ze względu na ograniczenie zasobów, funkcjonalność również została zmniejszona. Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Informacje ogólne Podział platformy Java Informacje ogólne Specyfikacja J2ME powstała w odpowiedzi na zapotrzebowanie ze strony urządzeń elektronicznych z tzw. "oprogramowaniem wbudowanym". Urządzenia te potrzebują oprogramowania wysoce niezawodnego, a jednocześnie niewymagającego dużej mocy obliczeniowej czy dużej ilości pamięci. Ze względu na ograniczenie zasobów, funkcjonalność również została zmniejszona. Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Informacje ogólne Podział platformy Java Informacje ogólne Specyfikacja J2ME powstała w odpowiedzi na zapotrzebowanie ze strony urządzeń elektronicznych z tzw. "oprogramowaniem wbudowanym". Urządzenia te potrzebują oprogramowania wysoce niezawodnego, a jednocześnie niewymagającego dużej mocy obliczeniowej czy dużej ilości pamięci. Ze względu na ograniczenie zasobów, funkcjonalność również została zmniejszona. Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Informacje ogólne Podział platformy Java Podział platformy Java Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Różnego typu urządzenia mobilne Pobieranie aplikacji na telefon komórkowy Wykorzystanie Urządzenia korzystające z konfiguracji CLDC: Telefony komórkowe Smartphone Pagery PDA (Personal Data Assistant) Urządzenia korzystające z konfiguracji CDC: PDA wyższego poziomu Dekodery telewizyjne Telefony internetowe Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Różnego typu urządzenia mobilne Pobieranie aplikacji na telefon komórkowy Wykorzystanie Urządzenia korzystające z konfiguracji CLDC: Telefony komórkowe Smartphone Pagery PDA (Personal Data Assistant) Urządzenia korzystające z konfiguracji CDC: PDA wyższego poziomu Dekodery telewizyjne Telefony internetowe Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Różnego typu urządzenia mobilne Pobieranie aplikacji na telefon komórkowy Pobieranie aplikacji na telefon komórkowy Istnieje wiele portali oferujących aplikacje na telefony komórkowe. Umożliwiają pobranie aplikacji za pomocą: WAP Bluetooth Portale można podzielić na dwie grupy: oferujące płatne aplikacje - po wysłaniu SMS-a użytkownik otrzymuje zakładkę WAP oferujące bezpłatne aplikacje z limitem - po wyczerpaniu limitu użytkownik może pobrać reklame z servera i dalej korzystać z aplikacji Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Różnego typu urządzenia mobilne Pobieranie aplikacji na telefon komórkowy Pobieranie aplikacji na telefon komórkowy Istnieje wiele portali oferujących aplikacje na telefony komórkowe. Umożliwiają pobranie aplikacji za pomocą: WAP Bluetooth Portale można podzielić na dwie grupy: oferujące płatne aplikacje - po wysłaniu SMS-a użytkownik otrzymuje zakładkę WAP oferujące bezpłatne aplikacje z limitem - po wyczerpaniu limitu użytkownik może pobrać reklame z servera i dalej korzystać z aplikacji Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Connected Limited Device Configuration Connected Device Configuration Konfiguracje Konfiguracja stanowi specyfikację definiującą środowisko oprogramowania dla rodziny urządzeń. Rodzinę urządzeń charakteryzuje: typ i ilość dostępnej pamięci. typ i prędkość procesora. typ dostępnego połączenia sieciowego. Konfiguracja składa się z maszyny wirtualnej oraz podstawowego zestawu klas. JCP (Java Community Process) stworzyła dwie konfiguracje dla J2ME. CLDC - Connected Limited Device Configuration CDC - Connected Device Configuration Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Connected Limited Device Configuration Connected Device Configuration Konfiguracje Konfiguracja stanowi specyfikację definiującą środowisko oprogramowania dla rodziny urządzeń. Rodzinę urządzeń charakteryzuje: typ i ilość dostępnej pamięci. typ i prędkość procesora. typ dostępnego połączenia sieciowego. Konfiguracja składa się z maszyny wirtualnej oraz podstawowego zestawu klas. JCP (Java Community Process) stworzyła dwie konfiguracje dla J2ME. CLDC - Connected Limited Device Configuration CDC - Connected Device Configuration Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Connected Limited Device Configuration Connected Device Configuration Konfiguracje Konfiguracja stanowi specyfikację definiującą środowisko oprogramowania dla rodziny urządzeń. Rodzinę urządzeń charakteryzuje: typ i ilość dostępnej pamięci. typ i prędkość procesora. typ dostępnego połączenia sieciowego. Konfiguracja składa się z maszyny wirtualnej oraz podstawowego zestawu klas. JCP (Java Community Process) stworzyła dwie konfiguracje dla J2ME. CLDC - Connected Limited Device Configuration CDC - Connected Device Configuration Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Connected Limited Device Configuration Connected Device Configuration Konfiguracje Konfiguracja stanowi specyfikację definiującą środowisko oprogramowania dla rodziny urządzeń. Rodzinę urządzeń charakteryzuje: typ i ilość dostępnej pamięci. typ i prędkość procesora. typ dostępnego połączenia sieciowego. Konfiguracja składa się z maszyny wirtualnej oraz podstawowego zestawu klas. JCP (Java Community Process) stworzyła dwie konfiguracje dla J2ME. CLDC - Connected Limited Device Configuration CDC - Connected Device Configuration Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Connected Limited Device Configuration Connected Device Configuration Konfiguracja CLDC Konfiguracja dla urządzeń o bardzo dużych ograniczeniach: 16 bit - 32 bit CPU 32 kB - 512 kB pamięci RAM - do przydzielenia w czasie pracy aplikacji min. 128 kB pamięci ROM, flash lub podtrzymywanej bateryjnie - pamięć stała dla KVM oraz bibliotek klas CLDC CLDC definiuje wymagania dla maszyny wirtualnej i podstawowych bibliotek. Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Connected Limited Device Configuration Connected Device Configuration Konfiguracja CLDC Konfiguracja dla urządzeń o bardzo dużych ograniczeniach: 16 bit - 32 bit CPU 32 kB - 512 kB pamięci RAM - do przydzielenia w czasie pracy aplikacji min. 128 kB pamięci ROM, flash lub podtrzymywanej bateryjnie - pamięć stała dla KVM oraz bibliotek klas CLDC CLDC definiuje wymagania dla maszyny wirtualnej i podstawowych bibliotek. Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Connected Limited Device Configuration Connected Device Configuration Biblioteki klas CLDC Do CLDC przeniesiono klasy z trzech pakietów J2SE v1.3 java.io java.lang java.util Jest to minimalny zestaw pakietów (bez interfejsów użytkownika) Nie wszystkie klasy z wymienionych pakietów zostały przeniesione w całości. Odrzucono klasy ze względu na bezpieczeństwo i wykorzystanie zasobów. Można modyfikować przeniesione klasy. Dodano również nowy pakiet - javax.microedition.io Zapewnia on dostęp do zewnętrznych sieci i urządzeń. Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Connected Limited Device Configuration Connected Device Configuration Biblioteki klas CLDC Do CLDC przeniesiono klasy z trzech pakietów J2SE v1.3 java.io java.lang java.util Jest to minimalny zestaw pakietów (bez interfejsów użytkownika) Nie wszystkie klasy z wymienionych pakietów zostały przeniesione w całości. Odrzucono klasy ze względu na bezpieczeństwo i wykorzystanie zasobów. Można modyfikować przeniesione klasy. Dodano również nowy pakiet - javax.microedition.io Zapewnia on dostęp do zewnętrznych sieci i urządzeń. Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Connected Limited Device Configuration Connected Device Configuration Biblioteki klas CLDC Do CLDC przeniesiono klasy z trzech pakietów J2SE v1.3 java.io java.lang java.util Jest to minimalny zestaw pakietów (bez interfejsów użytkownika) Nie wszystkie klasy z wymienionych pakietów zostały przeniesione w całości. Odrzucono klasy ze względu na bezpieczeństwo i wykorzystanie zasobów. Można modyfikować przeniesione klasy. Dodano również nowy pakiet - javax.microedition.io Zapewnia on dostęp do zewnętrznych sieci i urządzeń. Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Connected Limited Device Configuration Connected Device Configuration Biblioteki klas CLDC Do CLDC przeniesiono klasy z trzech pakietów J2SE v1.3 java.io java.lang java.util Jest to minimalny zestaw pakietów (bez interfejsów użytkownika) Nie wszystkie klasy z wymienionych pakietów zostały przeniesione w całości. Odrzucono klasy ze względu na bezpieczeństwo i wykorzystanie zasobów. Można modyfikować przeniesione klasy. Dodano również nowy pakiet - javax.microedition.io Zapewnia on dostęp do zewnętrznych sieci i urządzeń. Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Connected Limited Device Configuration Connected Device Configuration Biblioteki klas CLDC Do CLDC przeniesiono klasy z trzech pakietów J2SE v1.3 java.io java.lang java.util Jest to minimalny zestaw pakietów (bez interfejsów użytkownika) Nie wszystkie klasy z wymienionych pakietów zostały przeniesione w całości. Odrzucono klasy ze względu na bezpieczeństwo i wykorzystanie zasobów. Można modyfikować przeniesione klasy. Dodano również nowy pakiet - javax.microedition.io Zapewnia on dostęp do zewnętrznych sieci i urządzeń. Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Connected Limited Device Configuration Connected Device Configuration Biblioteki klas CLDC Do CLDC przeniesiono klasy z trzech pakietów J2SE v1.3 java.io java.lang java.util Jest to minimalny zestaw pakietów (bez interfejsów użytkownika) Nie wszystkie klasy z wymienionych pakietów zostały przeniesione w całości. Odrzucono klasy ze względu na bezpieczeństwo i wykorzystanie zasobów. Można modyfikować przeniesione klasy. Dodano również nowy pakiet - javax.microedition.io Zapewnia on dostęp do zewnętrznych sieci i urządzeń. Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Connected Limited Device Configuration Connected Device Configuration Konfiguracja CDC Konfiguracja dla urządzeń pomiędzy słabymi PDA a zwykłymi PC -tami. 32 bit - 64 bit CPU 1 MB - 10 MB pamięci RAM - do przydzielenia w czasie pracy aplikacji bardziej zaawansowane połączenie z Internetem CDC również definiuje wymagania dla maszyny wirtualnej i podstawowych bibliotek. Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Connected Limited Device Configuration Connected Device Configuration Konfiguracja CDC Konfiguracja dla urządzeń pomiędzy słabymi PDA a zwykłymi PC -tami. 32 bit - 64 bit CPU 1 MB - 10 MB pamięci RAM - do przydzielenia w czasie pracy aplikacji bardziej zaawansowane połączenie z Internetem CDC również definiuje wymagania dla maszyny wirtualnej i podstawowych bibliotek. Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Connected Limited Device Configuration Connected Device Configuration Biblioteki klas CDC Do CDC przeniesiono klasy z wielu pakietów J2SE v1.3 java.io java.lang java.lang.ref java.lang.reflect java.math java.net java.security java.security.cer java.text java.util java.util.jar java.util.zip Dodano również pakiet java.microedition.io, aby zapewnić z Tomasz aplikacjami CDLC. Agatakompatybilność Gałecka, Martyna Sikorska, Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Connected Limited Device Configuration Connected Device Configuration Biblioteki klas CDC Do CDC przeniesiono klasy z wielu pakietów J2SE v1.3 java.io java.lang java.lang.ref java.lang.reflect java.math java.net java.security java.security.cer java.text java.util java.util.jar java.util.zip Dodano również pakiet java.microedition.io, aby zapewnić z Tomasz aplikacjami CDLC. Agatakompatybilność Gałecka, Martyna Sikorska, Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Kilobyte Virtual Machine CVM Maszyny wirtualne Maszyna wirtualna jest konieczna do uruchomienia jakiejkolwiek aplikacji Java. W przypadku J2ME każde urządzenie musi mieć zaimplementowaną odpowiednią maszynę Java. Zgodną ze specyfikacją konfiguracji. Posiadającą rozszerzenia dodawane z profilem. Posiadającą rozszerzenia dodawane przez producenta urządzeń. Ze względu na ograniczenia sprzętowe i programowe nie można zastosować standardowej wirtualnej maszyny Java. Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Kilobyte Virtual Machine CVM Maszyny wirtualne Maszyna wirtualna jest konieczna do uruchomienia jakiejkolwiek aplikacji Java. W przypadku J2ME każde urządzenie musi mieć zaimplementowaną odpowiednią maszynę Java. Zgodną ze specyfikacją konfiguracji. Posiadającą rozszerzenia dodawane z profilem. Posiadającą rozszerzenia dodawane przez producenta urządzeń. Ze względu na ograniczenia sprzętowe i programowe nie można zastosować standardowej wirtualnej maszyny Java. Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Kilobyte Virtual Machine CVM Maszyny wirtualne Maszyna wirtualna jest konieczna do uruchomienia jakiejkolwiek aplikacji Java. W przypadku J2ME każde urządzenie musi mieć zaimplementowaną odpowiednią maszynę Java. Zgodną ze specyfikacją konfiguracji. Posiadającą rozszerzenia dodawane z profilem. Posiadającą rozszerzenia dodawane przez producenta urządzeń. Ze względu na ograniczenia sprzętowe i programowe nie można zastosować standardowej wirtualnej maszyny Java. Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Kilobyte Virtual Machine CVM Maszyna wirtualna KVM Różnice między JVM a KVM Brak operacji na liczbach zmiennoprzecinkowych. Procesory większości urządzeń tej grupy nie realizują takich działań. Z tego powodu brak zmiennych, stałych i tablic typu float i double. Brak refleksji. Brak luźnych referencji. Brak finalizacji obiektów. Nie można tworzyć wątków demonów i grup wątków. Brak Java Native Interface Maszyna wirtualna musi umożliwiać ładowanie pakietów aplikacji w plikach JAR. Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Kilobyte Virtual Machine CVM Maszyna wirtualna KVM Różnice między JVM a KVM Brak operacji na liczbach zmiennoprzecinkowych. Procesory większości urządzeń tej grupy nie realizują takich działań. Z tego powodu brak zmiennych, stałych i tablic typu float i double. Brak refleksji. Brak luźnych referencji. Brak finalizacji obiektów. Nie można tworzyć wątków demonów i grup wątków. Brak Java Native Interface Maszyna wirtualna musi umożliwiać ładowanie pakietów aplikacji w plikach JAR. Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Kilobyte Virtual Machine CVM Maszyna wirtualna CVM Jest to wirtualna maszyna CDC. Początkowo był to skrót od Compact Virtual Machine. Dzięki wystarczającym zasobom urządzeń, może być pełną maszyną wirtualną (zgodną ze specyfikacją JVM) przystosowaną do ograniczonej pamięci. W porównaniu do KVM poszerzona została o: Obsługę działań na liczbach zmiennoprzecinkowych. Uruchamianie kodu natywnego. Słabe referencje. Serializację obiektów. Możliwość własnej implementacji wcztywania klas. Obslugę JVMDI (Java Virtual Machine Debugging Interface). W porównaniu do JVM nie oferuje kompilatora JIT. Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Kilobyte Virtual Machine CVM Maszyna wirtualna CVM Jest to wirtualna maszyna CDC. Początkowo był to skrót od Compact Virtual Machine. Dzięki wystarczającym zasobom urządzeń, może być pełną maszyną wirtualną (zgodną ze specyfikacją JVM) przystosowaną do ograniczonej pamięci. W porównaniu do KVM poszerzona została o: Obsługę działań na liczbach zmiennoprzecinkowych. Uruchamianie kodu natywnego. Słabe referencje. Serializację obiektów. Możliwość własnej implementacji wcztywania klas. Obslugę JVMDI (Java Virtual Machine Debugging Interface). W porównaniu do JVM nie oferuje kompilatora JIT. Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Kilobyte Virtual Machine CVM Maszyna wirtualna CVM Jest to wirtualna maszyna CDC. Początkowo był to skrót od Compact Virtual Machine. Dzięki wystarczającym zasobom urządzeń, może być pełną maszyną wirtualną (zgodną ze specyfikacją JVM) przystosowaną do ograniczonej pamięci. W porównaniu do KVM poszerzona została o: Obsługę działań na liczbach zmiennoprzecinkowych. Uruchamianie kodu natywnego. Słabe referencje. Serializację obiektów. Możliwość własnej implementacji wcztywania klas. Obslugę JVMDI (Java Virtual Machine Debugging Interface). W porównaniu do JVM nie oferuje kompilatora JIT. Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Profile dla CLDC Profile dla CDC Profile Profil jest uzupełnieniem konfiguracji poprzez dodanie klas zapewniających funkcje odpowiednie do określonego typu urządzenia. Obie konfiguracje posiadają profile. Profile mogą korzystać z innych profili. Ostatecznie po wybraniu konfiguracji i profilu, programista tworzy aplikację dla konkretnego typu urządzenia. Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Profile dla CLDC Profile dla CDC Profile Profil jest uzupełnieniem konfiguracji poprzez dodanie klas zapewniających funkcje odpowiednie do określonego typu urządzenia. Obie konfiguracje posiadają profile. Profile mogą korzystać z innych profili. Ostatecznie po wybraniu konfiguracji i profilu, programista tworzy aplikację dla konkretnego typu urządzenia. Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Profile dla CLDC Profile dla CDC Profile Profil jest uzupełnieniem konfiguracji poprzez dodanie klas zapewniających funkcje odpowiednie do określonego typu urządzenia. Obie konfiguracje posiadają profile. Profile mogą korzystać z innych profili. Ostatecznie po wybraniu konfiguracji i profilu, programista tworzy aplikację dla konkretnego typu urządzenia. Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Profile dla CLDC Profile dla CDC Profile Profil jest uzupełnieniem konfiguracji poprzez dodanie klas zapewniających funkcje odpowiednie do określonego typu urządzenia. Obie konfiguracje posiadają profile. Profile mogą korzystać z innych profili. Ostatecznie po wybraniu konfiguracji i profilu, programista tworzy aplikację dla konkretnego typu urządzenia. Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Profile dla CLDC Profile dla CDC Profile dla CLDC MIDP (1.0, 2.0, 2.1) - Mobile Information Device Profile Przeznaczony jest dla telefonów komórkowych. PDA Profile Przeznaczony jest dla notesów elektronicznych. Bardziej zaawansowana biblioteka interfejsu użytkownika niż w MIDP. Dostęp do bardziej skomplikowanych funkcji systemu operacyjnego. Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Profile dla CLDC Profile dla CDC Profile dla CLDC MIDP (1.0, 2.0, 2.1) - Mobile Information Device Profile Przeznaczony jest dla telefonów komórkowych. PDA Profile Przeznaczony jest dla notesów elektronicznych. Bardziej zaawansowana biblioteka interfejsu użytkownika niż w MIDP. Dostęp do bardziej skomplikowanych funkcji systemu operacyjnego. Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Profile dla CLDC Profile dla CDC Profile dla CDC Profil Foundation Podstawa dla wszystkich profili. Oferuje prawie wszystkie podstawowe biblioteki J2SE v1.3 Profile Personal Basis oraz Personal Posiadają biblioteki mniej i bardziej skomplikowanego interfejsu użytkownika Profil RMI Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Profile dla CLDC Profile dla CDC Profile dla CDC Profil Foundation Podstawa dla wszystkich profili. Oferuje prawie wszystkie podstawowe biblioteki J2SE v1.3 Profile Personal Basis oraz Personal Posiadają biblioteki mniej i bardziej skomplikowanego interfejsu użytkownika Profil RMI Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Profile dla CLDC Profile dla CDC Profile dla CDC Profil Foundation Podstawa dla wszystkich profili. Oferuje prawie wszystkie podstawowe biblioteki J2SE v1.3 Profile Personal Basis oraz Personal Posiadają biblioteki mniej i bardziej skomplikowanego interfejsu użytkownika Profil RMI Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Wprowadzenie Wymagania Dodatkowe pakiety MIDP - Wprowadzenie MIDP – (Mobile Information Device Profile) Profil rozszerzający konfigurację CLDC Przeznaczony dla urządzeń o niskich parametrach technicznych Programy napisane przy pomocy MIDP noszą nazwę MIDletów Programy uruchamiane przy pomocy KVM Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Wprowadzenie Wymagania Dodatkowe pakiety MIDP - Wprowadzenie MIDP – (Mobile Information Device Profile) Profil rozszerzający konfigurację CLDC Przeznaczony dla urządzeń o niskich parametrach technicznych Programy napisane przy pomocy MIDP noszą nazwę MIDletów Programy uruchamiane przy pomocy KVM Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Wprowadzenie Wymagania Dodatkowe pakiety MIDP - Wprowadzenie MIDP – (Mobile Information Device Profile) Profil rozszerzający konfigurację CLDC Przeznaczony dla urządzeń o niskich parametrach technicznych Programy napisane przy pomocy MIDP noszą nazwę MIDletów Programy uruchamiane przy pomocy KVM Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Wprowadzenie Wymagania Dodatkowe pakiety MIDP - Wprowadzenie MIDP – (Mobile Information Device Profile) Profil rozszerzający konfigurację CLDC Przeznaczony dla urządzeń o niskich parametrach technicznych Programy napisane przy pomocy MIDP noszą nazwę MIDletów Programy uruchamiane przy pomocy KVM Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Wprowadzenie Wymagania Dodatkowe pakiety MIDP - Wymagania Wymagania dotyczące urządzenia: Pamięć: operacyjna - minimum 160KB ( 128KB profil, 32KB stos) trwała – minimum 8KB Ekran: rozdzielczość 96x54 pikseli co najmniej 2 kolory Urządzenia wejściowe: wprowadzanie cyfr 0-9, sterowanie, wybór Implementacja protokołu HTTP1.1 Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Wprowadzenie Wymagania Dodatkowe pakiety MIDP - Wymagania Wymagania dotyczące urządzenia: Pamięć: operacyjna - minimum 160KB ( 128KB profil, 32KB stos) trwała – minimum 8KB Ekran: rozdzielczość 96x54 pikseli co najmniej 2 kolory Urządzenia wejściowe: wprowadzanie cyfr 0-9, sterowanie, wybór Implementacja protokołu HTTP1.1 Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Wprowadzenie Wymagania Dodatkowe pakiety MIDP - Wymagania Wymagania dotyczące urządzenia: Pamięć: operacyjna - minimum 160KB ( 128KB profil, 32KB stos) trwała – minimum 8KB Ekran: rozdzielczość 96x54 pikseli co najmniej 2 kolory Urządzenia wejściowe: wprowadzanie cyfr 0-9, sterowanie, wybór Implementacja protokołu HTTP1.1 Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Wprowadzenie Wymagania Dodatkowe pakiety MIDP - Wymagania Wymagania dotyczące urządzenia: Pamięć: operacyjna - minimum 160KB ( 128KB profil, 32KB stos) trwała – minimum 8KB Ekran: rozdzielczość 96x54 pikseli co najmniej 2 kolory Urządzenia wejściowe: wprowadzanie cyfr 0-9, sterowanie, wybór Implementacja protokołu HTTP1.1 Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Wprowadzenie Wymagania Dodatkowe pakiety MIDP - dodatkowe pakiety MIDP rozszerza CLDC o następujące pakiety: javax.microedition.midlet – zawiera klasę MIDlet oraz steruje cyklem życia MIDletu javax.microedition.lcdui – wsparcie tworzenia interfejsu użytkownika javax.microedition.rms – zarządzanie pamięcią stałą javax.microedition.oi – wsparcie połączeń z internetem Ponadto pakiet java.util został rozszerzony o klasy Timer i TimerTask Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Wprowadzenie Wymagania Dodatkowe pakiety MIDP - dodatkowe pakiety MIDP rozszerza CLDC o następujące pakiety: javax.microedition.midlet – zawiera klasę MIDlet oraz steruje cyklem życia MIDletu javax.microedition.lcdui – wsparcie tworzenia interfejsu użytkownika javax.microedition.rms – zarządzanie pamięcią stałą javax.microedition.oi – wsparcie połączeń z internetem Ponadto pakiet java.util został rozszerzony o klasy Timer i TimerTask Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Wprowadzenie Wymagania Dodatkowe pakiety MIDP - dodatkowe pakiety MIDP rozszerza CLDC o następujące pakiety: javax.microedition.midlet – zawiera klasę MIDlet oraz steruje cyklem życia MIDletu javax.microedition.lcdui – wsparcie tworzenia interfejsu użytkownika javax.microedition.rms – zarządzanie pamięcią stałą javax.microedition.oi – wsparcie połączeń z internetem Ponadto pakiet java.util został rozszerzony o klasy Timer i TimerTask Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Wprowadzenie Wymagania Dodatkowe pakiety MIDP - dodatkowe pakiety MIDP rozszerza CLDC o następujące pakiety: javax.microedition.midlet – zawiera klasę MIDlet oraz steruje cyklem życia MIDletu javax.microedition.lcdui – wsparcie tworzenia interfejsu użytkownika javax.microedition.rms – zarządzanie pamięcią stałą javax.microedition.oi – wsparcie połączeń z internetem Ponadto pakiet java.util został rozszerzony o klasy Timer i TimerTask Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Wprowadzenie Wymagania Dodatkowe pakiety MIDP - dodatkowe pakiety MIDP rozszerza CLDC o następujące pakiety: javax.microedition.midlet – zawiera klasę MIDlet oraz steruje cyklem życia MIDletu javax.microedition.lcdui – wsparcie tworzenia interfejsu użytkownika javax.microedition.rms – zarządzanie pamięcią stałą javax.microedition.oi – wsparcie połączeń z internetem Ponadto pakiet java.util został rozszerzony o klasy Timer i TimerTask Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika MIDlet - informacje podstawowe Co najmniej jedna klasa rozszerza klasę MIDlet z pakietu javax.microedition.midlet Klasy te muszą implementować następujące metody: startApp() pauseApp() destroyApp(boolean unconditional) Muszą również udostępniać publiczny domyślny konstruktor. Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika MIDlet - informacje podstawowe Co najmniej jedna klasa rozszerza klasę MIDlet z pakietu javax.microedition.midlet Klasy te muszą implementować następujące metody: startApp() pauseApp() destroyApp(boolean unconditional) Muszą również udostępniać publiczny domyślny konstruktor. Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika MIDlet - informacje podstawowe Co najmniej jedna klasa rozszerza klasę MIDlet z pakietu javax.microedition.midlet Klasy te muszą implementować następujące metody: startApp() pauseApp() destroyApp(boolean unconditional) Muszą również udostępniać publiczny domyślny konstruktor. Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika MIDlet - szkielet 1 2 3 4 5 6 7 8 9 10 11 public class MyFirstMIDlet extends MIDlet { public void startApp () throws M I D l e t S t a t e C h a n g e E x c e p t i o n { } public void pauseApp () { } public void destroyApp ( boolean unconditional ) { } /* * O p c j o n a l n y k o n s t r u k t o r : */ public MyFirstMIDlet () { } } Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika MIDlet - cykl życia Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika MIDlet - stany Stan ACTIVE Przejście w stan po wywołaniu metody startApp() – możliwe wywołania wielokrotne Stan PAUSED Przejście w stan w wyniku: Po zainicjalizowaniu aplikacji przez wywołanie konstruktora Ze stanu aktywnego po wywołaniu pauseApp() przez AMS Ze stanu aktywnego jeśli w metodzie startApp() wystąpił wyjątek Ze stanu aktywnego po wywołaniu metody notifyPaused() Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika MIDlet - stany Stan ACTIVE Przejście w stan po wywołaniu metody startApp() – możliwe wywołania wielokrotne Stan PAUSED Przejście w stan w wyniku: Po zainicjalizowaniu aplikacji przez wywołanie konstruktora Ze stanu aktywnego po wywołaniu pauseApp() przez AMS Ze stanu aktywnego jeśli w metodzie startApp() wystąpił wyjątek Ze stanu aktywnego po wywołaniu metody notifyPaused() Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika MIDlet - stany Stan ACTIVE Przejście w stan po wywołaniu metody startApp() – możliwe wywołania wielokrotne Stan PAUSED Przejście w stan w wyniku: Po zainicjalizowaniu aplikacji przez wywołanie konstruktora Ze stanu aktywnego po wywołaniu pauseApp() przez AMS Ze stanu aktywnego jeśli w metodzie startApp() wystąpił wyjątek Ze stanu aktywnego po wywołaniu metody notifyPaused() Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika MIDlet - stany Stan ACTIVE Przejście w stan po wywołaniu metody startApp() – możliwe wywołania wielokrotne Stan PAUSED Przejście w stan w wyniku: Po zainicjalizowaniu aplikacji przez wywołanie konstruktora Ze stanu aktywnego po wywołaniu pauseApp() przez AMS Ze stanu aktywnego jeśli w metodzie startApp() wystąpił wyjątek Ze stanu aktywnego po wywołaniu metody notifyPaused() Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika MIDlet - stany Stan ACTIVE Przejście w stan po wywołaniu metody startApp() – możliwe wywołania wielokrotne Stan PAUSED Przejście w stan w wyniku: Po zainicjalizowaniu aplikacji przez wywołanie konstruktora Ze stanu aktywnego po wywołaniu pauseApp() przez AMS Ze stanu aktywnego jeśli w metodzie startApp() wystąpił wyjątek Ze stanu aktywnego po wywołaniu metody notifyPaused() Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika MIDlet - stany(2) Stan DESTROYED Przejście w stan w wyniku: Po wywołaniu destroyApp(boolean unconditional) przez AMS i zakończeniu powodzeniem Po wywołaniu metody notifyDestroyed() Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika MIDlet - stany(2) Stan DESTROYED Przejście w stan w wyniku: Po wywołaniu destroyApp(boolean unconditional) przez AMS i zakończeniu powodzeniem Po wywołaniu metody notifyDestroyed() Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika MIDlet - podstawowe metody Metody wywoływane przez AMS: startApp() - wywoływana przy prześciu do stanu ACTIVE, przydzielenie zasobów pausedApp() – wywoływana przy prześciu do stanu PAUSED, zwolnienie wykorzystywanych zasobów destroyApp(boolean unconditional) – wywoływana przy prześciu do stanu DESTROYED, zapis danych, zwolnienie wykorzystywanych zasobów Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika MIDlet - podstawowe metody Metody wywoływane przez AMS: startApp() - wywoływana przy prześciu do stanu ACTIVE, przydzielenie zasobów pausedApp() – wywoływana przy prześciu do stanu PAUSED, zwolnienie wykorzystywanych zasobów destroyApp(boolean unconditional) – wywoływana przy prześciu do stanu DESTROYED, zapis danych, zwolnienie wykorzystywanych zasobów Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika MIDlet - podstawowe metody Metody wywoływane przez AMS: startApp() - wywoływana przy prześciu do stanu ACTIVE, przydzielenie zasobów pausedApp() – wywoływana przy prześciu do stanu PAUSED, zwolnienie wykorzystywanych zasobów destroyApp(boolean unconditional) – wywoływana przy prześciu do stanu DESTROYED, zapis danych, zwolnienie wykorzystywanych zasobów Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika MIDlet - podstawowe metody(2) Metody wywoływane przez midlet: notifyPaused() – informuje AMS, że aplikacja przeniosła się do stanu PAUSED po zwolnieniu zasobów, metoda pauseApp() nie jest wywoływana notifyDestroyed() -informuje AMS, że aplikacja przeniosła się do stanu DESTROYED, metoda destroyApp(boolean unconditional) nie jest wywoływana resumeRequest() – MIDlet prosi AMS o ponowne wystartowanie (wywołanie metody startApp()) Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika MIDlet - podstawowe metody(2) Metody wywoływane przez midlet: notifyPaused() – informuje AMS, że aplikacja przeniosła się do stanu PAUSED po zwolnieniu zasobów, metoda pauseApp() nie jest wywoływana notifyDestroyed() -informuje AMS, że aplikacja przeniosła się do stanu DESTROYED, metoda destroyApp(boolean unconditional) nie jest wywoływana resumeRequest() – MIDlet prosi AMS o ponowne wystartowanie (wywołanie metody startApp()) Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika MIDlet - podstawowe metody(2) Metody wywoływane przez midlet: notifyPaused() – informuje AMS, że aplikacja przeniosła się do stanu PAUSED po zwolnieniu zasobów, metoda pauseApp() nie jest wywoływana notifyDestroyed() -informuje AMS, że aplikacja przeniosła się do stanu DESTROYED, metoda destroyApp(boolean unconditional) nie jest wywoływana resumeRequest() – MIDlet prosi AMS o ponowne wystartowanie (wywołanie metody startApp()) Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika MIDlet Suit MIDlet Suit stanowi zestaw midletów, które dostarczane są użytkownikowi i instalowane z pojedynczego archiwum JAR. Pozwalają na podział aplikacji na mniejsze, wydajniejsze i łatwiejsze w utrzymaniu aplikacje. MIDlety z danego zestawu: Uruchamiane w jednej maszynie wirtualnej Współdzielą pamięć trwałą Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika MIDlet Suit MIDlet Suit stanowi zestaw midletów, które dostarczane są użytkownikowi i instalowane z pojedynczego archiwum JAR. Pozwalają na podział aplikacji na mniejsze, wydajniejsze i łatwiejsze w utrzymaniu aplikacje. MIDlety z danego zestawu: Uruchamiane w jednej maszynie wirtualnej Współdzielą pamięć trwałą Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika MIDlet - dystrybucja MIDlet dostarczany jest w postaci dwóch plików: JAR – Java ARchive Pliki .class Zasoby (ikony, dołączone pakiety, pliki) manifest.mf JAD – Java Application Descriptor 1 2 3 4 5 6 7 MIDlet - Name : Wireless Trader MIDlet - Vendor : Wireless Java Inc . MIDlet - Version : 1.0.1 MIDlet - Description : A set of MIDlets for online trading MIDlet - Data - Size : 512 MIDlet - Jar - Size : 10312 MIDlet - Jar - URL : http : // www . w i r e l e s s . com / trader / Midlets . jar Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika MIDlet - dystrybucja MIDlet dostarczany jest w postaci dwóch plików: JAR – Java ARchive Pliki .class Zasoby (ikony, dołączone pakiety, pliki) manifest.mf JAD – Java Application Descriptor 1 2 3 4 5 6 7 MIDlet - Name : Wireless Trader MIDlet - Vendor : Wireless Java Inc . MIDlet - Version : 1.0.1 MIDlet - Description : A set of MIDlets for online trading MIDlet - Data - Size : 512 MIDlet - Jar - Size : 10312 MIDlet - Jar - URL : http : // www . w i r e l e s s . com / trader / Midlets . jar Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika MIDlet - dystrybucja MIDlet dostarczany jest w postaci dwóch plików: JAR – Java ARchive Pliki .class Zasoby (ikony, dołączone pakiety, pliki) manifest.mf JAD – Java Application Descriptor 1 2 3 4 5 6 7 MIDlet - Name : Wireless Trader MIDlet - Vendor : Wireless Java Inc . MIDlet - Version : 1.0.1 MIDlet - Description : A set of MIDlets for online trading MIDlet - Data - Size : 512 MIDlet - Jar - Size : 10312 MIDlet - Jar - URL : http : // www . w i r e l e s s . com / trader / Midlets . jar Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika MIDlet - interfejs użytkownika Problemy związane z projektowaniem interfejsu użytkownika: Mały ekran Różne rozdzielczości ekranu Ograniczenia pamięciowe Wymagana szybka obsługa zadań Ograniczone sterowanie Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika MIDlet - interfejs użytkownika Problemy związane z projektowaniem interfejsu użytkownika: Mały ekran Różne rozdzielczości ekranu Ograniczenia pamięciowe Wymagana szybka obsługa zadań Ograniczone sterowanie Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika MIDlet - interfejs użytkownika Problemy związane z projektowaniem interfejsu użytkownika: Mały ekran Różne rozdzielczości ekranu Ograniczenia pamięciowe Wymagana szybka obsługa zadań Ograniczone sterowanie Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika MIDlet - interfejs użytkownika Problemy związane z projektowaniem interfejsu użytkownika: Mały ekran Różne rozdzielczości ekranu Ograniczenia pamięciowe Wymagana szybka obsługa zadań Ograniczone sterowanie Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika MIDlet - interfejs użytkownika Problemy związane z projektowaniem interfejsu użytkownika: Mały ekran Różne rozdzielczości ekranu Ograniczenia pamięciowe Wymagana szybka obsługa zadań Ograniczone sterowanie Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika MIDlet - interfejs użytkownika(2) Aplikacja MIDP pozwala na projektowanie interfejsu na dwa sposoby: High-level Wykorzystanie klas bezpośrednio dziedziczących Screen Wykorzystanie klasy Form oraz dziedziczących po klasie Item kontrolek Low-level wykorzystanie klasy Canvas i niższego poziomu kontroli wyświetlania grafiki Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika MIDlet - interfejs użytkownika(2) Aplikacja MIDP pozwala na projektowanie interfejsu na dwa sposoby: High-level Wykorzystanie klas bezpośrednio dziedziczących Screen Wykorzystanie klasy Form oraz dziedziczących po klasie Item kontrolek Low-level wykorzystanie klasy Canvas i niższego poziomu kontroli wyświetlania grafiki Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika MIDlet - interfejs użytkownika(2) Aplikacja MIDP pozwala na projektowanie interfejsu na dwa sposoby: High-level Wykorzystanie klas bezpośrednio dziedziczących Screen Wykorzystanie klasy Form oraz dziedziczących po klasie Item kontrolek Low-level wykorzystanie klasy Canvas i niższego poziomu kontroli wyświetlania grafiki Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika MIDP - główne klasy UI Rysunek: Hierarchia klas UI Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Narzędzia Przykładowe aplikacje Środowisko programistyczne NetBeans EclipseMe Sun ONE Studio, Mobile Edition Borland JBuilder i MobileSet Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Narzędzia Przykładowe aplikacje Środowisko programistyczne NetBeans EclipseMe Sun ONE Studio, Mobile Edition Borland JBuilder i MobileSet Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Narzędzia Przykładowe aplikacje Środowisko programistyczne NetBeans EclipseMe Sun ONE Studio, Mobile Edition Borland JBuilder i MobileSet Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Narzędzia Przykładowe aplikacje Środowisko programistyczne NetBeans EclipseMe Sun ONE Studio, Mobile Edition Borland JBuilder i MobileSet Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Narzędzia Przykładowe aplikacje Toolkity/emulatory Sun Java Wireless Toolkit Sony Ericsson SDK Nokia SDK Siemens SDK Motorola SDK Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Narzędzia Przykładowe aplikacje Toolkity/emulatory Sun Java Wireless Toolkit Sony Ericsson SDK Nokia SDK Siemens SDK Motorola SDK Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Narzędzia Przykładowe aplikacje Telefon Warto pamiętać o testowaniu aplikacji na telefonie, na którym ma być użytkowana! Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Narzędzia Przykładowe aplikacje Hello World Pokaz tworzenia najprostszej aplikacji Java Micro Edition Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Narzędzia Przykładowe aplikacje Tworzenie GUI niskiego poziomu Klasa dziedzicząca po Canvas przeciąża funkcje paint() oraz keyPressed(): 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 private class Screen extends Canvas { ... public void keyPressed ( int keyCode ){ if ( keyCode == -1 || keyCode == 50) this . c h a n g e E l i p s e W i d t h (20); else ... } protected void paint ( Graphics g ){ g . setColor (0 xffffff ); g . fillRect (0 , 0 , screenWidth , screenHeight ); g . setColor (0 x000000 ); g . drawString ( " (0 ,0) " , 0 , 0 , g . TOP | g . LEFT ); ... g . fillArc ( screenWidth /2 - eclipseWidth /2 , screenHeight /2 - eclipseWidth /2 , eclipseWidth , eclipseWidth , 50 , 290); Agata... Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Narzędzia Przykładowe aplikacje Tworzenie GUI wysokiego poziomu Tworzenie formularza oraz pól tekstowych: 1 2 3 4 5 6 7 8 9 10 11 form = new Form ( " Personal data " ); // T e x t F i e l d : name = new TextField ( " Nick : " , null , 30 , TextField . ANY ); form . append ( name ); mail = new TextField ( "E - mail : " , null , 30 , TextField . EMAILADDR ); form . append ( mail ); form . append ( new TextField ( " Password : " , null , 12 , TextField . PASSWORD | TextField . ANY )); form . append ( new TextField ( " Phone : " , null , 12 , TextField . PHONENUMBER )); form . append ( new TextField ( " Age : " , null , 3 , TextField . NUMERIC )); Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Narzędzia Przykładowe aplikacje Tworzenie GUI wysokiego poziomu Tworzenie list: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 male = Image . createImage ( " / icons / male . PNG " ); female = Image . createImage ( " / icons / female . PNG " ); c h G r o u p E x c l u si v e = new ChoiceGroup ( " Sex : " , ChoiceGroup . EXCLUSIVE ); c h G r o u p E x c l u si v e . append ( " Female " , female ); c h G r o u p E x c l u si v e . append ( " Male " , male ); form . append ( c h Gr o u p E x c l u s i v e ); c hG ro u pM ul ti p le = new ChoiceGroup ( " Music : " , ChoiceGroup . MULTIPLE ); c hG ro u pM ul ti p le . append ( " Classic " , null ); c hG ro u pM ul ti p le . append ( " Metal " , null ); c hG ro u pM ul ti p le . append ( " Pop " , null ); c hG ro u pM ul ti p le . append ( " Rock " , null ); form . append ( c hG ro u pM ul ti p le ); form . s e t I t e m S t a t e L i s t e n e r ( this ); public void i t e m S t a t e C h a n g e d ( Item item ) {...} Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Narzędzia Przykładowe aplikacje Tworzenie GUI wysokiego poziomu Ustawianie komend: 1 2 3 4 5 6 7 8 9 10 saveCommand = new Command ( " Save " , Command . SCREEN , 1); exitCommand = new Command ( " Exit " , Command . EXIT , 2); ... form . addCommand ( exitCommand ); form . addCommand ( saveCommand ); form . s e t C o m m a n d L i s t e n e r ( this ); ... public void commandAction ( Command command , Displayable displayable ) {...} Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Narzędzia Przykładowe aplikacje Zapis trwały RecordStore – uporządkowana kolekcja rekordów inicjujemy, nadając mu unikalną nazwę: 1 rs = RecordStore . o pe nR ec o rd St or e ( "recordStoreName" , true ); zapis: wczytywanie danych do strumienia, a następnie do RecordStore 1 2 record = strmBytes . toByteArray (); rs . addRecord ( record , 0 , record . length ); odczyt: ze strumienia korzystając z klasy RecordEnumeration pobranie obiektu tego typu następuje przez wywołanie metody enumerateRecords(RecordFilter filter, RecordComparator comparator, boolean keepUpdated). Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Narzędzia Przykładowe aplikacje Zapis trwały RecordStore – uporządkowana kolekcja rekordów inicjujemy, nadając mu unikalną nazwę: 1 rs = RecordStore . o pe nR ec o rd St or e ( "recordStoreName" , true ); zapis: wczytywanie danych do strumienia, a następnie do RecordStore 1 2 record = strmBytes . toByteArray (); rs . addRecord ( record , 0 , record . length ); odczyt: ze strumienia korzystając z klasy RecordEnumeration pobranie obiektu tego typu następuje przez wywołanie metody enumerateRecords(RecordFilter filter, RecordComparator comparator, boolean keepUpdated). Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Narzędzia Przykładowe aplikacje Zapis trwały(2) W celu usunięcia rekordów możemy zastosować jedną z dwóch metod: deleteRecord(int recordID) - usuwa rekord o podanym identyfikatorze ze zbioru deleteRecordStore(String recordStoreName) - usuwa cały zbiór rekordów o podanej nazwie, pod warunkiem, że zbiór był zamknięty – inaczej otrzymamy wyjątek RecordStoreException. Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Narzędzia Przykładowe aplikacje Testy jednostkowe Istnieją różne frameworki do testów jednostkowych: Sony Ericsson Mobile JUnit 1.0 for Java ME CLDC phones JMUnit J2MEUnit Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Narzędzia Przykładowe aplikacje Testy jednostkowe w JMUnit Klasy testowe: dziedziczą po klasie jmunit.framework.cldc11.TestCase (wersja dla CLDC 1.1) umieszczane są (jeszcze) w pakiecie, w którym znajduje się klasa, która ma być pokryta testami mają nazwę klasy pokrywanej testami rozszerzoną o sufiks Test Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Narzędzia Przykładowe aplikacje Tworzenie testów jednostkowych w JMUnit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 public class RMSManag erTest extends TestCase { private RMSManager rms ; public RMSMan agerTes t () { // The first p a r a m e t e r of i n h e r i t e d c o n s t r u c t o r is the // number of test cases super (1 , " RMSManag erTest " ); rms = new RMSManager (); } public void test ( int testNumber ) throws Throwable { switch ( testNumber ) { case 0: t e s t D e l e t e C o n t a c t (); break ; default : break ; } } Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Narzędzia Przykładowe aplikacje Tworzenie testów jednostkowych w JMUnit Przykład testu (dla funkcji deleteContact()): 1 2 3 4 5 6 7 8 9 10 /* * * Test of t e s t D e l e t e C o n t a c t method , of class R M S M a n a g e r . */ public void t e s t D e l e t e C o n t a c t () throws A s s e r t i o n F a i l e d E x c e p t i o n { System . out . println ( " deleteContact " ); rms . resetRMS (); rms . addContact ( " Name " , "E - mail " ); rms . deleteContact (1); assertEquals ( rms . readContacts () , " " ); } Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Narzędzia Przykładowe aplikacje Bibliografia „J2ME in a Nutshell” Kim Topley „Programming Java 2 Micro Edition for Symbian OS 2004” Martin de Jode http://java.sun.com/javame http://java.sun.com/products/cldc/wp/KVMwp.pdf http://www.midlety.net www.java2s.com www.roseindia.net Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition Wprowadzenie Wykorzystanie Konfiguracje Maszyny wirtualne Profile MIDP MIDlet JME w praktyce Narzędzia Przykładowe aplikacje Dziękujemy za uwagę. Agata Gałecka, Martyna Sikorska, Tomasz Cebula J2ME - Java Micro Edition