Agata Gałecka, Martyna Sikorska, Tomasz Cebula. 28 kwietnia 2009



Podobne dokumenty
Autor : Mateusz Kupczyk

Programowanie aplikacji na urządzenia mobilne

Wprowadzenie do J2ME

Piotr Orzechowski. Technologie Biznesu Elektronicznego

ZAPOZNANIE SIĘ Z TWORZENIEM

M-biznes: Mobile Business. Realizacja aplikacji mobilnych w języku Java. Typy urządzeń przenośnych. Przykłady zastosowań

Podstawy tworzenia aplikacji z wykorzystaniem języka Java ME ćwiczenia 2

Podstawy tworzenia aplikacji z wykorzystaniem języka Java ME ćwiczenia 1

Java Platform Micro Edition

Podstawy tworzenia aplikacji z wykorzystaniem języka Java ME ćwiczenia 3

public void startapp() { } public void pauseapp() { } public void destroyapp(boolean unconditional) { }

Java programowanie telefonów komórkowych Na podstawie:

STWORZENIE PRZYKŁADOWEJ

Programowanie obiektowe

Programowanie urządzeń mobilnych na platformie Java ME

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Laboratorium z informatyki sem. III/ćw.11 Wydział Transportu PW 2017/18

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Programowanie w języku Java

Laboratorium z informatyki sem. III/ćw.12 Wydział Transportu PW 2018/19

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Tworzenie aplikacji w języku Java

Java - wprowadzenie. Programowanie Obiektowe Mateusz Cicheński

J2ME Część II. P.J.Podsiadły

Multimedia JAVA. Historia

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Politechnika Poznańska, Instytut Informatyki, TWO/GE. Programowanie dla ios

Programowanie obiektowe zastosowanie języka Java SE

JAVA W SUPER EXPRESOWEJ PIGUŁCE

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Java jako język programowania

Wykład 1: Wprowadzenie do technologii Java

Programowanie urządzeń mobilnych

INSTRUKCJA DO ĆWICZENIA 13. Animacja wielowątkowa w aplikacjach JME. Gra logistyczna.

Java Język programowania

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 8

Wykład 7: Pakiety i Interfejsy

Programowanie w języku Java

Struktury systemów operacyjnych

Programowanie obiektowe

Programowanie obiektowe. Wprowadzenie

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Aplikacje w środowisku Java

Instrukcja 10 Laboratorium 13 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse

Android ios Windows Mobile J2ME czyli Java 2 Micro Edition,

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków

WPROWADZENIE DO JĘZYKA JAVA

Programowanie w Internecie. Java

Programowanie obiektowe

Dokumentacja do API Javy.

Podstawy otwartych języków programowania Język Java

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

Podstawy języka Java. przygotował:

Systemy operacyjne na platformach mobilnych

I2: J2ME programowanie w NetBeans IDE Wydział Transportu PW semestr /11

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Programowanie obiektowe

Język JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Programowanie obiektowe

Wykład 2: Podstawy Języka

UML a kod. C++, Java i C#

Programowanie obiektowe

Projektowanie aplikacji internetowych laboratorium

Programowanie obiektowe

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Wykład 4: Klasy i Metody

Temat 3. Projektowanie interfejsu użytkonwnika Kalkulator pierwszy program dla IOS

Swing Application Framework czyli tam i z powrotem. Copyright Piotr Kochański & Erudis,

Programowanie Urządzeń Mobilnych. Laboratorium nr 7, 8

KLASY, INTERFEJSY, ITP

Laboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium:

Wprowadzenie do języka Java

Zaawansowane aplikacje WWW - laboratorium

Aplikacje w środowisku Java

Wykorzystywanie parsera DOM w programach Java i PL/SQL

Język Java część 2 (przykładowa aplikacja)

Tworzenie natywnych aplikacji na urządzenia mobilne - PhoneGap Tomasz Margalski

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

Języki Programowania II Wykład 3. Java podstawy. Przypomnienie

LABARATORIUM 9 TESTY JEDNOSTKOWE JUNIT 3.8

