Download - Programim Mobile Leksion 4Programimi Mobile nº Java Œmobile.geo.edu.al/wp-content/uploads/...Java.docx.pdf · Hyrje nº familjen Java Teknologjia Java ºshtº njº mjedis objekt

Transcript
Page 1: Programim Mobile Leksion 4Programimi Mobile nº Java Œmobile.geo.edu.al/wp-content/uploads/...Java.docx.pdf · Hyrje nº familjen Java Teknologjia Java ºshtº njº mjedis objekt

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.

Page 2: Programim Mobile Leksion 4Programimi Mobile nº Java Œmobile.geo.edu.al/wp-content/uploads/...Java.docx.pdf · Hyrje nº familjen Java Teknologjia Java ºshtº njº mjedis objekt

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ë

Page 3: Programim Mobile Leksion 4Programimi Mobile nº Java Œmobile.geo.edu.al/wp-content/uploads/...Java.docx.pdf · Hyrje nº familjen Java Teknologjia Java ºshtº njº mjedis objekt

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ë

Page 4: Programim Mobile Leksion 4Programimi Mobile nº Java Œmobile.geo.edu.al/wp-content/uploads/...Java.docx.pdf · Hyrje nº familjen Java Teknologjia Java ºshtº njº mjedis objekt

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. 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.

Emri Përshkrimi PDA Optional Package

Është dizenjuar për pajiset PDA dhe produktet PALM. Këtyre pajisjeve iu shton API si PIM (Personal Information Managers.)

Mobile Media API

Suporton kontrolle për audio/video streaming. Përdorimi i saj varet nga aftësitë e pajisjes prandaj është shumë e rëndësishme që një aplikacion që përdor këtë API të kontrollojë fillimisht aftësitë multimediale të pajisjes. Përveçse është fleksible është edhe e zgjerueshme, p.sh është e mundur që të shtohen protokolle të rinj streaming audio/video që nuk janë të përfshirë në pajisje.

Wireless Messaging API

Suporton dërgimin e mesazheve wireless, përfshirë edhe mesazhet SMS. Janë të vlefshëm dy versione sot për sot: WMA 1.0 dhe WMA 2.0. Versioni i fundit përfshin edhe aftësi për MMS. Kjo API bazohet në GCF. Është e përgjithshme dhe mund të zgjerohet nga prodhuesit e pajisjeve. Këta zgjerime quhen specifikime përshtatës dhe njihen tre të tëllë: GSM SMS Adapter, GSM Cell Broadcast Adapter dhe CDMA IS-637 SMS Adapter.

Location API Suporton gjurmimin e vendndodhjes së pajisjeve Wireless. J2ME Web Suporton shërbimet Web që lidhen me procesimin e XML.

Page 5: Programim Mobile Leksion 4Programimi Mobile nº Java Œmobile.geo.edu.al/wp-content/uploads/...Java.docx.pdf · Hyrje nº familjen Java Teknologjia Java ºshtº njº mjedis objekt

Programim Mobile Leksion 4 � Programimi Mobile në Java

5

Services API Bluetooth API

Suporton komunikimin me protokollin Bluetooth.

Security and Trust API

I lejon një telefoni Java që të ndërveprojë me kartën e tij smart të sigurisë.

Mobile 3D Graphics API

Suporton grafikat 3D.

SIP API for J2ME

Ofron suport për protokollin SIP (Session Initiation Protocol) i cili përdoret përgjithësisht për multimedia dhe aplikacionet VoIP.

Tabelë 2 - Paketa opsionale për MIDP

3. Pajisjet më shumë të afta: Konfigurimi CDC

CDC është i ngjashëm me CLDC por më i fuqishëm. Ka suport të plotë për gjuhën Java dhe për JVM. CDC përfshin

më shumë API nga J2SE se sa CLDC. Në fakt CDC është plotësisht i përshtatshëm me CLDC. Nëse multi platforma

