lập trình ứng dụng trên thiết bị di động - Pdf 18


1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Khúc Thanh Sơn

LẬP TRÌNH ỨNG DỤNG TRÊN THIẾT BỊ DI ĐỘNG

KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY

Ngành: Công nghệ thông tin



LẬP TRÌNH ỨNG DỤNG TRÊN THIẾT BỊ DI ĐỘNG

KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY

Ngành: Công nghệ thông tin Cán bộ hướng dẫn: ThS Đào Ngọc Phong
Cán bộ đồng hướng dẫn: PGS TS Hồ Sĩ Đàm
HÀ NỘI – 2010


TÓM TẮT NỘI DUNGNgày nay, ngôn ngữ J2ME và lập trình trên thiết bị di động nói chung đang ngày
càng phát triển rộng rãi đi kèm với sự bùng nổ về thị trường điện thoại di động. Cùng
với sự gia tăng về số lượng di động thì các tính năng dành cho di động cũng tăng theo
tương ứng. Hàng loạt các tính năng cao cấp được giới thiệu như chụp hình, nghe
nhạc… và đặc biệt là sử dụng các chương trình không phải do nhà sản xuất điện thoại
cung cấp. Đây được coi là cuộc cách mạng trong lĩnh vực di động, nó biến chiếc điện
thoại nhỏ bé thành một chiếc máy tính thu nhỏ, với những chủng loại điện thoại này ta
có thể đọc báo, tiểu thuyết, tra từ điển, bản đồ và nhất là mang cả thế giới giải trí đến
bên cạnh, những bản nhạc hay, những game hay luôn luôn sẵn sàng để sử dụng. Để
góp phần cho sự phát triển đó ngoài yếu tố phần cứng thì nền tảng phần mềm là yếu tố
quyết định vì các hãng sản xuất di động khác nhau thì sử dụng công nghệ khác nhau.
Làm sao để các thiết bị phần cứng khác nhau có thể sử dụng chung một nền tảng phần
mềm? Đó chính là nền tảng J2ME. Và đây cũng được coi là một trong những lợi thế
rất lớn của J2ME.

Trong đề tài của mình,em sẽ đi nghiên cứu về công nghệ J2ME và cách thức sử
dụng J2ME để lập trình trên di động.Bản báo cáo khóa luận của em được trình bày
theo 4 chương với nội dung cụ thể như sau:
1. Chương 1: Tổng quan về lập trình trên thiết bị di động

Chương này sẽ nói sơ lược về thực tại các ứng dụng trên di động, các đặc điểm cũng
như công nghệ, các công cụ lập trình khác nhau.

2. Chương 2: Giới thiệu về ngôn ngữ J2ME

Chương này sẽ nói về lịch sử hình thành, các phiên bản và các đặc điểm của ngôn
ngữ J2ME.

3.2.3 Lớp MIDlet 26
3.2.4 Lớp MIDletStateChangeException 28
3.2.5 Lớp Display 29
3.2.6 Lớp Displayable 30
3.2.7 Lớp Command và CommandListener 31
3.2.8 Lớp Item và ItemStateListener 34
3.3 Các lớp giao diện trong J2ME 36
3.3.1 Screen 37
3.3.2 Form 38
3.3.3 Item 39
3.3.4 StringItem 40
3.3.5 Image and ImageItem 40
3.3.6 Canvas 43
3.3.7 Graphics 45
Chương 4. XÂY DỰNG ỨNG DỤNG THỬ NGHIỆM TRÊN DI ĐỘNG 47
4.1 Giới thiệu về ứng dụng 47
4.2 Các chức năng chính 47
4.2.1 Xem album 48
Lập trình ứng dụng trên thiết bị di động

Khúc Thanh Sơn-K51MMT

6
4.2.2 Xem slide 48
4.2.3 Trợ giúp 49
4.2.4 Liên hệ 49
4.2.5 Download 49
4.3 Cách thức làm chương trình 49
4.4.1 Yêu cầu phần mềm 52
4.4.2 Cài đặt phần mềm 53