Metody dostępu do danych

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego

J2ME. Java dla urz¹dzeñ mobilnych. Æwiczenia

WPROWADZENIE DO JĘZYKA JAVA

Wątki w Javie. Piotr Tokarski

Akademia ETI. Wprowadzenie do programowania w Javie PG Java User Group Przemysław Kulesza

Język Java część 2 (przykładowa aplikacja)

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Wywoływanie metod zdalnych

OSGi Agata Hejmej

TECHNOLOGIE INFORMACYJNE

Aplikacje RMI

Android, wprowadzenie do SDK

Projektowanie obiektowe. Roman Simiński Wzorce projektowe Wybrane wzorce strukturalne

PHP 5 język obiektowy

Transkrypt:

Politechnika Wrocławska Informatyka 28 kwietnia 2009

Agenda 1 do J2ME 2 J2ME 3 4 5 6 Profil 7 Klasa 8 Narzędzia 9

Agenda 1 do J2ME 2 J2ME 3 4 5 6 Profil 7 Klasa 8 Narzędzia 9

Agenda 1 do J2ME 2 J2ME 3 4 5 6 Profil 7 Klasa 8 Narzędzia 9

Agenda 1 do J2ME 2 J2ME 3 4 5 6 Profil 7 Klasa 8 Narzędzia 9

Agenda 1 do J2ME 2 J2ME 3 4 5 6 Profil 7 Klasa 8 Narzędzia 9

Agenda 1 do J2ME 2 J2ME 3 4 5 6 Profil 7 Klasa 8 Narzędzia 9

Agenda 1 do J2ME 2 J2ME 3 4 5 6 Profil 7 Klasa 8 Narzędzia 9

Agenda 1 do J2ME 2 J2ME 3 4 5 6 Profil 7 Klasa 8 Narzędzia 9

Agenda 1 do J2ME 2 J2ME 3 4 5 6 Profil 7 Klasa 8 Narzędzia 9

Dlaczego Java2? Informacje ogólne Podział platformy Java Umożliwia wytwarzanie oprogramowania niezależnie od systemu. Write once, run everywhere"

Dlaczego Java2? Informacje ogólne Podział platformy Java Umożliwia wytwarzanie oprogramowania niezależnie od systemu. Write once, run everywhere"

Dlaczego Java2? Informacje ogólne Podział platformy Java Umożliwia wytwarzanie oprogramowania niezależnie od systemu. Write once, run everywhere"

Informacje ogólne Informacje ogólne Podział platformy Java 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.

Informacje ogólne Informacje ogólne Podział platformy Java 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.

Informacje ogólne Informacje ogólne Podział platformy Java 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.

Podział platformy Java Informacje ogólne Podział platformy Java

Różnego typu urządzenia mobilne Pobieranie aplikacji na telefon komórkowy 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

Różnego typu urządzenia mobilne Pobieranie aplikacji na telefon komórkowy 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

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

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

Connected Limited Device Configuration Connected Device Configuration 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

Connected Limited Device Configuration Connected Device Configuration 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

Connected Limited Device Configuration Connected Device Configuration 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

Connected Limited Device Configuration Connected Device Configuration 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

Konfiguracja CLDC Connected Limited Device Configuration Connected Device Configuration 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.

Konfiguracja CLDC Connected Limited Device Configuration Connected Device Configuration 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.

Biblioteki klas CLDC Connected Limited Device Configuration Connected Device Configuration 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ń.

Biblioteki klas CLDC Connected Limited Device Configuration Connected Device Configuration 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ń.

Biblioteki klas CLDC Connected Limited Device Configuration Connected Device Configuration 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ń.

Biblioteki klas CLDC Connected Limited Device Configuration Connected Device Configuration 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ń.

Biblioteki klas CLDC Connected Limited Device Configuration Connected Device Configuration 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ń.

Biblioteki klas CLDC Connected Limited Device Configuration Connected Device Configuration 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ń.

Konfiguracja CDC Connected Limited Device Configuration Connected Device Configuration 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.

Konfiguracja CDC Connected Limited Device Configuration Connected Device Configuration 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.