është shumë e rëndësishme për aplikacionin duhet që niveli i prezantimit të jetë i ndarë nga niveli i kontrollit,

komunikimit, dhe niveli i aksesimit të të dhënave. Duke ndryshuar vetëm nivelin e prezantimit (ose të UI) është

shumë më e lehtë të ndërtohen aplikacione me platformë të kryqëzuar; gjithsesi testimi është faktor çelës për

suksesin e këtyre aplikimeve.

Profili Bazë (Foundation Profile)

Ky profil shton API për komunikim, siguri, kompresim, kohëshënues, dhe menaxhim ngjarjesh. Ky profil nuk ka API

për krijimin e GUI.

Profili Bazë Personal(Personal Basic Profile)

Ky profil ka API për suport bazë grafik dhe për JavaBean. Suporti grafik trashëgohet nga J2SE 1.4 dhe rrjedhimisht

aplikacionet e shkruar për PBP v1.0 mund të ekzekutohen fare mirë edhe në J2SE.

Profili Personal

PP është i vendosur mbi Profilin Bazë. Ndryshimi midis PBP dhe PP është fakti që në Profilin Personal ka më shumë

komponente heavyweight.

4. 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ën 4.

Figurë 4 - GCF

Page 6: Programim Mobile Leksion 4Programimi Mobile nº Java Œmobile.geo.edu.al/wp-content/uploads/...Java.docx.pdf · Hyrje nº familjen Java Teknologjia Java ºshtº njº mjedis objekt

Programim Mobile Leksion 4 � Programimi Mobile në Java

6

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. Pika

hyrëse e aplikacioneve për në GCF është ndërfaqja Connector e cila gjendet në paketën

javax.microedition.io package. Në fakt objektet që krijohen me GCF implementojnë ndërfaqen

Connector ose ndonjë prej klasave të tjera që trashëgojnë prej saj. Ndërfaqja ka disa metoda për hapjen e

lidhjeve. Për të hapur një lidhje formati është si më poshtë: Connector.open( �< protocol >:<address >;<parameters>� ) ; 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:+47−555−1234567; postd = [email protected]; user=phone�);

5. Teknologjia e standardizimit në Java

E gjithë teknologjia Java që kemi diskutuar deri tani dhe që do diskutojmë më vonë kalon përmes procesit JCP (Java

Community Process). Ky proces lindi në 1998 si një proces i hapur për pjesëmarrje me anë të të cilit pritej të

zhvillohej dhe të rishikohej teknologjia Java. 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ë. Gjatë përdorimit të RI duhet të merret në konsideratë që ai nuk është i optimizuar nga pikëpamja e

performancës nëse nuk ka kaluar testet TCK dhe në se është kështu mund të përdoret si prototip vetëm për të

mësuar teknologjinë.

Një tip i veçantë i specifikimeve JSR janë të ashtuquajturit specifikime roadmap. Këta specifikime përbëhen nga

disa JSR por kanë edhe specifikime të tjerë shtesë. Të tillë janë JTWI(Java Technology for Wireless Industry) dhe

Mobile Service Architecture.

JTWI(Java Technology for Wireless Industry)

Figura 5 tregon se cilat JSR përfshihen në JTWI. Përveç faktit që JTWI përfshin këto teknologji, në këtë specifikim

roadmap sqarohen kërkesa mbi cilësitë e specifikimeve. Të tilla janë p.sh numri minimum i thredeve dhe

kohëshënuesve, kodimi i karaktereve, emrat e brezave kohorë, përshtatësit për mesazhet (për WMA), tipet e

protokolleve MMAPI.

Page 7: Programim Mobile Leksion 4Programimi Mobile nº Java Œmobile.geo.edu.al/wp-content/uploads/...Java.docx.pdf · Hyrje nº familjen Java Teknologjia Java ºshtº njº mjedis objekt

Programim Mobile Leksion 4 � Programimi Mobile në Java

7

Figurë 5 - Teknologjitë Java të përfshira në JTWI

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ë.

