1. Trang chủ
  2. » Luận Văn - Báo Cáo

Lập trình ứng dụng mobile bằng java khóa luận tốt nghiệp đại học

49 13 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 49
Dung lượng 2,6 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

T ng máy o Java Java Virtual Machine Layer .... File JAD Java Application Descriptor File : .... Các ph ng th c trong MIDlet ..... Command và CommandListener.. Item và ItemStateListener

Trang 1

ΤΠ.Η 唄 ΧΗ⊆ ΜΙΝΗ – Ν;Μ 2009

Trang 2

Λυ ν 〈ν đ đ χ τη χ ηι ν τρονγ m τ τη ι γιαν δ◊ι, ϖ◊ đψ λ◊ τη◊νη πη m λ ν νη τ m◊ τι τη χ ηι ν đ χ τρονγ θυ〈 τρνη η χ τ π τ ι τρ νγ Νγο◊ι σ χ γ νγ, ν λ χ χ α β ν την, χ∫ν νη ν σ γιπ đ χ α νηι υ νγ ι đ τι χ⌠ τη ηο◊ν τηι ν đ χ λυ ν 〈ν νη νγ◊ψ ναψ

υ τιν, χον ξιν ϖ χνγ βι τ ν Βα Μ , đ χ⌠ χνγ σινη τη◊νη, δ νγ δ χ, τη νγ ψυ ϖ◊ χη m σ⌠χ đ χηο χον χ⌠ đ χ νγ◊ψ ηm ναψ

Τι ξιν χ m ν χ〈χ τη ψ χ Κηοα Χνγ νγη τηνγ τιν ϖ◊ χ〈χ τη ψ χ τρ νγ ι Η χ

Μ ΤΠ.ΗΧΜ đ τρυψ ν đ τ νη νγ κι ν τη χ, κινη νγηι m θυ β〈υ τρονγ θυ〈 τρνη η χ τ π ϖ◊ νγηιν χ υ

Εm ξιν χην τη◊νη χ m ν τι ν σ Νγυψ ν ς ν Ηι π, γι νγ ϖιν Κηοα Χνγ νγη τηνγ τιν – τρ νγ ι Η χ Β〈χη Κηοα Τπ.ΗΧΜ đ τ ν τνη η νγ δ ν, đ νη η νγ, γ⌠π

Trang 3

CH NG 1: M C TIÊU VÀ N I DUNG TÀI 4

1.1 t v n đ 4

1.2 M c tiêu đ t ra cho đ tài 5

1.3 N i dung .6

CH NG 2: T NG QUAN V J2ME 7

2.1 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: B MIDLET 26

3.1 NH NGH A: 26

3.2 CÁC D NG MIDLET 26

3.2.1 ng d ng đ n (standalone application) 26

3.2.2 ng d ng n i m ng (networked application) 26

3.3 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 NG 4: GIAO DI N H A 33

4.1 QU N LÝ VI C HI N TH VÀ B T S KI N .35

Trang 4

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 H A C P CAO .42

4.2.1 Screen: 42

4.2.2 Form: 42

4.2.3 Item: 43

4.2.3.1 DateField: 44

4.2.3.2 Gauge: 45

4.2.3.3 StringItem: 47

4.2.3.4 TextField: 47

4.2.3.5 ChoiceGroup: 50

4.2.3.6 Image: 53

4.2.3.7 ImageItem: 54

4.2.4 TextBox 56

4.2.5 Alert 58

4.2.6 AlertType: 60

4.2.7 List: 61

4.2.7.1 Các d ng c a list 61

4.2.7.2 B t s ki n cho các đ i t ng List 62

4.2.7.3 So sánh gi a l p List và l p ChoiceGroup: 62

4.2.8 Ticker: 64

4.3 H A C P TH P 64

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

82

Trang 5

5.1 L u tr thông tin v i RMS 82

5.1.1 RecordStore 83

5.1.2 RecordEnumeration 91

5.1.3 S p x p các b ng RecordComparator 93

5.1.4 L c record v i RecordFilter 95

5.1.5 RecordListener 96

5.2 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 Cài đ t Jbuilder 117

6.1.2 Cài đ t SDK cho Nokia 121

6.1.3 Quá trình xây d ng 1 MIDlet 127

6.1.3.1 Quá trình đ u tiên: T o m i m t project 127

6.1.3.2 Quá trình th hai: T o m t l p MIDlet 131

6.1.4 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 c trên thi t b di đ ng 141

6.2.1.1 Ràng bu c v ph n c ng 141

6.2.1.2 Ràng bu c v ph n m m 142

6.2.2 Nh ng ràng bu c đ i v i ng d ng 142

CH NG 7: 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 6

CH NG 1: M C TIÊU VÀ N I DUNG TÀI

nh m i n i Ngày nay các thi t b di đ ng đã tr nên r t ph bi n và đ c s d ng

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 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 i dùng nh ng ti n ích cao c p nh t v i các công ngh tiên ti n

nh t Gi đây, ng 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 luôn đò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 là m t l i th r t l n c a ngôn ng Java Nh chúng ta đã bi t, ban đ u Java đ c xây d ng ch g m m t phiên

b n duy nh t, ngày nay đ c bi t đ n v i tên J2SE (Java 2 Standard Edition) v i

Trang 7

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

h 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 đ c đ xây d ng ch ng trình đ n gi n, có các ti n ích ph c v nhu c u c a ng 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 8

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 đ c trên Mobile

 Xây d ng ng d ng game caro đ demo