Configuration
Đặc tả quy định các thư viện gốc J2ME phải hỗ trợ cho một
dòng phần cứng
J2EE Java 2 Enterprise Edition,dành cho các dự án lớn
J2ME Java 2 Micro Edition,dành cho các thiết bị nhỏ
J2SE Java 2 Standard Edition,dành cho PC thông thường
JDK Java Development Kits
KVM K Virtual Machine-máy ảo cho môi trường CLDC
MIDlet Tên gọi chung của các ứng dụng J2ME
MIDP Mobile Information Device Profile
PDA Personal Digital Assistant
Profile Các tập thư viện cấp cao định nghĩa trên nền Configuration
WTK Wireless ToolKits

Lập trình ứng dụng trên thiết bị di động

Khúc Thanh Sơn-K51MMT

8

Danh sách hình vẽ

Hình 1. Các đặc điểm của ngôn ngữ J2ME 15

Hình 2. Các thành phần của J2ME 18

Hình 3. Configurations và các thiết bị 20

Hình 4. So sánh Profile thông thường và Profile mở rộng 22


Hình 20. Màn hình mở WTK 2.5 57

Hình 21. Giao diện ban đầu của WTK 58

Hình 22. Cửa sổ tạo New Project trong WTK 58

Hình 23. Cửa sổ cấu hình cho MIDlet 59

Hình 24. Giao diện khi Build và Run chương trình 59

Hình 25. Giao diện khi khởi động chương trình 60

Hình 26. Giao diện Menu chính của chương trình 61

Hình 27. Giao diện Xem Album 62

Hình 28. Giao diện Xem Slide 63

Hình 29. Giao diện Trợ giúp 64

Hình 30. Giao diện Liên hệ 65

Hình 31. Giao diện Download 66

Hình 32. Giao diện khi tắt chương trình 67

Hình 33. Cửa sổ WTK khi tạo file Jar 68

Hình 34. Cửa sổ Build file Jar của WTK 68



Bảng 9. Các phương thức và chức năng tương ứng của lớp Form 39

Bảng 10. Các phương thức và chức năng tương ứng của lớp Item 40

Bảng 11 Các phương thức và chức năng tương ứng của StringItem 40

Bảng 12. Các phương thức và chức năng của lớp Image 41

Bảng 13. Các phương thức và chức năng của lớp Image 42

Bảng 14. Các phương thức hỗ trợ vẽ của lớp Canvas: 44

Bảng 15. Các phương thức và chức năng của lớp Graphics: 46 Lập trình ứng dụng trên thiết bị di động

Khúc Thanh Sơn-K51MMT

10Chương 1. TỔNG QUAN VỀ LẬP TRÌNH TRÊN THIẾT BỊ DI ĐỘNG

1.1 Thực tế các ứng dụng trên thiết bị di động

1
.
2 Đặc điểm của lập trình ứng dụng trên thiết bị di động

Ngôn ngữ sử dụng chủ yếu để lập trình các ứng dụng trên thiết bị di động là
J2ME. Ngôn ngữ J2ME có kích thước nhỏ gọn, tiện dụng, được hỗ trợ bởi hầu hết các
thế hệ điện thoại mới ra đời, kể cả các hệ điện thoại cũ. J2ME không những là một
ngôn ngữ hướng đến các thiết bị di động mà còn là một ngôn ngữ chính để lập trình
trên các thiết bị gia dụng, thẻ tín dụng điện tử và các thiết bị thông minh khác.

J2ME là một ngôn ngữ nhỏ, gọn nhưng rất chặt chẽ và dễ nắm bắt, với những lập
trình viên đã có kinh nghiệm với Java thì việc lập trình J2ME trở nên rất dễ dàng.
J2ME còn được các tổ chức mã nguồn mở ủng hộ mạnh mẽ và phát triển nhanh chóng.

1.3 Các công nghệ khác

Hai hướng phát triển ứng dụng trên điện thoại di động phổ biến hiện nay là C++
trên hệ điều hành Symbian và J2ME. Các ứng dụng viết trên nền Symbian có ưu thế là
truy cập trực tiếp tài nguyên của điện thoại cũng như là hỗ trợ hệ thống tập tin, thư
mục, như máy tính cá nhân vì được hỗ trợ bởi hệ điều hành. Tuy nhiên hệ điều hành
Symbian lại có kích thước khá lớn nên chỉ có ở các thế hệ điện thoại tương đối cao
cấp, và xây dựng ứng dụng dùng Symbian API cũng phức tạp hơn.

Ngoài ra còn có 1 công nghệ khác đó là lập trình trên Android."Android là một
hệ điều hành dành cho di động sử dụng Linux Kernel",nhưng nó giống 1 "nền tảng"
hơn vì ngoài các chức năng của một hệ điều hành, Google đã trang bị cho Android
những "vũ khí tối tân nhất" mà theo quan điểm của những người sáng tạo ra Android
đã từng khẳng định "đó sẽ là một nền tảng vừa mạnh mẽ vừa linh hoạt".

Java là một công nghệ được hãng Sun Microsystems xây dựng đầu tiên với cái
tên Oak và hiện nay đang phát triển vượt bậc với sự đóng góp của hàng vạn lập trình
viên trên thế giới. Ban đầu, Oak được kỹ sư James Gosling và các cộng sự xây dựng
với mục đích lập trình cho các mặt hàng điện dân dụng với mục tiêu nhỏ gọn và tương
thích được với nhiều loại thiết bị phần cứng khác nhau. Sau đó Oak được sử dụng
trong nhiều dự án như dự án Xanh (Blue Project), dự án Phim theo yêu cầu (Video on
demand Project). Sau một chuyến du lịch tới đảo Java của Indonesia, nhóm phát triển
Oak đã đổi tên Oak thành Java.

Java mà tiền thân là Oak được xây dựng chủ yếu dựa trên bộ công cụ phát
triển (Java Development Kit - JDK) như là bộ thư viện chuẩn trong đó chứa trình biên
dịch, trình thông dịch, trình đóng gói, tài liệu,… Đây chính là nền tảng cho việc phát
triển các ứng dụng Java.

J2ME 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ỏ (micro) có bộ nhớ, khả năng hiển thị và xử lý hạn
chế.

Ban đầu Java được xây dựng chỉ có một phiên bản duy nhất, ngay nay được
biết đến với cái tên J2SE (Java 2 Standard Edition), với phương châm “viết một lần,
dùng trên mọi môi trường” (“Write one,run anywhere”). Java hình thành trên ý tưởng
xây dựng một ngôn ngữ mà lập trình viên viết một lần duy nhất nhưng ứng dụng có
thể chạy trên bất kỳ môi trường nào có hỗ trợ máy ảo Java (Java Virtual Machine). Để
làm được việc này, Java sử dụng một phương thức biên dịch mã nguồn tương đối
khác so với các ngôn ngữ lập trình truyền thống. Bộ biên dịch Java không biên dịch
mã nguồn trực tiếp sang mã máy mà biên dịch sang một dạng mã trung gian mà máy
Lập trình ứng dụng trên thiết bị di động

Khúc Thanh Sơn-K51MMT



Lập trình ứng dụng trên thiết bị di động

Khúc Thanh Sơn-K51MMT

15

2.3 Các đặc điểm khác

J2ME được phát triển từ kiến trúc JavaCard, EmbededJava và PersonalJava của
phiên bản Java 1.1. Đến sự ra đời của phiên bản Java 2 thì Sun quyết định thay thế
PersonalJava bằng một phiên bản mới có tên Java 2 Micro Edition, viết tắt là J2ME.
J2ME được sử dụng cho các thiết bị nhỏ gọn với dung lượng bộ nhớ bé và khả năng
xử lý thấp.

