J2ME - Programim Mobile

Download Report

Transcript J2ME - Programim Mobile

Programim Mobile
Leksion 4
Tema: Programimi Mobile
në Java
Në këtë leksion....
Familja Java dhe J2ME
 Konfigurimet CLDC dhe CDC, Paketat
Opsionale
 Krijimi i aplikacioneve MIDP dhe CDC
 Shembuj aplikacionesh

Hyrje në familjen Java




J2EE kryesisht shërben për ndërtimin e aplikacioneve
enterprise që e vënë theksin në zhvillimin e
aplikacioneve server-side dhe për web.
J2SE është e destinuar për ndërtimin e aplikacioneve
konvencionalë për kompjuterat desktop.
J2ME është nëngrup i J2SE që shërben për zhvillimin e
programeve për pajisjet e ndërfutura që nuk mund të
suportojnë implementim të plotë të J2SE.
Java Card ofron një mjedis për zhvillimin e
aplikacioneve që ekzekutohen në karta smart.
Për shembull do të ishte jo efiçente që në një makinë desktop të
përdorej J2EE e cila përfshin paketa për aplikacione enterprise.
Gjithashtu implementimi i plotë i J2SE nuk mund të suportohet nga
pajisjet e vogla që kanë më pak burime se një makinë desktop.
Platforma J2ME



J2ME është pjesë e familjes Java e ndërtuar me qëllim
që të shërbejë për ndërtimin e aplikacioneve që
ekzekutohen në mjedise që punojnë me bateri dhe jo me
energji elektrike.
Pajisjet me aftësi të ngjashme grupohen në konfigurime
dhe brenda secilit konfigurim krijohen profile për të
klasifikuar më tej llojin e pajisjes.
J2ME nuk është gjuhë e re por është një version i
përshtatur i Java për pajisjet e vogla duke hequr nga
J2SE ato pjesë që nuk mund të suportohen. Megjithatë
platforma J2ME mund të ekzekutohet në një larmi
pajisjesh si TV, PDA, libra elektronikë, telefona etj.
Për momentin në platformën
J2ME ekzistojnë dy konfigurime:

CLDC(Connected Limited Device Configuration), për
pajisje me






Ndërfaqe përdoruesi shumë të thjeshtë
Kujtesë të vogël (160Kb deri në 512 Kb)
Komunikim wireless
Procesor 16 ose 32 bit
Energji e kufizuar, zakonisht me bateri
Shembuj: telefonat celularë, librat elektronikë, PDA të
thjeshta etj. Këtyre pajisjeve do i referohemi si pajisje më
pak të afta.
CDC(Connected Device
Configuration), për pajisje me
 Ndërfaqe
përdoruesi më të
larmishme
 Kujtesë nga 2 – 16 M.
 Lidhje me disa tipe rrjetash.
 Procesorë 16 ose 32 bit.
 Shembuj: Tv, PDA etj.

Këtyre pajisjeve do i
referohemi si pajisje më
shumë të afta.
Pajisjet më pak të afta:
Konfigurimi CLDC




Për momentin ekzistojnë dy versione CLDC:
CLDC 1.0 i cili është lëshimi i parë i specifikimit CLDC.
CLDC 1.1 i cili është version i përmirësuar i 1.0.
CLDC ofron një mjedis ekzekutimi Java (JRE) bazë, por
grupi i klasave bazë zakonisht është i vogël dhe ka
nevojë që të përmirësohet nga klasa shtesë. Në fakt
CLDC nuk ka ndonjë API të integruar për menaxhimin e
ndërfaqes me përdoruesin, nuk implementon ndonjë
model I/O dhe ka mangësi në arritjen e sigurisë.
MIDP (Mobile Information
Device Profile)



Profili MIDP i shtohet konfigurimit CLDC për të mbushur
funksionalitetet që mungojnë. MIDP në fakt është një
grup API-sh dhe librarish që ofrojnë funksionalitete si
ndërfaqe përdoruesi, lidhje në rrjet, ruajtje të dhënash
etj. Aktualisht ekzistojnë dy versione MIDP të cilët
implementohen në pajisje reale:
MIDP 1.0 është lëshimi i parë i profilit dhe përfshin
ndërfaqe përdoruesi (nivel jo i avancuar) e siguri në rrjet.
MIDP 2.0 ka përshtatshmëri kthimi me MIDP 1.0 dhe ka
funksione shtesë si ndërfaqe më të avancuar.
Multimedia, lojëra etj.




Aktualisht është specifikuar edhe gjenerata e tretë e
MIDP me emrin JSR271.
Ky specifikim bazohet në MIDP 2.0 dhe ka
përshtatshmëri kthimi me të. Një aplikacion që zhvillohet
sipas profilit MIDP quhet MIDlet.
Këto lloj aplikacionesh nuk përdorin një metodë statike
main për pikë hyrëse sikurse ndodh në aplikacionet
tradicionalë desktop.
Pika hyrëse e një aplikacioni MIDlet është një klasë që
trashëgon nga java.microedition.midlet.MIDlet. Klasa
MIDlet ka të përcaktuara disa metoda abstrakte që
thirren kur gjendja e MIDlet-it ndryshon.
Metoda
Përshkrimi
startApp()
Thirret nga AMS kur MIDlet fillon të ekzekutohet nga e para ose kur rimëkëmbet nga
një gjendje e pezulluar.
destroyApp()
Thirret nga AMS kur MIDlet përfundon.
pauseApp()
Thirret nga AMS kur MIDlet pezullohet
notifyDestroyed()
Thirret nga MIDlet. I kërkon AMS që ta shkatërrojë vetë MIDlet-in.
notifyPaused()
Thirret nga MIDlet. I kërkon AMS që ta pezullojë vetë MIDlet-in.
resumeRequest()
Thirret nga MIDlet-i i pezulluar(p.sh nga një thred në background). I tregon AMS se
MIDlet-i do të dalë nga gjendja e pezulluar dhe të bëhet sërish aktiv.
Tabelë 1- Metodat e ciklit jetësor të MIDlet
Një ose më shumë MIDlet-e së bashku me të gjithë skedarët dhe klasat
e tjera që i duhen aplikacionit paketohen në një suitë MIDlet. Një suitë
MIDlet përbëhet nga një skedar JAR dhe një skedar JAD. Skedari JAR
është skedari që duhet të dërgohet në telefon për të instaluar
aplikacionin. CDC është plotësisht i përshtatshëm me CLDC.
Suporti për rrjetat

J2ME ofron ndërfaqe rrjeti
për zhvillimin e aplikacioneve
wireless dhe shfrytëzon
aftësitë e këtyre pajisjeve për
tu lidhur në rrjet sipas
teknologjive të ndryshme të
rrjetit wireless. Suporti për
lidhjen e pajisjeve në rrjet
kryhet nga GCF hierarkia e
së cilës tregohet në Figurë

Qëllimi kryesor i GCF është që të përcaktojë një
arkitekturë rrjeti sa më të përgjithshme dhe të lejojë
akses për tiparet që lidhen me protokollet. GCF i ofron
përdoruesit një grup të vetëm abstragimesh për të
menaxhuar disa protokolle. GCF përdoret edhe nga
CLDC edhe nga CDC por ka disa ndryshime në
protokollet që suportojnë. Disa nga llojet e lidhjeve që
mund të krijohen janë HttpConnection,
UDPDatagramConnection, SipConnection.




