Programim Mobile Leksion 4Programimi Mobile nº Java Œ · PDF file Hyrje nº...
date post
02-Feb-2020Category
Documents
view
11download
0
Embed Size (px)
Transcript of Programim Mobile Leksion 4Programimi Mobile nº Java Œ · PDF file Hyrje nº...
Programim Mobile Leksion 4 Programimi Mobile në Java
1
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
Teknologjia Java është një mjedis objekt i orientuar, i krijuar nga Sun Microsystems. Qëllimi kryesor i saj ishte që të
krijonte aplikacione të pavarur nga platformat sipas sloganit shkruaj një herë, ekzekuto kudo. Sot Java është një
ndër mjediset më popullorë të zhvillimit të softuerëve. Ajo lejon krijimin e aplikacioneve enterprise për servera,
kompjutera personalë si edhe për pajisjet e vogla të lëvizshme. Për tu familjarizuar me teknologjine J2ME për
zhvillimin e aplikacioneve mobile le të shohim fillimisht familjen Java në përgjithësi. Siç tregohet në Figurën 1 Java
ndahet në katër edicione:
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.
Kjo ndarje është bërë për të ofruar zgjidhje për nevoja dhe rrethana të ndryshme. 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.
Figurë 1- Arkitektura e familjes Java
1. 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 si p.sh telefonat celularë, PDA dhe
pajisje të tjera të ndërfutura. Duke qenë se këto pajisje kanë aftësi të ndryshme për sa i përket kujtesës, kohës së
procesimit, harduerit dhe ekranit ato janë ndarë në grupe në varësi të qëllimit dhe të funksionaliteteve të tyre.
Programim Mobile Leksion 4 Programimi Mobile në Java
2
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.
Në Figurën 2 tregohet lidhja midis këtyre dy konfigurimeve me J2SE:
Figurë 2 - Trashëgimia e J2ME
Funksionalitetet kryesorë të CDC dhe CLDC trashëgohen nga J2SE. Për më tepër të gjithë tiparet e implementuar në
CLDC janë të implementuar edhe në CDC në mënyrë që të ketë përshtatshmëri kthimi midis dy konfigurimeve.
Platforma J2ME ekzekutohet mbi sistemin e shfrytëzimit të telefonave celularë dhe përbëhet nga dy versione të
ndryshëm: një për pajisjet më shumë të afta dhe një për pajisjet më pak të afta siç tregohet në Figurën 3.
Secili prej versioneve përfshin:
Konfigurimin: Konfigurimi është grupi i librarive bazë me klasa dhe makina virtuale (VM) e cila interpreton dhe
ekzekuton aplikacionet. Makina Virtuale mund të jetë JVM e plotë ose një nëngrup i saj. Për CLDC dhe CDC libraritë
me klasa janë një nëngrup i J2SE API të cilit i shtohen edhe disa API të tjera specifike për J2ME si p.sh GCF.
Profilet: Profilet plotësojnë konfigurimet me API të një niveli të lartë të cilat janë më specifike për një grup të
caktuar pajisjesh. Një API e një profili zakonisht përbëhet nga funksione për zhvillimin e aplikacionit, ndërfaqes së
përdoruesit, për kujtesën ose për suport në rrjet. Vini re që profilet mund të ndërtohen sipër njëri tjetrit.
Konfigurimi së bashku me një ose më shumë profile krijon një mjedis ekzekutimi të kompletuar J2ME.
Paketat Opsionale: Me anë të paketave opsionale mjedisi i ekzekutimit zgjerohet me API që shërbejnë për
funksionalitete specifikë si p.sh lidhja me bazat e të dhënave, metodat e komunikimit, grafikë etj. Një paketë
Programim Mobile Leksion 4 Programimi Mobile në Java
3
opsionale mund të jetë e pavarur nga konfigurimi (d.m.th suportohet edhe nga CLDC edhe nga CDC) ose mund të
jetë e dedikuar vetëm për një konfigurim specifik.
Shembuj paketash opsionale:
CDLC PDA, Mobile Media, Mesazhe Wireless, Mobile 3D, Vendndodhje, Bluetooth, Shërbime Web.
CDC RMI, JDBC, Grafikë e avancuar Swing dhe Java 2D.
Fatkeqësisht paketat opsionale mund ta bëjnë të vështirë zhvillimin e aplikacioneve sepse mund të ndodhë që të
duhet një listë e gjatë paketash opsionale për të suportuar plotësisht programin.
Figurë 3 - Platforma J2ME 2. 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ë. Për më tepër nuk
përcakton se si menaxhohen aplikacionet gjatë ciklit të tyre jetësor (Me cikël jetësor në këtë kontekst nuk i
referohemi procesit të ndërtimit të programit por procesit të ekzekutimit të tij deri në mbyllje) Për këtë arsye CLDC
zakonisht shoqërohet me profilet përkatës siç është për shembull MIDP (Mobile Information Device Profile).
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) dhe 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ë
Programim Mobile Leksion 4 Programimi Mobile në Java
4
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. Për shembull kur nis një MIDlet thirret metoda startApp e tij. Më vonë do të tregojmë edhe një shembull kodi burim të një MIDleti-i.
Aplikacionet MIDP në pajisje menaxhohen nga AMS (Application Management Software). AMS mund të nisë, të
pezullojë ose të përfundojë një aplikacion duke thirrur metodat e ciklit jetësor të klasës së tij main. MIDlet
gjithashtu mund të njoftojë AMS nëse gjendja e tij ndryshon. Metodat e ciklit jetësor të një aplikacioni MIDlet
tregohen në Tabelën 1. Secila prej këtyre metodave mund të riimplementohet për të specifikuar më tej sjelljen e
tyre.
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. notifyPau