Trang 9

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 đ t đ c m c tiêu này, J2ME đ 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

Khái ni m đi n tho i di đ ng là t ng đ i r ng l n Chúng bao g m nh ng thi t b

có kích th 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 10

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 ng h n cung c p cho l p trình viên nhi u giao di n l p trình 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 đ c biên d ch nó đ c chuy n đ i thành mã bytecode Mã bytecode này sau đó đ 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 11

 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 dch và thông d ch c a mã ngu n java

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

KVM (Kilobyte Virtual Machine)

Trang 12

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 đ c s d ng trong nh ng môi tr ng khác nhau Các Hotspot VM là m c đ nh máy o đ 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 13

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):

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 yê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 đ c yêu c u h tr

ki u float và double

Trang 14

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 đ c dùng cho ng d ng Ví d , có th có

hi n tr 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 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 nguyên x

lý, ngoà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 ng th c finalize: Trong J2SE, chúng ta có th khai báo ph ng th c finalize (t ng t nh ph ng th c destructor) Garbage Collector s g i ph ng th c này tr c khi h y b m t đ i t ng, ph ng th c này th ng đ c dùng đ thu

h i các tài nguyên h th ng nh sockets, file handle,….tr 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 ng finalize, đi u này có ngh a là không có

 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 15

 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

 Ti n ki m tra (pre-verification): Tr c khi m t l p đ c n p vào thi t b ,

m t ph n m m s đ c s d ng đ thêm vào m t s thông s b sung vào file class Quá 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 đ c “ti n ki m tra” s t ng dung l 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 Quá 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.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 hoàn chnh và vai trò c a KVM

Trang 16

Hình 5:Ti n trình xây d ng m t MIDlet

 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 ti n ki m tra tr c khi chúng

có th đ c download v thi t b di đ ng Vi c ti n ki m tra đ c xem là

m t ph n c a môi tr ng phát tri n làm cho KVM có th đ c thu nh h n

T p tin ngu n java

T p tin JAR

Thi t b đích

Tr m phát tri n

Trang 17

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 đó đã đ c ti n ki m tra Thu c tính này t ng thêm kho ng 5% kích th 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ó quá trình ti n ki m tra này thì thi t b di đ ng s t ch i 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 đ c ki m tra trên đi n tho i di đ ng và sau đó đ c phân ph i cho ng 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

Trang 18

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 đ c ch a trong t ng hi n tr ng - profile layer, nh ng chính

Các CLDC API đ 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

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 ng (objects) B nh này

th ng đ c g i là volatile memory (hay còn đ c g i là heap)

CLDC CDC J2SE

CDC

CLDC

Trang 19

 Thi t k l i nh ng class Calendar/Date/TimeZone so v i J2SE

Trang 22

â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 t khóa finalize() nh trong J2SE: Vi c “d n d p“ tài nguyên

tr 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 23

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: úng nh tên g i m t ch ng trình MIDP s

 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 24

 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

 PDA Profile: t ng ng MIDP, nh ng v i th tr ng là các máy PDA

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

M ng  H tr giao th c HTTPS, download qua m ng an toàn h n

 Ki m soá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 i s d ng

Âm thanh  Thêm các API h tr Multimedia M t trong nh ng c i ti n

Ngày đăng: 12/01/2022, 22:36

HÌNH ẢNH LIÊN QUAN

Hình 1: Các thành ph n c a J2ME. - Lập trình ứng dụng mobile bằng java khóa luận tốt nghiệp đại học
Hình 1 Các thành ph n c a J2ME (Trang 9)
Hình 2: C u trúc c a thi t b  MID. - Lập trình ứng dụng mobile bằng java khóa luận tốt nghiệp đại học
Hình 2 C u trúc c a thi t b MID (Trang 10)
Hình 4: Các phiên b n khác nhau c a java. - Lập trình ứng dụng mobile bằng java khóa luận tốt nghiệp đại học
Hình 4 Các phiên b n khác nhau c a java (Trang 12)
Hình 5: Ti n tr ình xây d ng m t MIDlet . - Lập trình ứng dụng mobile bằng java khóa luận tốt nghiệp đại học
Hình 5 Ti n tr ình xây d ng m t MIDlet (Trang 16)
Hình 6: T ng quan v  CLDC . - Lập trình ứng dụng mobile bằng java khóa luận tốt nghiệp đại học
Hình 6 T ng quan v CLDC (Trang 18)
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ập trình ứng dụng mobile bằng java khóa luận tốt nghiệp đại học
nh nh  M t trong nh ng c i ti n h p d n cho các nh à phát tri n MIDP (Trang 25)
Hình 7: Hi n th  k t qu  vi c truy xu t  các thông tin trong t p tin Jar. - Lập trình ứng dụng mobile bằng java khóa luận tốt nghiệp đại học
Hình 7 Hi n th k t qu vi c truy xu t các thông tin trong t p tin Jar (Trang 33)
Hình 8: Vòng  đ i c a m t MIDlet. - Lập trình ứng dụng mobile bằng java khóa luận tốt nghiệp đại học
Hình 8 Vòng đ i c a m t MIDlet (Trang 34)
Hình 9: S  đ  các l p trong giao di n đ  h a. - Lập trình ứng dụng mobile bằng java khóa luận tốt nghiệp đại học
Hình 9 S đ các l p trong giao di n đ h a (Trang 35)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm