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
ủ
ahi
ệ
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
ệ
ntr
ạ
ng và các API khác ngoài MIDP
đượ
c dùng cho
ứ
ng d
ụ
ng. Ví d
ụ
, có th
ể
có hi
ệ
ntr
ạ
ng PDA
đị
nh ngh
ĩ
a các l
ớ
p và ph
ươ
ng th
ứ
c h
ữ
u d
ụ
ng cho vi
ệ
c t
ạ
o các
ứ
ng d
ụ
ngPDA (l
ị
ch, s
ổ
h
ẹ
n, s
ổ
đị
a ch
ỉ
,…). C
ũ
ng có th
ể
có m
ộ
t hi
ệ
n tr
ạ
ng
đị
nh ngh
ĩ
a các APIcho 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 bluetoothAPI là
đặ
c t
ả
JSR - 82 v
ớ
i JSR là vi
ế
t t
ắ
t c
ủ
a Java Specification Request.
1 Máy
ả
o Java (hay KVM)
Vai trò c
ủ
a máy
ả
o Java hay KVM là d
ị
ch mã bytecode
đượ
c sinh ra t
ừ
ch
ươ
ng trìnhJava
đ
ã biên d
ị
ch sang ngôn ng
ữ
máy. Chính KVM s
ẽ
chu
ẩ
n hóa output c
ủ
a cácch
ươ
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
ệ
nhkhá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
ệ
nhcho 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
ỗ
ilo
ạ
i thi
ế
t b
ị
di
độ
ng. Hình 2
đ
ây bi
ể
u di
ễ
n ti
ế
n trình xây d
ự
ng
ứ
ng d
ụ
ng MIDlet hoànch
ỉ
nh và vai trò c
ủ
a KVM.
Hình 2. Ti
ế
n trình xây d
ự
ng MIDlet
Quá trình phát tri
ể
n
ứ
ng d
ụ
ng MIDlet v
ớ
i IDE (Môi tr
ườ
ng phát tri
ể
n tích h
ợ
p-Intergrated Development Environment):L
ậ
p trình viên: T
ạ
o các t
ậ
p tin ngu
ồ
n JavaB
ướ
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).Trên IDE: B
ộ
biên d
ị
ch Java (Java Compiler): Biên d
ị
ch mã ngu
ồ
n thành mãbytecodeB
ộ
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
ậ
ptin *.class và s
ẽ
có m
ộ
t t
ậ
p tin *.class sinh ra cho m
ỗ
i l
ớ
p Java.Trên IDE: B
ộ
ti
ề
n ki
ể
m tra (Preverifier): Ki
ể
m tra tính h
ợ
p l
ệ
c
ủ
a mã bytecodeM
ộ
t trong nh
ữ
ng yêu c
ầ
u an toàn c
ủ
a J2ME là b
ả
o
đả
m mã bytecode chuy
ể
n choKVM 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