Β ΓΙℑΟ D Χ & ℵΟ Τ Ο
ΤΡ
ΝΓ
Ι Η Χ Μ ΤΠ.ΗΧΜ
ΚΗΟΑ ΧΝΓ ΝΓΗ ΤΗΝΓ ΤΙΝ
ΚΗΑ ΛΥ Ν Τ Τ ΝΓΗΙ Π
τ◊ι:
Λ Π ΤΡ⊂ΝΗ
ΝΓ D ΝΓ ΜΟΒΙΛΕ Β ΝΓ
ϑΑςΑ
ΓςΗD : Τι ν σ . ΝΓΥΨ Ν ς Ν ΗΙ Π
ΣςΤΗ : ΝΓΥΨ Ν ΧΝΓ Η∧ΝΓ
ΜΣΣς : 106Η1031
ΤΠ.Η
ΧΗ⊆ ΜΙΝΗ – Ν Μ 2009
Λ ι Χ m ν!
Λυ ν 〈ν đ đ χ τη χ ηι ν τρονγ m τ τη ι γιαν δ◊ι, ϖ◊ đψ λ◊ τη◊νη πη m λ ν νη τ m◊
τι τη χ ηι ν đ χ τρονγ θυ〈 τρνη η χ τ π τ ι τρ νγ. Νγο◊ι σ χ γ νγ, ν λ χ χ α β ν
την, χ∫ν νη ν σ γιπ đ χ α νηι υ νγ ι đ τι χ⌠ τη ηο◊ν τηι ν đ χ λυ ν 〈ν νη νγ◊ψ
ναψ.
υ τιν, χον ξιν ϖ χνγ βι τ ν Βα Μ , đ χ⌠ χνγ σινη τη◊νη, δ
ψυ ϖ◊ χη m σ⌠χ đ χηο χον χ⌠ đ χ νγ◊ψ ηm ναψ.
νγ δ χ, τη
νγ
Τι ξιν χ m ν χ〈χ τη ψ χ Κηοα Χνγ νγη τηνγ τιν ϖ◊ χ〈χ τη ψ χ τρ νγ ι Η χ
Μ ΤΠ.ΗΧΜ đ τρυψ ν đ τ νη νγ κι ν τη χ, κινη νγηι m θυ β〈υ τρονγ θυ〈 τρνη η χ τ π
ϖ◊ νγηιν χ υ.
Εm ξιν χην τη◊νη χ m ν τι ν σ .Νγυψ ν ς ν Ηι π, γι νγ ϖιν Κηοα Χνγ νγη
τηνγ τιν – τρ νγ ι Η χ Β〈χη Κηοα Τπ.ΗΧΜ đ τ ν τνη η νγ δ ν, đ νη η νγ, γ⌠π
τρονγ θυ〈 τρνη τη χ ηι ν λυ ν ϖ ν.
Τι ξιν χ m ν τ π τη νη⌠m λ π τρνη πη ν m m χνγ τψ Τιν η χ Τη ο Χη
đι υ κι ν χηο τι τρονγ θυ〈 τρνη τη χ ηι ν λυν ϖ ν ν◊ψ.
νγ đ τ ο
Τι ξιν χ m ν χ〈χ β ν đ đ νγ ϖιν χηο τι τρονγ θυ〈 τρνη τη χ ηι ν λυ ν ϖ ν.
Μ χ δ, τι đ ν λ χ đ ηο◊ν τη◊νη β◊ι β〈ο χ〈ο ν◊ψ ϖ◊ đ đ τ m τ σ κ τ θυ νη τ
đ νη, τυψ νηιν νη νγ σαι σ⌠τ τρονγ β〈ο χ〈ο κηνγ τρ〈νη κη ι, κνη mονγ σ τηνγ χ m ϖ◊
đ⌠νγ γ π κι ν χ α θυ τη ψ χ ϖ◊ χ〈χ β ν.
Ξιν χην τη◊νη χ m ν!
Τπ. ΗΧΜ, νγ◊ψ 07, τη〈νγ 01, ν m 2009.
Νγ ι τη χ ηι ν: Νγυψ ν Χνγ Ηνγ.
Μ σ σινη ϖιν: 106Η1031.
Λ π η χ: ΗΧΤΗ062Χ.
Ξιν
Χ m
ν!
Lu n v n t t nghi p
CH
NG 1:
1.1.
1.2.
1.3.
CH
TÀI. ...................................... 4
t v n đ ..................................................................................................4
M c tiêu đ t ra cho đ tài ............................................................................5
N i dung....................................................................................................6
NG 2:
2.1.
M C TIÊU VÀ N I DUNG
T NG QUAN V J2ME ......................................................... 7
CÁC THÀNH PH N C A J2ME................................................................7
2.1.1.
T ng ph n c ng thi t b (Device Hardware Layer) .......................................... 8
2.1.2.
T ng máy o Java (Java Virtual Machine Layer) ............................................. 8
2.1.3.
T ng c u hình (Configuration Layer) ........................................................... 10
2.1.4.
T ng hi n tr ng (Profile Layer) ................................................................... 12
2.1.5.
M t s h n ch c a J2ME so v i các phiên b n khác(ch y u n m t ng
Configuration này): ........................................................................................................ 12
2.2.
CH C N NG CÁC THÀNH PH N .........................................................13
2.2.1.
Máy o Java (Kilobyte Virtual Machine - KVM)........................................... 13
2.2.2.
CLDC...................................................................................................... 15
2.2.2.1.
Yêu c u ph n c ng dành cho CLDC:....................................................... 16
2.2.2.2.
Yêu c u ph n m m dành cho CLDC:....................................................... 17
2.2.2.3.
S khác bi t gi a CLDC 1.0 và CLDC 1.1 ............................................... 17
2.2.2.4.
Danh sách các l p mà CLDC cung c p. ................................................... 17
2.2.3.
MIDP ...................................................................................................... 20
2.2.3.1.
nh ngh a: .......................................................................................... 20
2.2.3.2.
Nh ng ch c n ng mà MIDP không h tr : ............................................... 20
2.2.3.3.
Nh ng ch c n ng mà MIDP cung c p...................................................... 21
2.2.3.4.
Nh ng yêu c u dành cho MIDP. ............................................................. 21
2.2.3.5.
Các d ng profile.................................................................................... 22
2.2.3.6.
S khác nhau gi a MIDP 1.0 và MIDP 2.0............................................... 22
2.2.3.7.
Danh sách l p mà MIDP cung c p. ......................................................... 23
CH
NG 3:
3.1.
3.2.
NH NGH A:.........................................................................................26
CÁC D NG MIDLET ..............................................................................26
3.2.1.
3.2.2.
3.3.
B MIDLET......................................................................... 26
ng d ng đ n (standalone application). ....................................................... 26
ng d ng n i m ng (networked application). ............................................... 26
C U TRÚC M T B MIDLET (MIDlet suite)...........................................26
3.3.1.
C u trúc file Jar......................................................................................... 26
3.3.2.
File JAD (Java Application Descriptor File) : ............................................... 27
3.3.2.1.
t t .................................................................................................. 27
3.3.2.2.
Các ph ng th c trong MIDlet ............................................................... 29
3.3.2.3.
Xây d ng m t ng d ng MIDlet: ............................................................ 29
3.3.2.4.
L p MIDlet: ......................................................................................... 31
CH
4.1.
NG 4:
GIAO DI N
H A........................................................... 33
QU N LÝ VI C HI N TH VÀ B T S
-- Trang 1 --
KI N. .......................................35
Lu n v n t t nghi p
4.1.1.
Qu n lý vi c hi n th .................................................................................. 35
4.1.1.1.
L p Display. ........................................................................................ 35
4.1.1.2.
L p Displayable.................................................................................... 36
4.1.2.
Qu n lý các s ki n: .................................................................................. 37
4.1.2.1.
Command và CommandListener. ............................................................ 38
4.1.2.2.
Item và ItemStateListener ...................................................................... 41
4.2.
GIAO DI N
4.2.1.
4.2.2.
4.2.3.
4.2.3.1.
4.2.3.2.
4.2.3.3.
4.2.3.4.
4.2.3.5.
4.2.3.6.
4.2.3.7.
4.2.4.
4.2.5.
4.2.6.
4.2.7.
4.2.7.1.
4.2.7.2.
4.2.7.3.
4.2.8.
H A C P CAO..............................................................42
Screen:..................................................................................................... 42
Form:....................................................................................................... 42
Item:........................................................................................................ 43
DateField: ............................................................................................ 44
Gauge: ................................................................................................. 45
StringItem: ........................................................................................... 47
TextField: ............................................................................................ 47
ChoiceGroup: ....................................................................................... 50
Image: ................................................................................................. 53
ImageItem:........................................................................................... 54
TextBox................................................................................................... 56
Alert ........................................................................................................ 58
AlertType:................................................................................................ 60
List:......................................................................................................... 61
Các d ng c a list................................................................................... 61
B t s ki n cho các đ i t ng List........................................................... 62
So sánh gi a l p List và l p ChoiceGroup: .............................................. 62
Ticker: ..................................................................................................... 64
H A C P TH P ...............................................................................64
4.3.
4.3.1.
Canvas:.................................................................................................... 65
4.3.1.1.
H t a đ ............................................................................................. 65
4.3.1.2.
V trên đ i t ng Canvas:...................................................................... 66
4.3.1.3.
B t s ki n trong các đ i t ng Canvas. .................................................. 68
4.3.1.4.
Game action: ........................................................................................ 70
4.3.2.
Graphics: ................................................................................................. 72
4.3.2.1.
Color: .................................................................................................. 73
4.3.2.2.
Nét v :................................................................................................. 74
4.3.2.3.
Font ch : ............................................................................................. 76
4.3.2.4.
V các đ i t ng hình nh (Image):......................................................... 78
4.3.2.5.
Các ph ng th c t nh ti n c a đ i t ng: ................................................. 79
4.3.2.6.
Vùng xén (Clipping regions): ................................................................. 81
CH
NG 5:
L U TR
THÔNG TIN VÀ L P TRÌNH M NG. ................. 82
N I DUNG TRÌNH BÀY:...................................................... 82
L U TR THÔNG TIN TRONG J2ME.................................. 82
K T N I M NG V I GENERIC CONNECTION FRAMEWORK.
82
-- Trang 2 --
Lu n v n t t nghi p
5.1.
L u tr thông tin v i RMS ........................................................................82
5.1.1.
5.1.2.
5.1.3.
5.1.4.
5.1.5.
5.2.
RecordStore.............................................................................................. 83
RecordEnumeration................................................................................... 91
S p x p các b ng RecordComparator........................................................... 93
L c record v i RecordFilter........................................................................ 95
RecordListener ......................................................................................... 96
K t n i m ng v i Generic Connection Framework (GCF).............................97
5.2.1.
Gi i thi u GCF. ........................................................................................ 97
CH
NG 6:
NH NG QUI TRÌNH VÀ RÀNG BU C
M T NG D NG
TRÊN JBUILDER CH Y
C TRÊN MOBILE. ........................................... 117
6.1.
Tìm hi u và trình bày qui trình k thu t đ xây d ng m t ng d ng mobile trên
Jbuilder. 117
6.1.1.
6.1.2.
6.1.3.
6.1.3.1.
6.1.3.2.
6.1.4.
Cài đ t Jbuilder....................................................................................... 117
Cài đ t SDK cho Nokia............................................................................ 121
Quá trình xây d ng 1 MIDlet. ................................................................... 127
Quá trình đ u tiên: T o m i m t project................................................ 127
Quá trình th hai: T o m t l p MIDlet................................................... 131
Các b c đ xây d ng các file.Jar và file.Jad: ............................................. 137
6.2.
Tìm hi u và trình bày các yêu c u ràng bu c đ m t ng d ng mobile trên
Jbuilder có th ch y trên mobile ..............................................................................141
6.2.1.
Nh ng ràng bu
6.2.1.1.
Ràng bu c v
6.2.1.2.
Ràng bu c v
6.2.2.
Nh ng ràng bu
CH
NG 7:
c trên thi t b di đ ng. ....................................................... 141
ph n c ng. ..................................................................... 141
ph n m m. ..................................................................... 142
c đ i v i ng d ng............................................................ 142
GI I THI U
NG D NG DEMO. ...................................... 143
7.1.
Gi i thi u...............................................................................................143
7.2.
Xây d ng m t MIDlet. ............................................................................143
7.3.
Mô t ch ng trình. ................................................................................143
7.4.
Các ch c n ng c a ch ng trình:..............................................................144
7.5.
Th c thi ch ng trình..............................................................................145
m t chi c đi n tho i có th ch y đ c ng d ng MIDlet thì tr c h t ta hãy xem
nh ng yêu c u ràng bu c đ m t ng d ng java ch y đ c trên mobile (v n đ này đ c
trình bài trong ch ng 6).........................................................................................145
CH
NG 8:
K T QU VÀ H
NG PHÁT TRI N ................................ 150
8.1.
K t qu ..................................................................................................150
8.2.
Nh ng h n ch : ......................................................................................150
V quy n lu n v n trình bày.................................... Error! Bookmark not defined.
V ch ng trình..................................................... Error! Bookmark not defined.
8.3.
H ng phát tri n.....................................................................................150
-- Trang 3 --
Lu n v n t t nghi p
CH
NG 1: M C TIÊU VÀ N I DUNG
TÀI.
N i dung trình bày:
M c tiêu và n i dung c a đ t i.
tv nđ .
1.1.
V i chi c máy tính đ bàn (máy PC) thì ngày này chúng ta đã làm đ
ch uh t
m i vi c t đ n gi n đ n ph c t p. Nh ng mà máy PC ch làm vi c c đ nh, do đó,
máy tính Laptop xu t hi n v i tính n ng nh g n có th mang theo và làm vi c h u
nh
m i n i. Ngày nay các thi t b di đ ng đã tr nên r t ph bi n và đ
r t r ng rãi t i Vi t Nam, đ c bi t là các lo i đi n tho i di đ ng. Nhi u ng
c s d ng
i đã coi
đi n tho i di đ ng nh m t v t không th thi u trong cu c s ng h ng ngày. N m b t
đ
c nhu c u đó, các nhà s n xu t đi n tho i đã đ y m nh v m t công ngh , t ng
c
ng m u mã, tích h p các ch c n ng ngày càng nhi u vào các dòng s n ph m m i,
h u đem l i cho ng
nh t. Gi đây, ng
i dùng nh ng ti n ích cao c p nh t v i các công ngh tiên ti n
i dùng đi n tho i có th nghe nh c, xem phim, ch p hình ch i
game và th m chí là xem TV, l
t web ch v i chi c đi n tho i bé xíu ngay bên mình.
Chi c đi n tho i đã th c s không ch là m t ph
ng tiên liên l c, mà nó cịn mang c
th gi i gi i trí, th gi i Mobile đ n v i t ng ng
i m i lúc m i n i. V i công ngh
phát tri n không ng ng nh hi n nay, vi c đòi h i các ng d ng t t h n c ng ngày
càng tr thành m t yêu c u đi đôi v i s phát tri n c a công ngh . M t chi c đi n
tho i t t ln địi h i nh ng ph n m m cao c p đi kèm v i nó. Nh ng v n đ l i đ t ra
là có quá nhi u nhà s n xu t đi n tho i s d ng nhi u công ngh khác nhau. V y làm
sao chúng ta có th t o ra đ
đó?
c nh ng ng d ng ch y trên t t c các dòng s n ph m
ây qu th t là m t v n đ không đ n gi n chút nào. M t th c t đ t ra cho các
nhà phát tri n ph n m m là hi n nay khơng có m t chu n hóa nào dành cho các nhà
s n xu t ph n c ng. Các thi t b trên th tr
ng hi n nay r t đa d ng và c ng mang
nhi u đ c đi m c ng nh c u hình khác nhau.
Tr
c th c t đó, vi c có th ch y trên nhi u môi tr
ngôn ng Java. Nh chúng ta đã bi t, ban đ u Java đ
b n duy nh t, ngày nay đ
ng là m t l i th r t l n c a
c xây d ng ch g m m t phiên
c bi t đ n v i tên J2SE (Java 2 Standard Edition) v i
-- Trang 4 --
Lu n v n t t nghi p
ph
ng châm là “Write once, run anywhere” t m d ch là “vi t m t l n, ch y trên m i
môi tr
ng”. Java đ
c hình thành trên ý t
ng xây d ng m t ngơn ng mà l p trình
viên ch c n vi t m t l n duy nh t nh ng ng d ng có th ch y trên b t c mơi tr
ng
nào có h tr Java Virtual Machine t m d ch là “máy o Java”. Các nhà phát tri n Java
đã cho ra m t ngôn J2ME h
ng đ n vi c phát tri n ph n m m cho các thi t b di
đ ng. Ngôn ng J2ME th c s là ngôn ng nh g n, d n m b t, ch t ch và thích h p
cho các thi t b có kh n ng h n ch . Các thi t b di đ ng trên th tr
ng hi n nay, đ c
bi t là đi n tho i di đ ng h u h t đ u h tr r t t t ngôn ng J2ME và J2ME th c s
đã tr thành m t trong nh ng ngôn ng ph bi n nh t trong l nh v c l p trình di đ ng.
J2ME đ
h
c xem nh là m t nhánh c a ngơn ng l p trình Java đ
c phát tri n nh m
ng t i vi c l p trình cho các thi t b nh có b nh , kh n ng hi n th và x lý h n
ch .
1.2. M c tiêu đ t ra cho đ tài
Tìm hi u các ràng bu c v ph n c ng c a các ch ng lo i thi t b di đ ng hi n
nay.
Hi u chi ti t v J2ME, các ki n trúc nên t ng c a nó và nh ng ng d ng c a nó
đ l p trình trên các thi t b di đ ng.
N mđ
c các k thu t x lý form, âm thanh, hình nh, và l u tr trên đi n tho i
di đ ng
Tìm hi u qui trình k thu t đ xây d ng ng d ng mobile trên Jbuilder.
Nh ng ràng bu c đ m t ng d ng vi t trên Jbuilder có th ch y trên mobile.
ng d ng các k t qu đ t đ
ích ph c v nhu c u c a ng
c đ xây d ng ch
ng trình đ n gi n, có các ti n
i s d ng đi n tho i di đ ng.
Áp d ng thành công trên m t s dòng máy đi n tho i di đ ng h tr Java c a các
hãng nh Nokia, SonyEricsson, Samsung,…
Nh ng m c tiêu trên đ
c đ t ra trên nh m xây d ng m t quy n lu n v n t t
h n, đây đ h n. Và xa h n n a là, lu n v n này đã trình bài đ y đ nh ng gì c n
thi t đ cho m i ng
i có th t vi t nh ng ng d ng riêng cho chi c đi n tho i
c a mình.
-- Trang 5 --
Lu n v n t t nghi p
1.3. N i dung.
V i nh ng m c tiêu trên thì quy n lu n v n xin trình bày nh ng n i dung sau:
Gi i thi u chung v ngôn ng J2ME: t ng configuration và profile.
Các v n đ liên quan đ n m t b MIDlet.
L p trình trên thi t b di đ ng s d ng giao di n đ h a c p th p và c p cao.
Vi c l u tr thông tin trên MIDlet xu ng b ng ghi và truy xu t chúng khi c n
thi t.
L p trình m ng.
Các b
c c n thi t đ xây d ng và th c thi m t MIDlet.
Nh ng ràng bu c đ m t ng d ng vi t trên Jbuilder ch y đ
Xây d ng ng d ng game caro đ demo.
-- Trang 6 --
c trên Mobile.
Lu n v n t t nghi p
CH
NG 2:
T NG QUAN V J2ME
N i dung trình bày:
Trình bài nh ng thành ph n chính đ c u thành nên J2ME.
Máy o java.
Configuration và Profile.
Ch c n ng c a các thành ph n này.
2.1. CÁC THÀNH PH N C A J2ME.
M c tiêu c a J2ME là cho phép ng
i l p trình vi t các ng d ng đ c l p v i thi t
b di đ ng, không c n quan tâm đ n ph n c ng th t s .
J2ME đ
đ tđ
c m c tiêu này,
c xây d ng b ng các t ng (layer) khác nhau đ gi u đi vi c th c hi n ph n
c ng kh i nhà phát tri n. Sau đây là các t ng c a J2ME đ
c xây d ng (2).
Hình 1: Các thành ph n c a J2ME.
Java 2
Enterprise
Edition
(J2EE)
Java 2
Standard
Edition
(J2SE)
CDC
MIDP
Profile level
CLDC
Configuration level
KVM
Java Virtual Machine
Java 2 Micro Edition
Khái ni m đi n tho i di đ ng là t
có kích th
ng đ i r ng l n. Chúng bao g m nh ng thi t b
c v t lý khác nhau nhi u l n và cho dù cùng kích th
c nh ng thi t b này
v n có kh n ng x lý c ng nh th hi n c ng khác nhau (nh ng chi c đi n tho i hi n
th 12,000 pixels cho đ n nh ng chi c PDA 20000 pixels).
đáp ng đ
c nhu c u
khác nhau c a nh ng thi t b này, b n thân ngôn ng J2ME c ng chia thành nh ng
thành ph n nh h n.
-- Trang 7 --
Lu n v n t t nghi p
Hình 2: C u trúc c a thi t b MID.
MIDP
Applications
OEM-Specific
Applications
Native
Applications
OEM-Specific
Classes
Mobile Information
Device Profile (MIDP)
Connected Limited Device Configuration (CLDC)
Native Operating System
Mobile Information Device(MID)
M i t ng
trên t ng Mobile Information Device là t ng tr u t
cho l p trình viên nhi u giao di n l p trình
ng h n cung c p
ng d ng (API-Application Program
Interface) thân thi n h n.
2.1.1. T ng ph n c ng thi t b (Device Hardware Layer)
ây chính là thi t b di đ ng th t s v i c u hình ph n c ng c a nó v b nh và
t c đ x lý. D nhiên th t ra nó khơng ph i là m t ph n c a J2ME nh ng nó là n i
xu t phát. Các thi t b di đ ng khác nhau có th có các b vi x lý khác nhau v i các
t p mã l nh khác nhau. M c tiêu c a J2ME là cung c p m t chu n cho t t c các lo i
thi t b di đ ng khác nhau.
2.1.2. T ng máy o Java (Java Virtual Machine Layer)
Khi mã ngu n Java đ
bytecode này sau đó đ
c biên d ch nó đ
c chuy n đ i thành mã bytecode. Mã
c chuy n thành mã ngôn ng máy c a thi t b di đ ng. T ng
máy o Java bao g m KVM (K Virtual Machine) là b biên d ch mã bytecode có
nhi m v chuy n mã bytecode c a ch
ng trình Java thành ngôn ng máy đ ch y
trên thi t b di đ ng, và đ ng th i máy o Java s ch u trách nhi m vi c cung c p các
tính n ng b o m t, c p phát, thu h i b nh và qu n lý vi c đi u ph i các ti n trình.
T ng này cung c p m t s chu n hóa cho các thi t b di đ ng đ
ng d ng J2ME sau
khi đã biên d ch có th ho t đ ng trên b t k thi t b di đ ng nào có J2ME KVM.
Chính nh ng h n ch v t i nguyên c a các thi t b di đ ng đã đ ra nhu c u v s ra
đ i c a KVM.
ây là nh ng yêu c u dành cho máy o KVM:
-- Trang 8 --
Lu n v n t t nghi p
Máy o Java ch c n 40 – 80 KB b nh .
Ch c n 20 – 40 KB b nh đ ng.
Có th ch y v i b vi x lý 16 bit và xung nh p 25 MHz.
Mã ngu n java ph i trãi qua 2 giai đo n nh hình bên d
i.
Hình 3: Hai quá trình biên d ch và thông d ch c a mã ngu n java.
.class
Bytecode
Interpreter
Compiler
.java
Source Code
KVM
(Kilobyte Virtual
Machine)
Các phiên b n c a Java:
Java đ
c gi i thi u l n đ u tiên vào nh ng n m 1995, trong th i gian đ u thì
m c tiêu nh m đ n c a Java là phát tri n c a GUIs, applets, và nh ng ng d ng
đ c tr ng khác. Hai n m sau ngày ra m t l n đ u tiên, m t phiên b n m i là Java 2
Enterprise Edition (J2EE) c ng đ
c gi i thi u nh m đ n vi c phát tri n các ng
d ng có qui mơ l n h n (có th xem là các máy server).
ng th i phiên b n này
c ng đ a ra nh ng công c cho vi c truy xu t d li u, truy n thông tin, đi u khi n
vi c th c thi.
Và phiên b n m i nh t đ
c thêm vào dịng ngơn ng Java là Java 2 Micro
Edition (J2ME). J2ME nh m đ n vi c phát tri n ng d ng cho các ng d ng có
n ng l c h n ch nh đ u gi i mã k thu t s TV set-top boxes, đi n tho i di
đ ng…
-- Trang 9 --
Lu n v n t t nghi p
Hình 4: Các phiên b n khác nhau c a java.
Chúng ta có th th y các phiên b n khác nhau c a Java, ph thu c vào ph n c ng
mà thi t b h tr . Hình s th hi n 3 máy o đ
khác nhau. Các Hotspot VM là m c đ nh máy o đ
c s d ng trong nh ng môi tr
ng
c cung c p b i Sun do th c hi n
đ y đ quy mô phiên b n m i h n JavaHotspot là m t lo i máy o có kh n ng t
đ ng t i
u hóa n ng n th c hi n các đo n mã (hotspots) trong th i gian th c.
Compact Virtual Machine (CVM) and Kilobyte Virtual Machine (KVM) là nh ng
máy o nh h n dùng đ hi n th c vi c thi t k đ ch y trong nh ng ràng bu c c a
gi i h n v tài nguyên trên nh ng thi t b nh .
2.1.3. T ng c u hình (Configuration Layer)
T ng c u hình c a CLDC đ nh ngh a giao di n ngôn ng Java (Java language
interface) c b n đ cho phép ch
ng trình Java ch y trên thi t b di đ ng
đáp ng nhu c u cho nhi u ch ng lo i thi t b khác nhau, Sun đã đ a ra khái
ni m Configuration. Khái ni m Configuration có m i liên h ch t ch v i máy o
-- Trang 10 --
Lu n v n t t nghi p
Java. Nói chính xác h n, m t Configuration qui đ nh nh ng thành ph n và nh ng th
vi n g c c a ngôn ng Java mà máy o ph i h tr cho configuration đó. Vi c phân
chia thành nh ng configuration khác nhau ch y u d a vào kh n ng b nh , n ng l c
hi n th , n ng l c x lý và kh n ng k t n i m ng c a các thi t b . Nh chúng ta đã
bi t, các thi t b di đ ng r t khác nhau v ngu n tài nguyên, v kh n ng ph n c ng.
V i nh ng thi t b có n ng l c h n ch , n u ta đ a nhi u th vi n h tr vào máy o
trên thi t b đó s gây ch m h th ng và d th a không c n thi t. V i nh ng thi t b có
kh n ng cao h n, chúng ta s đ a thêm nhi u th vi n h tr vào máy o giúp ích cho
cơng vi c l p trình c a các nhà phát tri n. Do đó, nhu c u phân chia thành nhi u
Configuration là vi c c n thi t.
Hi n nay Sun đã đ a ra hai lo i Configuration khác nhau:
CDC (Connected Divice Configuration):
512 KB (minimum) b nh đ ch y Java.
256 KB (minimum) b nh c p phát đ ng.
K t n i m ng liên t c, b ng thông r ng.
CLDC (Connected Limited Device Configuration):
128 KB (minimum) b nh đ ch y Java.
32 KB (minimum) b nh c p phát đ ng.
Giao di n ng
N ng l
i dùng h n ch .
ng tiêu t n ít (ch y u dùng pin).
K t n i m ng Wireless và ch m.
Vi c phân chia này c ng mang tính ch t t
ng đ i, công ngh hi n nay đang phát
tri n khá nhanh, và vi c phát tri n này càng làm cho ranh gi i gi a các lo i
configuration này tr nên không rõ ràng.
C 2 d ng C u hình k trên đ u ch a máy o Java (Java Virtual Machine) và t p
h p các l p (class) Java c b n đ cung c p m t môi tr
ng cho các ng d ng J2ME.
Tuy nhiên, b n chú ý r ng đ i v i các thi t b c p th p, do h n ch v tài nguyên nh
b nh và b x lý nên không th yêu c u máy o h tr t t c các tính n ng nh v i
máy o c a J2SE, ví d , các thi t b thu c CLDC không có ph n c ng u c u các
phép tính toán d u ph y đ ng, nên máy o thu c CLDC không đ
ki u float và double.
-- Trang 11 --
c yêu c u h tr
Lu n v n t t nghi p
2.1.4. T ng hi n tr ng (Profile Layer)
T ng hi n tr ng hay MIDP (Hi n tr ng thi t b thông tin di đ ng-Mobile
Information Device Profile) cung c p t p các API h u d ng h n cho l p trình viên.
M c đích c a hi n tr ng là xây d ng trên l p c u hình và cung c p nhi u th vi n ng
d ng h n. MIDP đ nh ngh a các API riêng bi t cho thi t b di đ ng. C ng có th có
các hi n tr ng và các API khác ngoài MIDP đ
hi n tr ng PDA đ nh ngh a các l p và ph
c dùng cho ng d ng. Ví d , có th có
ng th c h u d ng cho vi c t o các ng
d ng PDA (l ch, s h n, s đ a ch ,…). C ng có th có m t hi n tr ng đ nh ngh a các
API cho vi c t o các ng d ng Bluetooth. Th c t , các hi n tr ng k trên và t p các
API đang đ
c xây d ng. Chu n hi n tr ng PDA là đ c t JSR - 75 và chu n bluetooth
API là đ c t JSR - 82 v i JSR là vi t t t c a Java Specification Request.
2.1.5. M t s h n ch c a J2ME so v i các phiên b n khác(ch y u n m
t ng
Configuration này):
Không h tr ki u d li u float: Vi c s lý s float địi h i nhi u tài ngun x
lý, ngồi ra các thi t b di đ ng khơng có nh ng c u hình ph n c ng dành riêng
cho vi c x lý s float nên trong J2ME chúng ta không th khai báo các bi n,
m ng float, các hàm c ng không nh n tham s và tr các s float.
Ph
(t
ng th c finalize: Trong J2SE, chúng ta có th khai báo ph
ng t nh ph
này tr
ng th c finalize
ng th c destructor). Garbage Collector s g i ph
c khi h y b m t đ i t
ng, ph
ng th c này th
h i các tài nguyên h th ng nh sockets, file handle,….tr
ng đ
ng th c
c dùng đ thu
c khi đ i t
ng b
“phá h y”. Tuy nhiên trong J2ME ,đ c i ti n vi c th c thi và gi m toàn b các
yêu c u, CLDL lo i b h n đ i t
ph
ng finalize, đi u này có ngh a là khơng có
ng th c Object.finalize.
Error Handling: Trong J2ME chúng ta v n đ
c h tr các công c v b y l i
(ch y u thông qua try và catch). C ng do nguyên nhân h n ch tài nguyên, kh
n ng v x lý l i c a J2ME c ng h n ch h n v i hai phiên b n cịn l i, CLDC
khơng h tr b t k java.lang.Error nào.
Không h tr vi c s d ng code c a các ngôn ng l p trình khác.
Khơng h tr Reflection: Trong J2ME và J2ME, chúng ta có th dùng các l p
Reflection đ tìm hi u thơng s mơi tr
ng máy o Java đang th c thi.
-- Trang 12 --
Lu n v n t t nghi p
Không h
tr
ThreadGroup: m i thread đ
c lý riêng bi t, khơng cịn l p
ThreadGroup. N u mu n đi u khi n m t lúc nhi u threads chúng ta có th dùng
m ng ho c Vector.
J2ME c ng còn m t s đi m khác bi t so v i J2ME và J2EE, m t trong nh ng
khác bi t chính là q trình Class Verify (t m d ch là “ki m tra l p”). Các l p
tr
c khi đ
c load s thơng qua m t q trình “ki m tra” v s h p l và tính
nguyên v n.
ây là m t c ch quan tr ng đ b o đ m an toàn (security) c a
Java. Quá trình này trong J2SE và J2EE có th chi m đ n 50 kb b nh , trong
J2ME chúng đ
c chia thành 2 giai đo n:
Ti n ki m tra (pre-verification): Tr
m t ph n m m s đ
c khi m t l p đ
c n p vào thi t b ,
c s d ng đ thêm vào m t s thơng s b sung vào
file class. Q trình này gi m th i gian và b nh c n thi t đ máy o th c
hi n giai đo n 2 trong quá trình ki m tra. File class sau khi đ
tra” s t ng dung l
c “ti n ki m
ng kho ng 5%.
Ki m tra n i thi t b (In-device verification): Khi thi t b n p các file class
đã đ
c ki m tra, công c ki m tra trong thi t b s th c hi n m t vài ki m
tra đ xác nh n tính h p l c a đo n code. N u phát hi n m t l i nào đó b
ki m tra s phát sinh báo cáo và t ch i n p l p đ i t
ng vào b nh . Q
trình này địi h i ít b nh và tài nguyên h n nhi u l n so v i trong J2SE và
J2EE.
2.2. CH C N NG CÁC THÀNH PH N
2.2.1. Máy o Java (Kilobyte Virtual Machine - KVM)
Vai trò c a máy o Java hay KVM là d ch mã bytecode đ
c sinh ra t ch
ng
trình Java đã biên d ch sang ngơn ng máy. Chính KVM s chu n hóa output c a
các ch
ng trình Java cho các thi t b di đ ng khác nhau có th có b vi x lý và t p
l nh khác nhau. Khơng có KVM, các ch
ng trình Java ph i đ
c biên d ch thành
t p l nh cho m i thi t b di đ ng. Nh v y l p trình viên ph i xây d ng nhi u đích
cho m i lo i thi t b di đ ng. Hình d
i đây bi u di n ti n trình xây d ng ng d ng
MIDlet hồn ch nh và vai trị c a KVM.
-- Trang 13 --
Lu n v n t t nghi p
Hình 5: Ti n trình xây d ng m t MIDlet.
Tr m phát tri n
T p tin .JAR
T p tin ngu n java
*.java
T p tin l p java
*.class
B biên d ch
và b ti n
ki m tra java
T p tin ngu n java
*.java
T p tin l p java
*.class
Thi t b đích
B biên
d ch mã
bytecode
KVM
Xây d ng ng d ng trên IDE (Intergrated Development Environment - Mơi tr
ng
phát tri n tích h p)
ây là nh ng cơng vi c c a l p trình viên trên:
T o các t p tin ngu n Java:
B
c đ u tiên là l p trình viên ph i t o mã ngu n Java, có th có nhi u t p
tin (*.java) (v n đ này đ
c trình bày trong ch
ng 6).
Biên d ch trên IDE:
B biên d ch Java (Java Compiler): Biên d ch mã ngu n thành mã bytecode
B biên d ch Java s biên d ch mã ngu n thành mã bytecode. Mã bytecode
này s đ
c KVM d ch thành mã máy. Mã bytecode đã biên d ch s đ
c
l u trong các t p tin *.class và m t t p tin *.class sinh ra cho m i l p Java.
B
ti n ki m tra (Preverifier): Ki m tra tính h p l c a mã bytecode
M t trong nh ng yêu c u an toàn c a J2ME là b o đ m mã bytecode chuy n
cho KVM là h p l và không truy xu t các l p hay b nh ngoài gi i h n
c a chúng. Do đó t t c các l p đ u ph i đ
có th đ
c ti n ki m tra tr
c khi chúng
c download v thi t b di đ ng. Vi c ti n ki m tra đ
m t ph n c a môi tr
ng phát tri n làm cho KVM có th đ
-- Trang 14 --
c xem là
c thu nh h n.
Lu n v n t t nghi p
B ti n ki m tra s gán nhãn l p b ng m t thu c tính (attribute) đ c bi t ch
r ng l p đó đã đ
kích th
c ti n ki m tra. Thu c tính này t ng thêm kho ng 5%
c c a l p và s đ
c ki m tra b i b ki m tra trên thi t b di đ ng.
L u ý: N u khơng có q trình ti n ki m tra này thì thi t b di đ ng s t ch i ng
d ng.
T o t p tin JAR.
IDE s t o m t t p tin JAR ch a:
T t c các t p tin *.class
Các hình nh c a ng d ng. Hi n t i ch h tr t p tin *.png
Các t p tin d li u có th đ
c yêu c u b i ng d ng
M t t p tin kê khai (manifest.mf) cung c p mô t v
ng d ng cho b qu n
lý ng d ng (application manager) trên thi t b di đ ng.
Sau khi đã g r i và ki m tra mã l nh trên trình gi l p (simulator), mã l nh
đã s n sàng đ
cho ng
c ki m tra trên đi n tho i di đ ng và sau đó đ
c phân ph i
i dùng (download ng d ng (t p tin *.jar) v thi t b di đ ng – xem
ph n ph l c).
Trên thi t b di đ ng.
B ti n ki m tra: B ti n ki m tra ki m tra t t c các l p đ u có m t thu c tính
h p l đã đ
c thêm vào b i b ti n ki m tra trên tr m phát tri n ng d ng.
N u ti n trình ti n ki m tra th t b i thì ng d ng s không đ
c download v
thi t b di đ ng.
B qu n lý ng d ng: B qu n lý ng d ng trên thi t b di đ ng s l u tr
ch
ng trình trên thi t b di đ ng. B qu n lý ng d ng c ng đi u khi n tr ng
thái c a ng d ng trong th i gian th c thi và có th t m d ng ng d ng khi có
cu c g i ho c tin nh n đ n.
Ng
i dùng th c thi ng d ng, b qu n lý ng d ng s chuy n ng d ng cho
KVM đ ch y trên thi t b di đ ng.
KVM s d ch mã bytecode sang ngôn ng máy c a thi t b di đ ng đ ch y.
2.2.2. CLDC
CLDC - c u hình thi t b k t n i gi i h n đây là t ng n m k trên t ng KVM,
đây là m t t p các API đ nh ngh a lõi c a ngôn ng J2ME. M c đích c a t ng
-- Trang 15 --
Lu n v n t t nghi p
này là cung c p m t t p t i thi u các th vi n (các l p và các ph
ng th c ) cho
phép m t ng d ng Java ch y trên thi t b di đ ng. T p các API h u d ng và
chuyên bi t h n đ
t ng
CLDC
c ch a trong t ng hi n tr ng - profile layer, nh ng chính
này
Các CLDC API đ
cung
c p
c
s
cho
t ng
hi n
tr ng.
c đ nh ngh a v i s h p tác v i 18 công ty là b ph n c a
JCP (Java Community Process). Nhóm này giúp b o đ m r ng các API đ
c
đ nh ngh a s h u d ng và thi t th c cho c nhà phát tri n l n nhà s n xu t thi t
b di đ ng.
Hình 6: T ng quan v CLDC.
J2SE
CLDC
CDC
CDC
CLDC
J2SE
CDC # O
J2SE
CLDC # O
2.2.2.1. Yêu c u ph n c ng dành cho CLDC:
Khi đ ra yêu v ph n c ng vi c xem xét các chi ti t nh b x lý, b
nh … và các thành ph n m m hi n có trên các thi t b di đ ng là vi c vô
cùng quan tr ng. Nh m m c đích ph c v t i đa các thi t b hi n có trên th
tr
ng, CLDC ch đ ra các yêu c u v b nh và không đ ra yêu c u nào
cho các thành ph n khác. Yêu c u t i thi u đ có th s d ng CLDC nh sau:
128 kilobytes đ ch y JVM và các th vi n c a CDLC. Không phân bi t
lo i b nh s d ng (Rom, Flash,…..), b nh c a thi t b ph i b o l u
đ
c n i dung lâu dài, ngay c khi ng t đi n. B nh này th
ng đ
c
g i là nonvolatile memory.
32 kilobytes b nh tr ng đ c p phát các đ i t
th
ng đ
c g i là volatile memory (hay còn đ
-- Trang 16 --
ng (objects). B nh này
c g i là heap).
Lu n v n t t nghi p
2.2.2.2. Yêu c u ph n m m dành cho CLDC:
CLDC có yêu c u t i thi u v m t ph n m m. H đi u hành ph i t
ng
thích v i JVM và có ch c n ng qu n lý các ng d ng Java nh :
Cho phép ch n và kích ho t ng d ng.
Cho phép g b
ng d ng kh i thi t b .
2.2.2.3. S khác bi t gi a CLDC 1.0 và CLDC 1.1
Các đ c t c a JCP đ
c gán các s JSR (Java Specification Request). Quy
đ nh CLDC phiên b n 1.0 đ
s JSR – 139. D
c gán s JSR – 30 và phiên b n 1.1 đ
c gán
i đây là s khác bi t chính c a 2 phiên b n:
Ki u s th c đ
c h tr , 2 class Float và Double đ
trong CDLC 1.1 và đ ng th i c ng kèm theo nh ng ph
c đ a thêm vào
ng th c h tr
cho 2 class này.
Thi t k l i nh ng class Calendar/Date/TimeZone so v i J2SE.
Nh ng thread hi n t i đã có ph
có th ng t chúng b i ph
ng th c Thread.getName() và chúng ta
ng th c Thread.interrup()(2).
Vi c b t l i đã tr nên d hi u h n, có đ a thêm vào m t l p m i đó là
NoClassDefFoundError.
Nhi u thay đ i trên các th vi n không quan tr ng, nh là thêm các
tr
ng và các ph
ng th c nh :
o Boolean.TRUE and Boolean.FALSE
o String.intern()
o Date.toString()
o Random.nextInt(int n)
Vùng nh nh nh t đ
c nâng lên t 160 – 192 kilobyte, ch y u là do
thêm vào ki u s th c.(4)
2.2.2.4. Danh sách các l p mà CLDC cung c p.
Bên d
i đây là các l p n m trong CLDC:
L p h th ng.
java.lang.Object
java.lang.Class
java.lang.Runtime
-- Trang 17 --
Lu n v n t t nghi p
java.lang.System
java.lang.Thread
java.lang.Runnable
java.lang.String
java.lang.StringBuffer
java.lang.Throwable
L p nh p xu t.
java.io.InputStream
java.io.OutputStream
java.io.ByteArrayInputStream
java.io.ByteArrayOutputStream
java.io.DataInput (interface)
java.io.DataOutput (interface)
java.io.DataInputStream
java.io.DataOutputStream
java.io.Reader
java.io.Writer
java.io.InputStreamReader
java.io.OutputStreamWriter
java.io.PrintStream
L p t p h p.
java.util.Vector
java.util.Stack
java.util.Hashtable
java.util.Enumeration (interface)
L p ki u d li u.
java.lang.Boolean
java.lang.Byte
java.lang.Short
java.lang.Integer
java.lang.Long
-- Trang 18 --
Lu n v n t t nghi p
java.lang.Character
L p ngày gi .
java.util.Calendar
java.util.Date
java.util.TimeZone
L p ti n ích.
java.util.Random
java.lang.Math
L p ngo i l .
java.lang.Exception
java.lang.ClassNotFoundException
java.lang.IllegalAccessException
java.lang.InstantiationException
java.lang.InterruptedException
java.lang.RuntimeException
java.lang.ArithmeticException
java.lang.ArrayStoreException
java.lang.ClassCastException
java.lang.IllegalArgumentException
java.lang.IllegalThreadStateException
java.lang.NumberFormatException
java.lang.IllegalMonitorStateException
java.lang.IndexOutOfBoundsException
java.lang.ArrayIndexOutOfBoundsException
java.lang.StringIndexOutOfBoundsException
java.lang.NegativeArraySizeException
java.lang.NullPointerException
java.lang.SecurityException
java.util.EmptyStackException
java.util.NoSuchElementException
java.io.EOFException
-- Trang 19 --
Lu n v n t t nghi p
java.io.IOException
java.io.InterruptedIOException
java.io.UnsupportedEncodingException
java.io.UTFDataFormatException
L p Error
java.lang.Error
java.lang.VirtualMachineError
java.lang.OutOfMemoryError
2.2.3. MIDP
nh ngh a:
2.2.3.1.
ây là t ng n m k trên t ng CLDC, đ nh ngh a dành riêng cho các thi t
b di đ ng và là thành ph n chính trong J2ME. CLDC ch cung c p các API
đ n gi n, gi v n u mà Sun không cung c p MIDP thì ng
i l p trình s
ph i xây d ng l i t t c các giao di n. MIDP cung c p các ch c n ng c b n
cho h u h t các dòng thi t b di đ ng ph bi n nh t nh các máy đi n tho i di
đ ng và các máy PDA. Tuy nhiên, vì ph i xây d ng th vi n cho m t thi t b
r t h n ch v tài nguyên nên MIDP c ng có nh ng gi i h n c a nó.
2.2.3.2. Nh ng ch c n ng mà MIDP khơng h tr :
Khơng h tr phép tính d u ph y đ ng (floating point) là do tính này đòi
h i r t nhi u tài nguyên CPU và ph n l n các CPU cho các thi t b di
đ ng khơng h tr phép tính này.
Không h tr b n p class - Class Loader
H tr
tr
t khóa finalize() nh trong J2SE: Vi c “d n d p“ tài nguyên
c khi nó b xóa đ
c đ y v phía các l p trình viên.
Khơng h tr JNI
Không h tr nhi u cho thao tác b t l i
Ph n l n các th vi n API cho Swing và AWT không th s d ng đ
c
trong MIDP
Khơng h tr các tính n ng qu n lý file và th m c:
ây có th làm b n
ng c nhiên nh ng th c t là các thi t b J2ME khơng có h tr các thi t b
l u tr thông th
ng nh
c ng v.v. Tuy nhiên, đi u đó khơng có ngh a
-- Trang 20 --
Lu n v n t t nghi p
là b n ph i m t đi m i d li u quan tr ng m i khi t t máy, Sun đã cung
c p m t ch c n ng khác t
ng đ
ng g i là Record Management system
(RMS) đ cung c p kh n ng l u tr cho các thi t b này.
2.2.3.3. Nh ng ch c n ng mà MIDP cung c p.
Các l p và ki u d li u: Ph n l n các l p mà các l p trình viên Java quen
thu c v n cịn đ
c gi l i ví d nh các l p trong gói java.util nh Stack,
Vector và Hastable c ng nh Enumeration.
H tr đ i t
ng Display:
h tr duy nh t m t đ i t
úng nh tên g i m t ch
ng Display là đ i t
ng trình MIDP s
ng qu n lý vi c hi n th
d li u trên màn hình đi n tho i.
H tr Form và các giao di n ng
i dùng
H tr Timer và Alert
Cung c p tính n ng Record Management System (RMS) cho vi c l u tr
d li u
Ngoài ra vào tháng 11 n m 2003 Sun đã tung ra MIDP 2.0 v i hàng lo t
tính n ng khác đ
c cung c p thêm so v i b n 1.0. Nh ng c i ti n n i b t
so v i MIDP 1.0.
2.2.3.4. Nh ng yêu c u dành cho MIDP.
Yêu c u ph n c ng:
Màn hình ít nh t ph i có 96 x 54 pixels.
Có ít nh t 128 kilobytes b nh non-volatile đ ch y các thành ph n
c a MIDP.
Có ít nh t 8 kilobytes b nh non-volatile đ l u các c u hình ch
ng
trình và d li u.
Có ít nh t 32 kilobytes đ ch y Java.
Có k t n i không dây (wireless network).
Yêu c u ph n m m:
M c dù h đi u hành c a t ng thi t b có th khác nhau nh ng ph i đáp
ng đ
c các yêu c u t i thi u sau:
H đi u hành ph i h tr vi c x lý ng t, x lý exception và h tr x
lý đ h a bitmap đ xu t d li u ra màn hình.
-- Trang 21 --
Lu n v n t t nghi p
H đi u hành ph i nh n đ
c tín hi u nh p li u và chuy n d li u đó
cho máy o Java.
H đi u hành ph i h tr vi c đ c và ghi vào b nh non-volatile.
Khơng địi h i h đi u hành ph i đ nh ngh a file system nh ng ph i
cho phép ghi d li u d ng persistent (không b m t khi ng t máy, t t
đi n).
Ph i h tr truy xu t m ng, đ c bi t ph i có tính n ng đ c và ghi d
li u thông qua m ng không dây.
2.2.3.5. Các d ng profile.
Mobile Information Device Profile (MIDP) đ nh ngh a các hàm API cho
các thành ph n giao di n, nh p li u và x lý s ki n, l u tr , k t n i m ng
và x lý th i gian,… phù h p v i màn hình hi n th và kh n ng x lý c a
các thi t b di đ ng. Profile MIDP đ
c đ nh ngh a trên n n t ng c a
CLDC. Ngoài ra, chúng ta còn m t s Profile tiêu bi u khác nh :
PDA Profile: t
ng ng MIDP, nh ng v i th tr
ng là các máy PDA
v i màn hình và b nh l n h n.
Foundation Profile: cho phép m r ng các tính n ng c a CDC v i ph n
l n các th vi n c a b Core Java 2 1.3.
Ngồi ra cịn có Personal Basis Profile, Personal Profile, RIM Profile,
Game Profile.
L u ý: Lu n v n ch y u ch đ c p đ n Profile MIDP và các th vi n liên quan
đ ph c v cho vi c vi t ng d ng trên đi n tho i di đ ng.
2.2.3.6. S khác nhau gi a MIDP 1.0 và MIDP 2.0.
B ng 1: S c i ti n c a MIDP 2.0 so v i MIDP 1.0
Lo i
M ng
c tr ng
H tr giao th c HTTPS, download qua m ng an tồn h n.
Ki m sốt vi c k t n i gi a máy di đ ng và server. Ví d nh
các ch
ng trình khơng th k t n i t i server n u khơng có s
ch p thu n c a ng
Âm thanh
i s d ng.
Thêm các API h tr Multimedia. M t trong nh ng c i ti n
-- Trang 22 --
Lu n v n t t nghi p
h p d n nh t c a MIDP 2.0 là t p các API media c a nó. Các
API này là m t t p con ch h tr âm thanh c a Mobile Media
API (MMAPI).
UI (Giao di n)
M r ng các tính n ng c a Form và Item.
C i ti n vi c b trí các cơng c .
Các đi u khi n đ
c c i ti n t t h n.
Có th xây d ng các đi u khi n riêng.
Games
H tr l p Graphics.
H tr Game API: Có l Sun đã k p nh n ra th tr
ng đ y
ti m n ng c a các thi t b di đ ng trong l nh v c Game. V i
MIDP 1.0 thì các l p trình viên ph i t mình vi t code đ qu n
lý các hành đ ng c a nhân v t c ng nh qu n lý đ h a. Vi c
này s làm t ng kích th
c file c a s n ph m c ng nh vi c
xu t hi n các đo n mã b l i.
ch
ng l i nh t t Game
API trong MIDP 2.0 khơng ch là các l p trình viên Game mà
cịn là các l p trình viên c n s d ng các tính n ng đ h a cao
c p. Ý t
ng c b n c a Game API là vi c gi đ nh r ng m t
màn hình game là t p h p các layer (l p). Ví d nh : trong m t
game đua xe thì màn hình n n là m t layer, con đ
layer và chi c xe đ
c xem nh
V i Game API nhà phát tri n còn đ
ng là m t
đang n m trên layer khác.
c cung c p các tính n ng
nh qu n lý các thao tác bàn phím.
Hình nh
M t trong nh ng c i ti n h p d n cho các nhà phát tri n MIDP
là vi c bi u di n hình nh d
i d ng các m ng s nguyên, cho
phép MIDlet thao tác v i d li u hình nh m t cách tr c ti p.
2.2.3.7. Danh sách l p mà MIDP cung c p.
Danh sách các l p ti n ích.
java.util.Timer
java.util.TimerTask
java.lang.IllegalStateException
Danh sách các l p giao di n.
-- Trang 23 --