Figurë 6 - (a) MSA Subset (b) MSA

Page 8: Programim Mobile Leksion 4Programimi Mobile nº Java Œmobile.geo.edu.al/wp-content/uploads/...Java.docx.pdf · Hyrje nº familjen Java Teknologjia Java ºshtº njº mjedis objekt

Programim Mobile Leksion 4 � Programimi Mobile në Java

8

6. Mjedisi zhvillues

IDE-të më të njohura për zhvillimin e aplikacioneve në J2ME janë Eclipse, Carbide.j, dhe NetBeans. Këto IDE ofrojnë

një mjedis të mirë për të shkruar, testuar dhe për të gjetur gabimet e një aplikacioni mobile duke përdorur një

emulgator para se programi të instalohet në një pajisje të vërtetë. 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

Një pjesë e mirë e librarive vijnë si pjesë e platformës që përdor programuesi. Ndërkohë mund të shtohen edhe

librari të tjera shtesë me anë të Library Manager i cili gjendet në menunë Tools të NetBeans. Për të shtuar një

librari klikoni butonin New Library, caktoni një emër për librarinë dhe klikoni Ok. Më tej shtoni informacionin për

librarinë e re: informacionin classpath, informacionin për kodin burim, dhe informacionin java doc.

Figurë 7 - Shtimi i një librarie të re në NetBeans

Shtimi i librarive me anë të Library Manager është gjithmonë i nevojshëm kur duhet të përdoret një API ose librari

që nuk gjendet në platformën bazë.

Page 9: Programim Mobile Leksion 4Programimi Mobile nº Java Œmobile.geo.edu.al/wp-content/uploads/...Java.docx.pdf · Hyrje nº familjen Java Teknologjia Java ºshtº njº mjedis objekt

Programim Mobile

9

7. Shembull: Krijimi i një aplikacioni MIDlet

Figurë

Figurë

Dy hapat e tjerë kanë të bëjnë me konfigurimin e pajisjes emulator për sa i përket tipit dhe pamjes së saj.

Leksion 4 � Programimi Mobile ne Java e n

Shembull: Krijimi i një aplikacioni MIDlet

Figurë 8 - Krijimi i një aplikacioni mobile MIDlet Hapi 1

Figurë 9 - Krijimi i një aplikacioni mobile MIDlet Hapi 2

Dy hapat e tjerë kanë të bëjnë me konfigurimin e pajisjes emulator për sa i përket tipit dhe pamjes së saj.

Programimi Mobile në Java

Dy hapat e tjerë kanë të bëjnë me konfigurimin e pajisjes emulator për sa i përket tipit dhe pamjes së saj.

Page 10: Programim Mobile Leksion 4Programimi Mobile nº Java Œmobile.geo.edu.al/wp-content/uploads/...Java.docx.pdf · Hyrje nº familjen Java Teknologjia Java ºshtº njº mjedis objekt

Programim Mobile Leksion 4 � Programimi Mobile në Java

10

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( ); } }

Pasi shkruhet kodi në MIDlet fillimisht projekti kompilohet (Run - > Build Main Project) dhe më pas ekzekutohet

(Run - > Run Main Project).

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.

8. Shembull: Krijimi i aplikacioneve CDC

Për krijimin e një aplikacioni CDC duhet që ndër opsionet për krijimin e aplikacioneve të zgjidhet CDC Application. Paraprakisht duhet të jetë instaluar një platformë e përshtatshme CDC në IDE siç është p.sh �Sun Java Toolkit 1.0 for Connected Device Configuration�. Në varësi të platformës së zgjedhur mund të kërkohen informacione

Page 11: Programim Mobile Leksion 4Programimi Mobile nº Java Œmobile.geo.edu.al/wp-content/uploads/...Java.docx.pdf · Hyrje nº familjen Java Teknologjia Java ºshtº njº mjedis objekt

Programim Mobile Leksion 4 � Programimi Mobile në Java

