Java - programowanie telefonów komórkowych,
[ Pobierz całość w formacie PDF ]
Java–aplikacjenakomórki
NowakAgnieszka
Java–programowanietelefonówkomórkowych
Napodstawie:http://midlety.net/
TwórcyJavyreklamująjąsłusznymhasłem:
„Wystarczyrazzapisaćkodaprogrammożnauruchomićwszędzie”
ZaletyJAVA:
¤ OżywienieWWW,
¤ Niemakłopotuzinstalacją,
¤ Łatwepisanieaplikacjisieciowych,
¤ Wieloplatformowość,
¤ Językwpełniobiektowy,
¤ Brakwskaźników,
¤ GarbageCollector,
¤ Dynamiczneładowanieklas(wlocie–„justintime”).
ŚrodowiskouruchomienioweprogramówwJavie–platformaJavy
MASZYNAWIRTUALNAJAVY(JVM):
Tłumaczykodpośredniaplikacji(Bytecode)nakodmaszynowy.
Cechy,możliwościjęzykaJAVA:
RodzajeprogramówpisanychwJavie:
¤ Aplety(dlaprzeglądarekWWW),dlakomórekMIDlety.
¤ Aplikacje(większeprogramy).
PROGRAM W JAVIE
MASZYNA WIRTUALNA JAVY
JAVA API
SYSTEM KOMPUTEROWY
Javajestidealnadotworzeniaaplikacjiinternetowychdzięki:
¤ Niezależnośćplatformowa,
¤ Bezpieczeństwo,
¤ MiędzynarodowyzestawznakówUNICODE.
Java–aplikacjenakomórki
NowakAgnieszka
Cyklżyciaapletu:
J2MEtoJ2EEdlaurządzeńprzenośnych...
Javapozwalaszybkotworzyćniezależneodplatformysystemowejoprogramowanie,
które dodatkowo jest łatwe w utrzymaniu (jako realizujące obiektowe podejście do
programowania).
Specyfikacja J2ME powstała w odpowiedzi na zapotrzebowanie ze strony urządzeń
elektronicznych.
Urządzeniate:
¤ potrzebują oprogramowania wysoce niezawodnego, a jednocześnie
niewymagającegodużejmocyobliczeniowejczydużejilościpamięci.
¤ Zasoby są tu mocno ograniczone, więc i funkcjonalność
oprogramowaniamusiałazostaćwyraźniezmniejszona.
Konfiguracjaiprofile...
Różne są rodzaje tych urządzeń w zależności od dostępnej pamięci, mocy
obliczeniowej, rodzaju wyświetlacza i sposobu wprowadzenia danych (klawiatura
telefonu,pełnaklawiatura,rysik).
J2MEjestwrzeczywistościzestawemspecyfikacji,zktórychkażdaprzeznaczonajest
dlagrupyurządzeńopodobnychmożliwościach.
KonfiguracjeJ2ME
OpracowywaniemspecyfikacjidlaJavyzajmujesięJCP(JavaCommunityProcess).
J2MEdefiniujedwiekonfiguracje:CDCorazCLDC.
CLDCcelujewrynektelefonówkomórkowychitzw.urządzeńPDA(PersonalData
Assistant),którychdostępnapamięćograniczasiędo512KB.
CDC z kolei wypełnia potrzeby urządzeń z ok. 2MB dostępnej pamięci i bardziej
wydajnymi procesorami. Specyfikacja tej konfiguracji będzie więc dużo bardziej
zbliżona do J2SE. Urządzenia implementujące profile oparte na tej konfiguracji to
przedewszystkimorganizery"zwyższejpółki".
KonfiguracjajestzkoleipodstawądotworzeniaProfili(ang.Profile).
Każdazw/wkonfiguracjiposiadaćbędziewłasneprofile.
Connected,LimitedDeviceConfigurationjestpodstawądladwóchprofili.Pierwszy
MID Profile został już opracowany i jest implementowany w przenośnych
urządzeniach. Planowany rozwój ma umożliwiać dostęp do kalendarza, książki
adresowejilistysprawdozrobienia,atakżeumożliwiaćdziałaniewsystemieplików
urządzenia,pozwalającaplikacjidziałaćnp.naplikachwymienialnychkartpamięci.
ObecnieurządzeniaPDAimplementująprofilMIDP.
Java–aplikacjenakomórki
NowakAgnieszka
MobileInformationDevices(MIDs):
MIDP2.0posiadapakiety:
java.lang
Java.util
javax.microedition.io
javax.microedition.lcdui
javax.microedition.lcdui.game
javax.microedition.media
javax.microedition.media.control
javax.microedition.midlet
javax.microedition.pki
javax.microedition.rms
javax.microedition.lcdui
Zawiera klasy pozwalające tworzyć interfejs użytkownika (GUI). Zawiera zarówno
klasę Display, będącą logiczną reprezentacją rzeczywistego ekranu, jak i całą
hierarchię klas dziedziczących z Displayable, a dzięki temu mogących być
wyświetlanyminaekranie.
javax.microedition.midlet
Zawieratylkodwieklasy:MIDletorazMIDletStateChangeException.Pierwszaklasa
definiujecyklżyciaMIDletu,igłównaklasakażdegoMIDletumusizniejdziedziczyć
definiując trzy metody wywoływane przy przejściach pomiędzy stanami życia
MIDletu.
javax.microedition.rms
Zawiera klasy pozwalające zarządzać pamięcią stałą telefonu. Tzw. Record Store
pozwalaprzechowywaćinformacjenawetjeśliMIDletjestwyłączony,tzn.pomiędzy
uruchomieniami.Informacjesąwpamięcistałejprzechowywanewpostacirekordów.
Maszynawirtualnawkomórce?
Każde urządzenie, na którym chcemy uruchomić aplikację Javy, musi mieć
zaimplementowaną odpowiednią maszynę wirtualną, zgodną ze specyfikacją
konfiguracji, którą implementuje + ewentualne rozszerzenia zgodne z profilem +
rozszerzeniadodawaneprzezproducentówurządzeń.
KonfiguracjaCLDCbardzoograniczafunkcjonalnośćswojejmaszynywirtualnej.Jest
tospowodowaneograniczeniaminałożonymiprzezurządzeniaprzenośne(małailość
pamięci,wolneprocesory).
Sunzaproponowałswojąimplementacjęmaszynywirtualnejopisanejwspecyfikacji
CLDC.NazywasięonaKVModKilobyteVirtualMachine.
KVMyinnychproducentów
Każdy producent przenośnych urządzeń implementuje swoją własną KVM. Jej
budowajestprzecieżzależnaodplatformysystemowejurządzenia.Producencidodają
równieżwłasnąfunkcjonalność,jaknp.kontrolęnadwibratoremczypodświetlaniem
ekranuwtelefonie,dostępdoczęściksiążkitelefonicznej,możliwośćwysyłaniaSMS
ówczynawetwykonaniatelefonu!
Java–aplikacjenakomórki
NowakAgnieszka
RóżnicezJVM
GłównecechyróżniącestandardowąmaszynęJavyodtejopisanejprzezCLDCijej
profile:
¤ Brak operacji na liczbach zmiennoprzecinkowych.
Jest to spowodowane tym, że procesory większości urządzeń tej klasy
nie realizują takich działań, a ich programowa emulacja jest zbyt
kosztowna.
¤ Brak pamięciożernych cech języka, bądź tych, które mogły zagrozić
ingerencją aplikacji w system plików urządzenia i dostępem do
poufnychinformacji.
¤ Inaczejwyglądatutajweryfikacjaklas.(Jestdwuetapowa):
¤ Pierwszym etapem jest "preweryfikacja" (ang. preverification).
Następuje ona zaraz po kompilacji kodu źródłowego i polega na
najbardziej pamięciożernej analizie kodu bajtowego (wcześniej
wykonywanej przy uruchomieniu). Etap ten wykonywany jest przed
instalacjąaplikacjiwurządzeniuprzenośnym.Jegowynikizapisywane
sąwplikach.class.
¤ Drugietapwykonywanyjestpodczasładowaniaklasy.KVMkorzystając
zinformacjizapisanychpodczas"preweryfikacji"orazwykonującszybki
przeglądbytecodusprawdza,czywszystkieregułyjęzykasąspełnione.
MinimalnewymaganiasprzętowestawianeprzezspecyfikacjęMIDP:
¤ PAMIĘĆ. MIDP wymaga 128KB dostępnej pamięci RAM dla samej
siebieorazconajmniej32KBpamięciprzeznaczonejnastertę(pamięć
przeznaczoną dla obiektów uruchamianej aplikacji). Dodatkowo
wymagane jest 8KB pamięci stałej dla przechowywania stałych
informacji (mowa tutaj o pamięci, w której MIDlety mogą zapisywać
informacje, które chcą przechować pomiędzy uruchomieniami tzw.
RecordStore),
¤ EKRAN. Wyświetlacz wbudowany w urządzenie powinien mieć
przynajmniej 96 pikseli szerokości i 54 wysokości. Każdy piksel
powinienbyćwprzybliżeniukwadratem.Jednocześnieekranpowinien
wyświetlaćconajmniejdwakolory,
¤ KLAWIATURA. Minimalne wymagania dot. urządzenia wejścia
mówią o klawiaturze pozwalającej wprowadzić cyfry od 0 do 9,
klawiszach sterowania i przycisku wyboru. Oczywiście producenci
urządzeń mogą emulować obecność tych przycisków. I tak częste jest
wykorzystywanie zwykłej klawiatury jako klawiszy sterowania (4 w
lewo,6wprawo,2dogóry,8wdół)wtelefonachkomórkowych.
¤ NETWORKING. MIDP wymaga od producentów implementacji
protokołuHTTP1.1.Mogątooniosiągnąćwróżnysposób,wzależności
od możliwości urządzenia poprzez bramę WAP (w telefonach
komórkowych) lub przez protokół TCP/IP (to w przypadku urządzeń
PDAzmodemem).
Java–aplikacjenakomórki
NowakAgnieszka
CyklżyciaMIDletu:
publicclassMyFirstMIDletextendsMIDlet
{
publicvoidstartApp()throwsMIDletStateChangeException{}
publicvoidpauseApp(){}
publicvoiddestroyApp(booleanunconditional){}
/**Opcjonalnykonstruktor:*/
publicMyFirstMIDlet(){}
}
Stany,wktórychmożeznajdowaćsięMIDletorazdozwoloneprzejściapomiędzynimi
przedstawiaponiższyschemat:
KlasaDisplay
ObiektklasyDisplayjestlogicznąreprezentacjąekranu.KażdyuruchomionyMIDlet
ma dedykowany dokładnie jeden taki obiekt i może pozyskać referencję do niego
poprzezwywołaniemetody:
publicstaticDisplaygetDisplay(MIDletmidlet)
Odpowiednio spreparowany wygląd ekranu wyświetlamy za pomocą metody klasy
Display:
publicvoidsetCurrent(Displayabledisplayable)
KlasaDisplay
PobieramynatomiastaktualniewyświetlanyDisplayablemetodą:
publicDisplayablegetCurrent()
[ Pobierz całość w formacie PDF ]