Mục tiêu của Java 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ự. Để làm được
như thế, J2ME được xây dựng bằng các tầng khác nhau để che giấu đi việc
tương tác trực tiếp với phần cứng của thiết bị. Các tầng của J2ME được xây
dựng trên CLDC (Connected Limited Device Configuration):
Hình 1. Các đặc điểm của ngôn ngữ J2ME

Tầng dưới cùng là tầng Phần cứng thiết bị - đây là tầng vật lý bao gồm phần
cứng của thiết bị di động. Các tầng bên trên tầng Phần cứng thiết bị là các tầng trừu
tượng, chúng cung cấp cho lập trình viên nhiều giao diện lập trình thân thiện và dễ
dàng hơn mà không cần quan tâm đến phần cứng. Nói cách khác chúng đóng vai trò
trung gian giúp cho lập trình viên tương tác được với phần cứng mà không cần quan


Ngày nay ngành công nghệ sản xuất thiết bị di động thế giới đang phát triển
một cách nhanh chóng. Các thiết bị di động ngày càng hiện đại hơn, thông minh hơn
và ngày càng có nhiều tính năng nổi bật hơn. Đơn cử như chiếc điện thoại di động,
ngày nay chúng không chỉ đơn thuẩn đảm nhiệm chức năng hội thoại mà còn nhiều
chức năng khác như chụp ảnh, nghe nhạc, xem phim như một trung tâm giải trí di
động. Các thiết bị khác như lò viba, TV…cũng càng ngày được trang bị nhiều tính
năng hiện đại hơn. Nhu cầu phát triển phần mềm cho các thiết bị di động, gia dụng
Lập trình ứng dụng trên thiết bị di động

Khúc Thanh Sơn-K51MMT

17

ngày càng tăng cao và được đánh giá là một ngành công nghệ có thể đem lại nhiều đô
la doanh thu. Một thực tế đặc ra cho các nhà phát triển trên các thiết bị này 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ị hiện
nay trên thị trường rất đa dạng và mang nhiều đặc điểm cũng như cấu hình khác nhau.
Trên thực tế đó, việc 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. Các nhà phát triển Java đã cho ra đời ngôn ngữ 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à một ngôn ngữ nhỏ gọn,
dễ nắm bắt, chặt chẽ và thích hợp với 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 đã 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.

Một số thiết bị hỗ trợ J2ME chúng ta hay gặp như:
-Các lọai thẻ cá nhân như Java Card
-Máy điện thoại di động
-Máy PDA (Personal Digital Assistant - thiết bị trợ giúp cá nhân)

Khúc Thanh Sơn-K51MMT

19

Kiểu và số lượng bộ nhớ
Kiểu và tốc độ bộ vi xử lý
Kiểu mạng kết nối

Do đây là đặc tả nên các nhà sản xuất thiết bị như Samsung, Nokia …bắt buộc
phải thực thi đầy đủ các đặc tả do Sun qui định để các lập trình viên có thể dựa vào
môi trường lập trình nhất quán và thông qua sự nhất quán này, các ứng dụng được tạo
ra có thể mang tính độc lập thiết bị cao nhất có thể. Ví dụ như một lập trình viên viết
chương trình game cho điện thoại Samsung thì có thể sửa đổi chương trình của mình
một cách tối thiểu nhất để có thể chạy trên điện thọai Nokia Hiện nay Sun đã đưa ra 2
dạng Configuration:

CLDC (Connected Limited Device Configuration-Cấu hình thiết bị kết nối giới
hạn): được thiết kế để nhắm vào thị trường các thiết bị cấp thấp (low-end), các thiết bị
này thông thường là máy điện thọai di động và PDA với khoảng 512 KB bộ nhớ. Vì tài
nguyên bộ nhớ hạn chế nên CLDC được gắn với Java không dây (Java Wireless ),
dạng như cho phép người sử dụng mua và tải về các ứng dụng Java, ví dụ như là
MIDlet.