Biblioteki klas CDC Connected Limited Device Configuration Connected Device Configuration 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ć Agatakompatybilność Gałecka, Martyna Sikorska, z Tomasz aplikacjami Cebula CDLC.

Biblioteki klas CDC Connected Limited Device Configuration Connected Device Configuration 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ć Agatakompatybilność Gałecka, Martyna Sikorska, z Tomasz aplikacjami Cebula CDLC.

Kilobyte Virtual Machine CVM 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.

Kilobyte Virtual Machine CVM 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.

Kilobyte Virtual Machine CVM 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.

Maszyna wirtualna KVM Kilobyte Virtual Machine CVM 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.

Maszyna wirtualna KVM Kilobyte Virtual Machine CVM 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.

Maszyna wirtualna CVM Kilobyte Virtual Machine 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.

Maszyna wirtualna CVM Kilobyte Virtual Machine 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.

Maszyna wirtualna CVM Kilobyte Virtual Machine 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.

dla CLDC dla CDC Profil jest uzupełnieniem konfiguracji poprzez dodanie klas zapewniających funkcje odpowiednie do określonego typu urządzenia. Obie konfiguracje posiadają profile. mogą korzystać z innych profili. Ostatecznie po wybraniu konfiguracji i profilu, programista tworzy aplikację dla konkretnego typu urządzenia.

dla CLDC dla CDC Profil jest uzupełnieniem konfiguracji poprzez dodanie klas zapewniających funkcje odpowiednie do określonego typu urządzenia. Obie konfiguracje posiadają profile. mogą korzystać z innych profili. Ostatecznie po wybraniu konfiguracji i profilu, programista tworzy aplikację dla konkretnego typu urządzenia.

dla CLDC dla CDC Profil jest uzupełnieniem konfiguracji poprzez dodanie klas zapewniających funkcje odpowiednie do określonego typu urządzenia. Obie konfiguracje posiadają profile. mogą korzystać z innych profili. Ostatecznie po wybraniu konfiguracji i profilu, programista tworzy aplikację dla konkretnego typu urządzenia.

dla CLDC dla CDC Profil jest uzupełnieniem konfiguracji poprzez dodanie klas zapewniających funkcje odpowiednie do określonego typu urządzenia. Obie konfiguracje posiadają profile. mogą korzystać z innych profili. Ostatecznie po wybraniu konfiguracji i profilu, programista tworzy aplikację dla konkretnego typu urządzenia.

dla CLDC dla CLDC dla CDC (1.0, 2.0, 2.1) - Mobile Information Device Przeznaczony jest dla telefonów komórkowych. PDA Przeznaczony jest dla notesów elektronicznych. Bardziej zaawansowana biblioteka interfejsu użytkownika niż w. Dostęp do bardziej skomplikowanych funkcji systemu operacyjnego.

dla CLDC dla CLDC dla CDC (1.0, 2.0, 2.1) - Mobile Information Device Przeznaczony jest dla telefonów komórkowych. PDA Przeznaczony jest dla notesów elektronicznych. Bardziej zaawansowana biblioteka interfejsu użytkownika niż w. Dostęp do bardziej skomplikowanych funkcji systemu operacyjnego.

dla CDC dla CLDC dla CDC Profil Foundation Podstawa dla wszystkich profili. Oferuje prawie wszystkie podstawowe biblioteki J2SE v1.3 Personal Basis oraz Personal Posiadają biblioteki mniej i bardziej skomplikowanego interfejsu użytkownika Profil RMI

dla CDC dla CLDC dla CDC Profil Foundation Podstawa dla wszystkich profili. Oferuje prawie wszystkie podstawowe biblioteki J2SE v1.3 Personal Basis oraz Personal Posiadają biblioteki mniej i bardziej skomplikowanego interfejsu użytkownika Profil RMI

dla CDC dla CLDC dla CDC Profil Foundation Podstawa dla wszystkich profili. Oferuje prawie wszystkie podstawowe biblioteki J2SE v1.3 Personal Basis oraz Personal Posiadają biblioteki mniej i bardziej skomplikowanego interfejsu użytkownika Profil RMI

