Programovßnφ v jazyce Java - J2ME

Kurz programovßnφ v Jav∞ pro mobilnφ telefony - 2. dφl

 ┌vodem  |   Kurz programovßnφ v Jav∞  |  Kurz programovßnφ v Jav∞ pro mobilnφ telefony  |   Soubory ke sta₧enφ  |  Otßzky a odpov∞di

 

┌vod

Vφtejte u druhΘho dφlu kurzu programovßnφ v Jav∞ pro mobilnφ telefony. ZjednoduÜen∞ probereme jednotlivΘ profily. A nakonec napφÜeme prvnφ aplikaci pro mobilnφ telefon.


Profily

V minulΘm dφle jsme probφrali konfigurace. Konfigurace specifikovala nejmenÜφ mo₧nΘ rysy a API pro podporovanß za°φzenφ. Profily rozÜi°ujφ mo₧nosti a funkΦnost za°φzenφ a p°idßvajφ dalÜφ API nad konfigurace. Ro₧Üi°ujφ, ale zßrove≥ vφce up°es≥ujφ mo₧nosti za°φzenφ


MIDP (Mobile Information Device Profile)

Tento profil je nadstavbou konfigurace CLDC. Je urΦen pro malΘ mobilnφ za°φzenφ, nap°φklad mobilnφ telefony a pagery. V dneÜnφ dob∞ to je nejvφce pou₧φvan² profil pro mobilnφ telefony. Aplikace vyu₧φvajφcφ MIDP se naz²vß midlet. Pro nßs je tento profil nejd∙le₧it∞jÜφ a takΘ ho budeme pou₧φvat. Ostatnφ profily zde uvedu jen pro p°ehled.



Zßkladnφ (Foundation)

CDC profil. Nepodporuje grafickΘ u₧ivatelskΘ prost°edφ. Je urΦen jako zßkladov² profil u kterΘho se poΦφtß s pou₧φtφm dalÜφho "vyÜÜφho" profilu, Personal Basis nebo Personal.


Osobnφ zßkladnφ (Personal Basis)

Obsahuje vÜechny t°φdy ze zßkladnφho profilu a p°idßvß dalÜφ.


Osobnφ (Personal)

Obsahuje vÜechny t°φdy osobnφho zßkladnφho profilu a p°idßvß dalÜφ pro podporu grafickΘho prost°edφ (celΘ AWT), applet∙


Celkov² p°ehled VM, konfiguracφ a profil∙

Nßsledujφcφ tabulka ukazuje, jak jsou jednotlivΘ "v∞ci" na sob∞ zßvislΘ.


J2ME
Osobnφ Osobnφ zßkladnφ
MIDP Zßkladov²
CLDC CDC
KVM CVM
Hostujφcφ operaΦnφ systΘm


Prvnφ program pro mobilnφ telefon

Pro psanφ prvnφho programu pot°ebuje jak²koli textov² editor, nebo programßtorskΘ prost°edφ, zßle₧φ na ka₧dΘm co mu lΘpe vyhovuje.

Druhou v∞cφ kterou pot°ebujete pro b∞h program∙ na poΦφtaΦi je specißlnφ prost°edφ pro b∞h t∞chto aplikacφ. V tomto kurzu budu pou₧φvat prost°edφ od Sunu a to J2ME Wireless Toolit (J2MEWTK), kterΘ je voln∞ ke sta₧enφ na adres http://java.sun.com/products/j2mewtoolkit/download-2_1.html. Velikost aplikace je p°ibli₧n∞ 14 MB a nejnov∞jÜφ verze je 2.1, existujφ verze pro Linux, Windows a Solaris. Oficißln∞ jsou podporovßny pouze Windows XP a Windows 2000, z vlastnφ zkuÜenosti vφm, ₧e i na Windows 98 (first edition :-)) funguje J2MEWTK bez problΘm∙. Verze 2.1 podporuje konfiguraci CLDC ve vezi 1.1 a MIDP 2.0, v p°φÜtφm dφle si °ekneme rozdφly nov²ch verzφ CLDC a MIDP oproti starÜφm. Zßrove≥ musφ b²t nainstalovßn J2SE SDK (staΦφ i JRE) minimßln∞ ve verzi 1.4.



