Uvod
1.KORAK
Da bi mogli razvijati programe za CLDC konfiguraciju potrebni su nam neki
alati te alate je moguce skinuti sa adrese URL: http://java.sun.com/products/j2mewtoolkit.
Na toj adresi naci cete alate i za Windows ali i za Linux platformu, kada
te alate skinete s interneta potrebno ih je instalirati u neki direktorij
recimo C:\j2mewtk.ako vas nakon instalacije pitaju da li zelite pokrenuti
ktoolbar aplikaciju odbijte to, nakon sto je JDK instaliran potrebno je
napraviti jos nekoliko dodatnih koraka , prvo je potrebno namjestiti path
da pokazuje na alate iz naseg JDK-a to se na Windowsima radi s naredbom
SET PATH=%PATH%;C:\j2mewtk\bin
a na Linux platformi
export PATH=$PATH:install_directory/j2mewtk/bin
ako to ne zelite stalno raditi potrebno je te naredbe ododati u vas AUTOEXEC.BAT
file, kada to napravite da bi testirali dali ste to napravili ispravno
utipkajte na komandni redak preverify
C:\> preverify
Usage: PREVERIFY.EXE [options] classnames|dirnames ...
where options include:
-classpath <directories separated by ';'>
Directories in which to look for classes
-d <directory> Directory in which output is written
@<filename> Read c
U ovom trenutku bih vam zelio skrenuti pozornost na jednu jako vaznu stvar
naime iako svaka platforma ima svoju VM masinu tj. J2ME ima svoju a J2SE
ima svoju i jedna i druga platforma koriste isti kompajler tj. koriste
javac pa da bi mogli svoje programe kompajlirat morate imati instalirano
na svojem racunali i standard edition Jave postupak je jednostavan a i
ti alati se mogu naci na Sun-ovoj stranici ako ih vec nemate instalirane.
Da bi mogli kompajlirati svjoje midlete sa komandne linije potrebno je
utipkati sljedece naredbe za Windowse:
SET J2MEWTK_HOME=C:\j2mewtk
SET MIDPAPI=%J2MEWTK_HOME%\lib\midpapi.zip
SET J2MECLASSPATH=%J2MEWTK_HOME%\wtklib\kenv.zip;
%J2MEWTK_HOME%\wtklib\kvem.jar;%J2MEWTK_HOME%\wtklib\lime.jar
ili
export J2MEWTK_HOME=/home/qmahmoud/j2mewtk
export MIDPAPI=$J2MEWTK_HOME/lib/midpapi.zip
export J2MECLASSPATH=$J2MEWTK_HOME/wtklib/kenv.zip:
$J2MEWTK_HOME/wtklib/kvem.jar:$J2MEWTK_HOME/wtklib/lime.jar
za Linux.
2. KORAK
Sada kada smo sve pripremili za ravoj midleta mozemo prijec na sam kod,
kako je ovo zamisljeno kao uvodni tutorial u podrucje programiranje midleta
primjer ce biti jako jednostavan i osoba koja ima imalo iskustva sa Javom
cak i ljudi koji nisu nikad programirali u Javi bi trebali jako brzo svatit
bit i osnovu rada midleta
Primjer. "Hello World"
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class HelloMidlet extends MIDlet {
// The display for this MIDlet
private Display display;
// TextBox to display text
TextBox box = null;
public HelloMidlet( ) {
}
public void startApp( ) {
display = Display.getDisplay(this);
box = new TextBox("Simple Example", "Hello World",
20, 0);
display.setCurrent(box);
}
public void pauseApp( ) {
}
public void destroyApp(boolean unconditional) {
}
}
Bit ovog malog programicica je u tome da klasa HelloMidlet nasljeduje
klasu MIDlet i na taj nacina poprima njena svojstva te od nje nasljeduje
ove tri funkcije koje koristi kako ovdje nema main funkcije oslanjamo
se na to da ce sama VM pozivati pojedine funkcije kada ih bude trebala.
3 KORAK
Sada kada smo podesili razvojne programe i napisali kod za svoju aplikaciju
vrijeme je da ju iskompajliramo iako je u Second Editionu to jako jednostavno
i ovdje ce to nakon kratkog objasnjenja postati jednostavno.Prije svega
potrebno je stvoriti jedan direktoriji
U nasem tutorialu to ce biti tmpclasses nakon toga sacuvajte svoj kod
u dokumentu s imenom HelloMidlet.java naime ime dokumenta mora biti isto
i kao ime jedine javne klase u dokumentu u nasem slucaju to je HelloMidlet
nastavak .java znaci da je to dokument koji sadrzi java kod kada ste to
napravili potrebno je izvrsiti kompajliranje.
Kao sto smo i naglasili koristi se se kompajler iz Second Editiona jave
tj. javac s naredbom
C:\midlets> javac -g:none -d C:\tmpclasses -bootclasspath %MIDPAPI%
-classpath
%J2MECLASSPATH% HelloMidlet.java
Ova naradba vrsi kompajliranje i postavlja classpath na J2ME tako da kompajler
nebi trazio klase iz Second Editiona koje i onako nemoze koristiti jer
nisu prilagodene micro VM.Rezultat ove naredbe je HelloMidlet.class dokumetn
u vasem direktoriju tmpclasses
4.KORAK
Da smo sad u Standar Editionu mogli bi pozvati nasu VM koja se u Standard
Editionu zove java i program bi poceo raditi kako su mobiteli uredaji
koji su ograniceni svojim mogucnostima potrebno je napravit jos neke korake
kao prvo potrebno je preverifirati program. Zasto pitate se pa zar to
VM ne radi sam. Odgovor je da u Standar Editionu ali ovdje ne kao sto
je poznato preverifikacija znaci da se byte code koji se nalazi u class
dokumentu pregledava da bi se provjerilo jeli ispravan i dali je slozen
na ispravan nacin da bi ga VM mogla citati, veliki dio VM je posvecen
ovom poslu a kako smo mi ograniceni s velicinom memorije u mobitelima
nemozemo si priustiti da nasa VM bude toliko velika a nemozemo si priustiti
ni to da ona svaki put kad koristi tu klasu trosi procesorsku snagu na
preverifikaciju zbog svega toga dizajneri VM su odlucili da ce taj posao
raditi sami programeri
C:\midlets> preverify -classpath %MIDPAPI%;c:\tmpclasses -d c:\classes
c:\tmpclasses
Nako sto upisete ovu narebu preverificirana klasa HelloMidlet.class je
u direktoriju classes
5.KORAK
Sljedeci korak je da kompresirate sve dokumente koji se ticu vase aplikacije
za to se koristi program jar iz Standar Editiona prije toga se morate
pozicionirat u direktoriji classes kada ste tamo pokrenite naredbu
> jar cvf HelloMidlet.jar HelloMidlet.class
ova naredba stvara jar dokument u principu se radi od obicnom zip dokumentu
u koji je dodan manifest a manifest je txt dokument koji opisuje sadrzaj
jar dokumenta.
6.KORAK
Prije nego pokusamo staviti svoju aplikaciju u mobitel bilo bi ljepo pogledati
dali ona uopce stane u memoriju jer ako ne stane onda uopce nema smisla
stavljati aplikaciju u mobitel.DA bi uspjeli u tome potrebno je stvoriti
neki dokument koji ce nositi podatke o tome koliko je veliki koliko mjesta
treba i jos neke druge podatke.To se moze ostvariti na taj nacin da se
stvori JAD dokument to je tekstualni dokument u koji se upisuju odredeni
podaci od njih najvazniji je velicina jar dokument u baytima.
Example 1-2. HelloMidlet.jad
MIDlet-1: Hello,,HelloMidlet
MIDlet-Name: HelloMidlet
MIDlet-Version: 1.0
MIDlet-Vendor: ORA
MIDlet-Jar-URL: HelloMidlet.jar
MIDlet-Jar-Size: 863
Kada se to napravi potrebno je samo pokrenuti emulator i gotovi smo sa
nasim prvim midletom.
> emulator -Xdescriptor:HelloMidlet.jad
Ako ste napravili sve kako treba pojavit ce se emulator sa vasim programom
nakon sto emulator zavrsi sa radom u komandnom redku ce te dobiti nesto
ovakvo
Execution completed successfully
52618 bytecodes executed
15 thread switches
310 classes in the system (including system classes)
488 dynamic objects allocated (20404 bytes)
1 garbage collections (0 bytes collected)
Total heap size 500000 bytes (currently 477548 bytes free)
Kao sto vidite to je prikaz resursa koje je VM koristila.
ZAVRSETAK
Na kraju bi htio spomenuti jos nekoliko detalja kao prvo na koji nacin
tu aplikaciju staviti na mobitel pa najjednostavniji nacin je da se aplikacija
postavi na wap server i skine preko mreze na telefon druga je da se nabave
data kabeli i software za pojedine vrste mobitela pa se to napravi s tim.Ovo
je jako veliko podrucje sa potencijalno velikim trzistem relativno je
jednostavno za programirat i jos uvijek nedovoljno razvijeno kako su svi
alati besplatni a vise ljudi ima mobitel nego sto ima racunalo ocito ce
u buducnosti zarada na tom trzistu rasti a mogucnosti da se otvore male
tvrtke na tome podrucju su neogranicene kao primjer mozemo navesti trziste
igara naime da bi napravili igru za PC potrban vam je veliki tim mnostvo
ljudi ,skupa oprema i veliko znanje da se napravi igra za mobitel potreban
vam je jedan ili dva covjeka data kabel od 300 kn i malo volje nakon toga
ako imate Simens mobitel odete na njihovu stranicu objavite svoju igru
i nekih 10 000 000 ljudi diljem europe skida vasu igru Simens ce vam dati
postotak od tog posla i ako vasa igra bude zanimljiva zaraditi ce te novce.Pa
zar to nije svrha inzinjerskog posla.
|