- Wymagania Dodatkowe pakiety (Mobile Information Device ) Profil rozszerzający konfigurację CLDC Przeznaczony dla urządzeń o niskich parametrach technicznych Programy napisane przy pomocy noszą nazwę ów Programy uruchamiane przy pomocy KVM

- Wymagania Dodatkowe pakiety (Mobile Information Device ) Profil rozszerzający konfigurację CLDC Przeznaczony dla urządzeń o niskich parametrach technicznych Programy napisane przy pomocy noszą nazwę ów Programy uruchamiane przy pomocy KVM

- Wymagania Dodatkowe pakiety (Mobile Information Device ) Profil rozszerzający konfigurację CLDC Przeznaczony dla urządzeń o niskich parametrach technicznych Programy napisane przy pomocy noszą nazwę ów Programy uruchamiane przy pomocy KVM

- Wymagania Dodatkowe pakiety (Mobile Information Device ) Profil rozszerzający konfigurację CLDC Przeznaczony dla urządzeń o niskich parametrach technicznych Programy napisane przy pomocy noszą nazwę ów Programy uruchamiane przy pomocy KVM

- Wymagania Wymagania Dodatkowe pakiety 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

- Wymagania Wymagania Dodatkowe pakiety 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

- Wymagania Wymagania Dodatkowe pakiety 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

- Wymagania Wymagania Dodatkowe pakiety 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

- dodatkowe pakiety Wymagania Dodatkowe pakiety rozszerza CLDC o następujące pakiety: javax.microedition.midlet zawiera klasę oraz steruje cyklem życia u 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

- dodatkowe pakiety Wymagania Dodatkowe pakiety rozszerza CLDC o następujące pakiety: javax.microedition.midlet zawiera klasę oraz steruje cyklem życia u 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

- dodatkowe pakiety Wymagania Dodatkowe pakiety rozszerza CLDC o następujące pakiety: javax.microedition.midlet zawiera klasę oraz steruje cyklem życia u 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

- dodatkowe pakiety Wymagania Dodatkowe pakiety rozszerza CLDC o następujące pakiety: javax.microedition.midlet zawiera klasę oraz steruje cyklem życia u 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

- dodatkowe pakiety Wymagania Dodatkowe pakiety rozszerza CLDC o następujące pakiety: javax.microedition.midlet zawiera klasę oraz steruje cyklem życia u 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

- informacje podstawowe Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika Co najmniej jedna klasa rozszerza klasę 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.

- informacje podstawowe Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika Co najmniej jedna klasa rozszerza klasę 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.

- informacje podstawowe Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika Co najmniej jedna klasa rozszerza klasę 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.

- szkielet Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika 1 public class MyFirst extends { 2 public void startapp () throws StateChangeException { 3 } 4 public void pauseapp () { 5 } 6 public void destroyapp ( boolean unconditional ) { 7 } 8 /* * Opcjonalny konstruktor : */ 9 public MyFirst () { 10 } 11 }

- cykl życia Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika

- stany Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika 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()

- stany Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika 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()

- stany Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika 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()

- stany Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika 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()

- stany Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika 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()

- stany(2) Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika 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()

- stany(2) Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika 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()

- podstawowe metody Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika 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

- podstawowe metody Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika 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

- podstawowe metody Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika 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

- podstawowe metody(2) Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika 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() prosi AMS o ponowne wystartowanie (wywołanie metody startapp())

- podstawowe metody(2) Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika 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() prosi AMS o ponowne wystartowanie (wywołanie metody startapp())

- podstawowe metody(2) Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika 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() prosi AMS o ponowne wystartowanie (wywołanie metody startapp())

Suit Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika 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. y z danego zestawu: Uruchamiane w jednej maszynie wirtualnej Współdzielą pamięć trwałą

Suit Informacje podstawowe Cykl życia Podstawowe metody Dystrybucja Interfejs użytkownika 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. y z danego zestawu: Uruchamiane w jednej maszynie wirtualnej Współdzielą pamięć trwałą