CDC- Connected Device Configuration (Cấu hình thiết bị kết nối): CDC được
đưa ra nhắm đến các thiết bị có tính năng mạnh hơn dòng thiết bị thuộc CLDC nhưng
vẫn yếu hơn các hệ thống máy để bàn sử dụng J2SE. Những thiết bị này có nhiều bộ
nhớ hơn (thông thường là trên 2MB) và có bộ xử lý mạnh hơn. Các sản phẩm này có
thể kể đến như các máy PDA cấp cao, điện thoại web, các thiết bị gia dụng trong gia
đình …


Lập trình ứng dụng trên thiết bị di động

Khúc Thanh Sơn-K51MMT

21

3.1.2 Định nghĩa về Profile:

Profile mở rộng Configuration bằng cách thêm vào các class để bổ trợ các tính
năng cho từng thiết bị chuyên biệt. Cả 2 Configuration đều có những profile liên quan
và từ những profile này có thể dùng các class lẫn nhau. Đến đây ta có thể nhận thấy do
mỗi profile định nghĩa một tập hợp các class khác nhau, nên thường ta không thể
chuyển một ứng dụng Java viết cho một profile này và chạy trên một máy hỗ trợ một
profile khác. Cũng với lý do đó, bạn không thể lấy một ứng dụng viết trên J2SE hay
J2EE và chạy trên các máy hỗ trợ J2ME. Sau đây là các profile tiêu biểu:

-Mobile Information Device Profile (MIDP): profile này sẽ bổ sung các tính năng
như hỗ trợ kết nối, các thành phần hỗ trợ giao diện người dùng … vào CLDC. Profile
này được thiết kế chủ yếu để nhắm vào điện thọai di động với đặc tính là màn
hình hiển thị hạn chế, dung lượng chứa có hạn. Do đó MIDP sẽ cung cấp một giao
diện người dùng đơn giản và các tính năng mạng đơn giản dựa trên HTTP. Có thể nói
MIDP là Profile nổi tiếng nhất bởi vì nó là kiến thức cơ bản cho lập trình Java trên các
máy di động (Wireless Java)

-PDA Profile: tương tự 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 Java2 1.3 Ngoài ra còn có Personal Basis Profile, Personal
Profile, RMI Profile, Game Profile.


Đến đây chúng ta có thể hình dung phần nào kiến trúc tổng thể của một chương
trình J2ME như sau:
Hình 5. Cấu trúc chương trình J2ME

Nếu chương trình được biên dịch với CDC, chương trình sẽ chạy trên các máy ảo
truyền thống và mang các đặc tính như chương trình J2SE.

Nếu chương trình được biên dịch với CLDC, chương trình sẽ chạy với máy ảo
chuyên biệt KVM và những đặc tính riêng do CLDC đòi hỏi. Lập trình ứng dụng trên thiết bị di động

Khúc Thanh Sơn-K51MMT

24

Với chương trình xây dựng bởi MIDP,chúng ta có cấu trúc chuyên biệt sau: Hình 6. Cấu trúc chương trình MIDP

Tầng dưới cùng là hệ điều hành có hỗ trợ máy ảo KVM, bên trên là CLDC và
trên cùng là MIDP Profile. Lúc này khái niệm “Viết một lần, chạy bất cứ môi trường
nào” của Sun không còn đúng hoàn toàn vì đã xuất hiện máy ảo chuyên biệt KVM.
Một số chương trình viết bằng MIDP sẽ không chạy được trên J2SE và ngược lại. Tuy

-Destroyed:Chương trình MIDlet đã giải phóng tất cả tài nguyên và đã được tắt
bởi trình quản lý trên ứng dụng trên thiết bị.

Trích đoạn Image and ImageItem Giao diện khi khởi động xong chương trình
Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status