Prvnφ program pro mobilnφ telefon
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class PrvniMidlet extends MIDlet {

  Display display;
  TextBox textBox;
  
  public PrvniMidlet() {
  
  }
  
  public void startApp() {
  
    display = Display.getDisplay(this);
    textBox = new TextBox("prvni program", "Ahoj svete", 15, 0);
    display.setCurrent(textBox);
	
  }
  
  public void pauseApp() {
  
  }
  
  public void destroyApp(boolean unconditional) {
  
  }
}

	  

Program zaΦφnß dv∞ma p°φkazy import, proto₧e pou₧φvßme t°φdy z t∞chto balφk∙. Dßle deklarece ve°ejnΘ t°φdy, kterß je potomkem t°φdy MIDlet. VÜechny midlety musφ b²t potomky t°φdy MIDlet (proto se asi jmenujφ midlety :-)). NaÜe t°φda obsahuje t°i metody, startApp(), pauseApp() a destroyApp(). Tyto metody jsou zd∞d∞ny od t°φdy MIDlet, kde jsou deklarovßny jako abstraktnφ, my je musφme p°ekr²t a implementovat. Midlety neobsahujφ metodu main(), pokud jste psaly applety, nep°ijde vßm tΘto zßkladnφ struktu°e nic divnΘho. Kdy₧ se midlet spustφ, provede se metoda startApp(), pokud je midlet zastaven, t°eba p°φchozφm hovorem na telefonu, zavolß se metoda pauseApp() a nakonec, p°i vypnutφ aplikace se zavolß metoda destroyApp(). JeÜt∞ naÜe t°φda obsahuje prßzdn² konstruktor, ten nenφ zajφmv², proto₧e nic neobsahuje :-), ale ve v∞tÜin∞ program∙ ano, proto jsem ho uvedl, abyste si na n∞j zvykli. Tento program zobrazφ na displeji telefonu objekt typu textBox, kter² obsahuje °et∞zec "Ahoj svete".

Kdy₧ chcete aplikaci spustit, nejd°φve spus¥te program KToolbar z J2MEWTK. Objevφ se okno, kde klikn∞te na tlaΦφtko s nßzvem "New Project ...", v dialogovΘm okn∞ musφte vyplnit nßzev projetku a jmΘno t°φdy midletu. Nßzev projektu si zvolte podle svΘho, nßzev "MIDlet class name" musφte zvolit podle toho, jak se jmenuje t°φda midletu, v naÜem p°φpad∞ je to "PrvniMidlet" a stiskn∞te tlaΦφtko s nßpisem "Create Project". V dalÜφm dialogovΘm okn∞ m∙₧ete zm∞nit nastavenφ midletu, ale pro nßÜ p°φklad to nenφ nutnΘ. Nakonec se vßm vypφÜe do konzoly informace, jako kam ulo₧it zdrojov² k≤d programu, nebo r∙znΘ soubory s obrßzky, textem apod., a vlastnφ t°φdy vyu₧itΘ v programu. Pro nßs je d∙le₧it² °ßdek s nßpisem: "Place Java source files in "...\WTK21\apps\kurz\src", proto₧e do tohot adresß°e \src dßme soubor s naÜφm programem. Jeho nßzev musφ b²t PrvniMidlet.java.Pak u₧ jen zmßΦkneme tlaΦφtko "Build" pro zkompilovßnφ a tlaΦφtko "Run" pro spuÜt∞nφ programu. Zp∞tnß lomφtka v nßzvu cesty platφ jen pro Windows, ale to ten kdo pou₧φvß linux, nebo Solaris asi vφ :-).

JednotlivΘ prvky, jako je t°eba TextBox, budou postupn∞ vysv∞tlovßny v tomto kurzu.


Zßv∞r

V dneÜnφm dφle jsme probrali vÜechny profily v J2ME, vΦetn∞ pro nßÜ nejd∙le₧it∞jÜφho MIDP. Napsali sv∙j prvnφ program pro mobilnφ telefon. Tento program sice nenφ nijak velik², ale pro zaΦßtek by m∞l staΦit, samoz°ejm∞ ji₧ p°φÜt∞ se m∙₧ete t∞Üit na vylepÜenφ tohoto prvnφho programu o dalÜφ v∞cφ.



Alen Dvo°ßk