Protocol:Protokolli që do të përdoret për lidhjen. Protokolli përdoret
nga GCF për të gjetur klasën e saktë që do të përdoret.
Address:Adresa në rrjet e pikës fundore të lidhjes. Klasat
Connection që suportojnë funksionalitete server të lejojnë të
specifikosh vetëm portën e lidhjes, p.sh socket://:80 krijon një lidhje
socket në server në portën 80 të localhost.
Parameters:Në lidhje mund të përcaktohen në mënyrë opsionale
disa parametra ekstra. P.sh lidhja SipConnection të lejon të shtosh
parametra transporti. Parametrat gjithmonë specifikohen si listë me
çifte name = value të cilët ndahen nga njëri-tjetri me pikëpresje.
P.sh:
SipConnection sc = ( SipConnection )Connector.open
(“sip:+475551234567; postd = [email protected]; user=phone“);
Teknologjia e standardizimit
në Java




E gjithë teknologjia Java kalon përmes procesit JCP
(Java Community Process.Procesi mbikëqyret nga
EC(Executive Committee). Ekzistojnë dy komitete
ekzekutive: një për J2SE dhe J2EE, dhe një për
J2ME. Është detyrë e EC që të mbledhë, zhvillojë
dhe të aprovojë JSR(Java Specification Request).
Rezultati i këtij procesi përbëhet nga tre artefakte:
Specifikimi: Është API përfundimtare, përmban
klasat dhe manualin që i shpjegon përdoruesit se si
ta përdorë këtë teknologji.
TCK(Test Compatibility Kit): Përfshin testet që
duhet të kalojë një specifikimin.
RI(Reference Implementation): Është implementim
i specifikimit i cili i lejon përdoruesit që të fillojnë të
punojnë me të.
Mobile Service Architecture

MSA u finalizua në Dhjetor
2006 si zhvillim i JTWI. Në këtë
specifikim janë shtuar shumë
më tepër paketa opsionale, siç
tregohet në Figurën 6. Përveç
MSA dhe MSA Subset ekziston
gjithashtu MSA Advanced
Specifikation. Si konfigurim për
MSA mund të përdoret edhe
CDC. Pajisjet mobile mund të
suportojnë të gjithë MSA ose
vetëm një pjesë të teknologjive
të përfshira në të.
.





Mjedisi zhvillues
Për të programuar në NetBeans me J2ME është e nevojshme që
paraprakisht në kompjuter të jenë të instaluar:
Java SE Development Kit (JDK) 5.0.6 e tutje.
NetBeans IDE
NetBeans Mobility Pack për CLDC dhe/ose CDC.
Paketat duhet të instalohen sipas radhës së mësipërme. Gjithashtu
ekziston një opsion për shkarkimin e NetBeans IDE së bashku me
JDK-në.
Shtimi i një librarie të re në
Netbeans
Shembull: Krijimi i një
aplikacioni MIDlet
Dy hapat e tjerë kanë të bëjnë me konffigurimin e pajisjes emulator për
sa i përket tipit dhe pam jes së saj. Më pas paketën <default package>
të projektit mund të shtohen MIDlet-e. Më poshtë tregohet kodi burim i
një MIDlet-i të thjeshtë dhe pamja se si duket në emulator.
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
public class HelloWorld extends MIDlet {
Display display ;
Form form ;
public void startApp() {
display = Display.getDisplay(this); form =
new Form("Helloworld example");
form.append("Hello World!");
display.setCurrent(form);
}
public void pauseApp() {}
public void destroyApp(boolean
unconditional) { notifyDestroyed( );
}}
Hedhja e MIDlet-it në telefon

Pasi projekti kompilohet, NetBeans krijon Suitën MIDlet
për projektin e cila gjendet në folderin HelloWorld/dist.
Në polder gjenden dy skedarë HelloWorld.jad dhe
Helloworld.jar. Skedari i dytë është arkivi që ka të gjithë
skedarët që i duhen aplikacionit që të punojë.
Rrjedhimisht për të instaluar MIDlet-in në telefon ky arkiv
duhet të transferohet fillimisht në telefon. Në disa raste
të veçantë duhet të transferohet edhe skedari .jad. Pasi
dërgohet skedari në telefon, fillohet instalimi duke hapur
këtë skedar.