11

konfigurimi të ndryshëm për projektin, por emri i projektit dhe klasa e tij main duhet të konfigurohen pavarësisht nga platforma e zgjedhur. Klasa Main është klasa ku do të fillojë ekzekutimi i programit. Klasa Main që gjenerohet nga Netbeans është një frame AWT (trashëgon nga java.awt.Frame). Njësoj si në aplikacionet jo mobile për një frame AWT ekzistojnë dy opsione vizualizimi: Source dhe Design. Në pamjen Desing është e mundur që të vendosen komponente njësoj si në aplikacionet AWT për desktop. Më poshtë tregohet kodi burim për një aplikacion të thjeshtë CDC: public class HelloWorld extends java.awt.Frame {

public HelloWorld(){ initComponents();

} private void initComponents ( ){

label1 = new java.awt.Label(); addWindowListener (new java.awt.event.WindowAdapter(){

public void windowClosing(java.awt.event.WindowEvent evt){ exitForm(evt);

} }); label1.setAlignment(java.awt.Label.CENTER); label1.setText(�HelloWorld�); add(label1, java.awt.BorderLayout.CENTER); pack();

} private void exitForm(java.awt.event.WindowEvent evt){

System.exit(0); }

public static void main(String args[]){ java.awt.EventQueue.invokeLater(new Runnable(){

public void run(){ new HelloWorld().setVisible(true);

} }) ;

} private java.awt.Label label1;

} 9. Shembuj aplikacionesh të tjerë

9.1. Wireless Messaging API: Dërgimi i SMS

WMA Api bazohet në GCF dhe shërben për të dërguar mesazhe tekst dhe binarë. Më poshtë tregohet kodi i një

aplikacioni të thjeshtë që dërgon SMS. Përbëhet vetën nga një skedar i cili ka MIDlet-in përgjegjës për dërgimin e

të dhënave. import javax.microedition.midlet.∗; import javax.microedition.io.∗; import javax.wireless.messaging.∗; public class SMS extends MIDlet {

String text=�SMS exampple test�; String address=�sms://+123456789�; MessageConnection clientConn; public void startApp ( ){

try{ clientConn =(MessageConnection)Connector.open(address); TextMessage Tmsg = (TextMessage)clientConn.newMessage(MessageConnection.TEXT MESSAGE); Tmsg.setPayloadText(text); clientConn.send(Tmsg);

Page 12: Programim Mobile Leksion 4Programimi Mobile nº Java Œmobile.geo.edu.al/wp-content/uploads/...Java.docx.pdf · Hyrje nº familjen Java Teknologjia Java ºshtº njº mjedis objekt

Programim Mobile Leksion 4 � Programimi Mobile në Java

12

} catch(Exception EX){

System.out.println(�Error : �+EX); }

} public void pauseApp(){} public void destroyApp(boolean unconditional){}

} Përveç numrit të telefonit është e mundur të specifikohet edhe porta sipas formatit: �sms://�+�address�+�:�+ �port� 9.2. Mobile Multimedia API: Audio Player

Në këtë shembull ilustrohet përdorimi i MMAPI. Tregon se si mund të krijohet një audio player i thjeshtë duke përdorur një skedar mp3. Por telefonat celularë mund të suportojnë edhe formate të tjerë audio si au, tone, wave etj. import java.io.InputStream; import javax.microedition.midlet.*; import javax.microedition.lcdui.*; import javax.microedition.media.*; import java.io.IOException; public class AudioPlayer extends MIDlet{ public void startApp(){ Player p ; InputStream resource; try{ resource = getClass().getResourceAsStream("/files/3b.mp3"); p = Manager.createPlayer(resource,"audio/mpeg"); p.start(); } catch(IOException ioe) { System.out.println("error:"+ioe); } catch(MediaException EX) { System.out.println("error:"+EX); } } public void pauseApp() {} public void destroyApp ( boolean unconditional ) { } }