9324_4.3.29. Xây dựng bản đồ trên điện thoại di động có hỗ trợ Java

luận văn tốt nghiệp

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN CÔNG NGHỆ PHẦN MỀM

NGUYỄN NGỌC DUY QUANG – VŨ BÁ QUANG

XÂY DỰNG BẢN ĐỒ TRÊN ĐIỆN THOẠI
DI ĐỘNG CÓ HỖ TRỢ JAVA

KHOÁ LUẬN CỬ NHÂN TIN HỌC

TP. HCM, 2005

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN CÔNG NGHỆ PHẦN MỀM

NGUYỄN NGỌC DUY QUANG – 0112194

VŨ BÁ QUANG
– 0112395

XÂY DỰNG BẢN ĐỒ TRÊN ĐIỆN THOẠI
DI ĐỘNG CÓ HỖ TRỢ JAVA

KHOÁ LUẬN CỬ NHÂN TIN HỌC

GIÁO VIÊN HƯỚNG DẪN
Thạc sĩ LÊ THỤY ANH

NIÊN KHÓA 2001-2005

HO CHI MINH CITY – MOBILE MAP
Version 1.0 / 07-2005

Siemens SK 65
Siemens SL 65

Sony Ericsson K750
Sony Ericsson P900

Samsung E100
Samsung E710

Nhận xét của giáo viên hướng dẫn

…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….

Nhận xét của giáo viên phản biện

…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….
…………………………………………………………………………………………………………….

i
LỜI CẢM ƠN

Chúng em xin chân thành cảm ơn Quý thầy cô trong Khoa Công nghệ Thông
tin Trường Đại học Khoa học Tự nhiên đã tận tình dạy bảo cho chúng em nhiều
kiến thức bổ ích trong suốt thời gian học tập tại trường cũng như đã tạo điều kiện
cho chúng em được thực hiện đề tài này. Kính chúc các Thầy cô luôn dồi dào sức
khỏe và thành công trong cuộc sống.

Đặc biệt, chúng em xin bày tỏ lòng biết ơn sâu sắc đến thầy Lê Thụy Anh,
người đã tận tình hướng dẫn chúng em trong suốt thời gian thực hiện đề tài, cho
chúng em sự bình tĩnh và tự tin, giúp chúng em rút ra nhiều bài học kinh nghiệm
quý báu mỗi khi chúng em vấp phải những khó khăn. Chúng em khó có thể hoàn
thành được đề tài này nếu không nhờ sự tận tình chỉ bảo của thầy.

Chúng con cảm ơn cha mẹ và gia đình đã sinh ra và nuôi dạy chúng con
khôn lớn, luôn bên cạnh động viên và ủng hộ chúng con trên con đường mà chúng
con đã yêu thích và lựa chọn.

Cảm ơn các bạn sinh viên CNTT khóa 2001. Các bạn đã giúp đỡ, động viên
và hỗ trợ chúng tôi rất nhiều cũng như đóng góp cho chúng tôi nhiều ý kiến quý
báu, qua đó, giúp chúng tôi hoàn thiện hơn cho đề tài.

Mặc dù đã rất nỗ lực, cố gắng nhưng chắc hẳn đề tài vẫn còn nhiều thiếu sót.
Chúng em rất mong nhận được nhiều sự góp ý phê bình của Quý thầy cô, của các
anh chị và các bạn.

Một lần nữa, chúng em xin chân thành cảm ơn !

TP Hồ Chí Minh, tháng 7 năm 2005

Nhóm thực hiện

Nguyễn Ngọc Duy Quang – Vũ Bá Quang

ii
LỜI NÓI ĐẦU

Có thể nói rằng đề tài về bản đồ giao thông tại thành phố Hồ Chí Minh là
một đề tài không mới. Trong các năm qua, đã có nhiều khóa luận của các sinh viên
ngành CNTT nghiên cứu về chủ đề này, trong đó, đáng chú ý nhất là các đề tài của
sinh viên Khoa CNTT Trường ĐH Khoa học Tự nhiên TP.HCM. Các đề tài này đa
số đều được thực hiện rất tốt, hỗ trợ cho người dùng rất nhiều chức năng như : xem
bản đồ, tra cứu thông tin về các đường đi, các địa điểm, tra cứu các tuyến xe buýt…
đặc biệt là chức năng xác định lộ trình để tìm đường đi ngắn nhất giữa hai địa điểm
và hầu hết các đề tài nói trên đều được thực hiện nhắm đến môi trường sử dụng là
các máy tính để bàn hoặc Pocket PC.
Trong thời điểm hiện nay, trên thế giới cũng như tại Việt Nam, thị trường
cho điện thoại di động đang trở nên sôi động hơn bao giờ hết. Một mặt, do thu nhập
của người dân ngày càng được cải thiện cùng với nhu cầu trao đổi thông tin ngày
càng tăng khiến cho nhu cầu sử dụng điện thoại di động cũng tăng theo. Mặt khác,
các nhà sản xuất điện thoại di động nắm bắt được nhu cầu của giới trẻ ưa chuộng
những sản phẩm “high-tech” và cũng do yêu cầu cạnh tranh với nhau nên liên tục
tung ra nhiều sản phẩm mới với nhiều tính năng, cấu hình ngày càng được nâng lên
và giá thành ngày càng giảm. Chiếc điện thoại di động giờ đây không phải là một
món hàng quá xa xỉ. Nhờ đó, ngày càng có nhiều người sở hữu được phương tiện
trao đổi thông tin hữu ích này.
Cùng với sự phát triển của thị trường điện thoại di động là sự phát triển
mạnh mẽ của xu hướng lập trình phần mềm ứng dụng cho các thiết bị này. Phần
mềm cho các điện thoại di động hiện nay rất đa dạng mà đa số là các trò chơi, các
chương trình tiện ích như xử lý ảnh chụp, đổi đơn vị đo lường, từ điển, soạn thảo
văn bản, diệt virus…
Tuy vậy, một ứng dụng về bản đồ giao thông, mà cụ thể là bản đồ thành phố
Hồ Chí Minh dành cho điện thoại di động với các tính năng đã trình bày ở trên thì
gần như chưa có. Có thể nói là “gần như chưa có” bởi vì trước đây, trên một số tạp
chí, diễn đàn tin học cũng có giới thiệu một phần mềm bản đồ thành phố Hồ Chí

iii
Minh, tuy nhiên, phần mềm này cũng chỉ thực hiện được một chức năng là hiển thị
bản đồ. Tuy thế, chức năng này cũng chưa thật tốt do chỉ lưu được ảnh tĩnh của bản
đồ vào tập tài nguyên, vì vậy, không thể phóng to hay thu nhỏ bản đồ, và cũng vì
thế làm cho chương trình có kích thước lớn, tốc độ chậm, không thích hợp cho các
điện thoại có cấu hình trung bình hiện đang được dùng rất phổ biến tại thị trường
Việt Nam.
Với những lý do trên, nhóm chúng em chọn thực hiện đề tài “Xây dựng bản
đồ trên điện thoại di động hỗ trợ Java”. Mục tiêu của đề tài nhằm xây dựng một
phần mềm ứng dụng bản đồ giao thông TP. Hồ Chí Minh bằng ngôn ngữ lập trình
Java, có thể thực thi được trên nhiều loại điện thoại di động khác nhau. Nhờ vào
phần mềm này, người sử dụng có thể xem bản đồ, tra cứu tên đường, tên các địa
điểm, các công trình công cộng như chợ, trường học, bệnh viện, khách sạn…, đặc
biệt là trợ giúp người sử dụng xác định lộ trình ngắn nhất để đi từ địa điểm này đến
một địa điểm khác… Phần mềm này nếu được thực hiện tốt sẽ trở thành một ứng
dụng rất hữu ích, rất thiết thực và tiện dụng đối với nhiều người, đặc biệt là các bạn
trẻ và những người bận rộn trong việc đi lại.
Nói đến lập trình cho điện thoại di động, chúng ta đều hình dung được hai
trở ngại lớn. Thứ nhất, đó là năng lực của bộ vi xử lý trên điện thoại rất yếu và thứ
hai, đó là dung lượng của bộ nhớ rất nhỏ. Điều này gây trở ngại không nhỏ đến việc
tổ chức dữ liệu cho phần mềm, bởi lẽ, dữ liệu về các đường giao thông tại thành phố
Hồ Chí Minh là rất lớn, muốn lưu được toàn bộ dữ liệu này trên chiếc điện thoại di
động là một điều không đơn giản. Ngoài ra, các hạn chế của điện thoại di động cũng
buộc người lập trình phải chọn giải thuật thật hiệu quả và luôn phải tính toán nhằm
tối ưu cho chương trình. Mặt khác, đối với người lập trình, sự hạn chế của thư viện
hàm trong ngôn ngữ Java được hỗ trợ cho điện thoại cũng là một vấn đề không dễ
giải quyết. Những hạn chế đã nêu thật sự là một thách thức lớn mà đề tài bắt buộc
phải vượt qua.
Nội dung của bài báo cáo này được chia thành 7 chương như sau :

iv
– Chương 1 : Tổng quan về lập trình trên điện thoại di động. Chương
này nêu những vấn đề chung về tình hình sử dụng điện thoại di động hiện nay; hoạt
động phát triển phần mềm cho loại thiết bị này; giới thiệu một số phần mềm công
cụ nhằm hỗ trợ cho việc phát triển ứng dụng di động bằng ngôn ngữ lập trình Java.
– Chương 2 : Giới thiệu khái quát về chuẩn J2ME. Phần này trình bày
các mục tiêu, nội dung và định nghĩa các khái niệm quan trọng trong J2ME. Ngoài
ra, chương này cũng trình bày các tính năng, các điểm thuận lợi và hạn chế của bộ
thư viện Java được hỗ trợ cho điện thoại di động.
– Chương 3 : Những khó khăn do hạn chế của J2ME. Chương này trình
bày những ảnh hưởng quan trọng đến việc thiết kế và cài đặt một số tính năng của
đề tài do hạn chế của thư viện Java trên điện thoại di động.
– Chương 4 : Phân tích – thiết kế ứng dụng. Phân tích các yêu cầu nghiệp
vụ, các yêu cầu phi chức năng và đặc tả chi tiết ứng dụng ở mức phân tích, thiết kế.
– Chương 5 : Một số cải tiến nhằm tối ưu hóa chương trình. Do thiết bị
di động hạn chế về năng lực xử lý, dung lượng bộ nhớ và khả năng lưu trữ, chương
này trình bày một số phương pháp, thủ thuật nhằm giúp cho ứng dụng được tối ưu
hóa về tốc độ, tối ưu việc sử dụng bộ nhớ và giảm kích thước cho phần mềm.
– Chương 6 : Thử nghiệm – Hướng dẫn cài đặt và sử dụng. Giới thiệu
một số trình giả lập các điện thoại di động phổ biến trên thị trường được đề tài sử
dụng cho mục đích thử nghiệm; hướng dẫn cài đặt và sử dụng các chức năng của
phần mềm.
– Chương 7 : Tổng kết – Đánh giá. Nhận xét các công việc đã được thực
hiện; trình bày các ưu, khuyết điểm và hướng mở rộng cho phần mềm.
– Phụ lục A : Các thuật ngữ được sử dụng. Liệt kê và giải thích các thuật
ngữ được sử dụng trong chương trình.
– Phụ lục B : Giới thiệu các chương trình giả lập. Mục đích của chương
này nhằm trình bày các tính năng cũng như các yêu cầu về phần cứng, phần mềm
cần thiết để cài đặt chương trình.

v
MỤC LỤC

Trang
Lời cảm ơn …………………………………………………………………………………………………….i
Lời nói đầu ……………………………………………………………………………………………………ii
Mục lục…………………………………………………………………………………………………………v
Danh mục hình …………………………………………………………………………………………….vii
Danh mục bảng ……………………………………………………………………………………………..x

Chương 1 : TỔNG QUAN VỀ LẬP TRÌNH TRÊN ĐIỆN THOẠI DI ĐỘNG..1

1.1. Đôi nét về thị trường điện thoại di động Việt Nam ……………………………….1

1.1.1. Sự phát triển của thị trường thông tin di động…………………………..1

1.1.2. Nhu cầu phát triển phần mềm cho điện thoại di động ………………..2

1.2. Lập trình trên điện thoại di động…………………………………………………………4

1.2.1. Quá trình phát triển ứng dụng J2ME ……………………………………….4

1.2.2. Các J2ME IDE ……………………………………………………………………..5

1.3. Giới thiệu một số công cụ hỗ trợ lập trình J2ME ………………………………….6

1.3.1. J2ME Wireless Toolkit (WTK)……………………………………………….6

1.3.2. Borland JBuiler …………………………………………………………………….9

1.3.3. Sun ONE Studio 5, Mobile Edition ……………………………………….16
Chương 2 : GIỚI THIỆU KHÁI QUÁT VỀ CHUẨN J2ME ………………………..23

2.1. Nền tảng Java…………………………………………………………………………………23

2.2. Sự khác nhau giữa ngôn ngữ Java trên CLDC với Java thông thường……29

2.3. MIDP…………………………………………………………………………………………….32

2.3.1. Định nghĩa………………………………………………………………………….32

2.3.2. Yêu cầu về phần cứng………………………………………………………….32

2.3.3. Các khả năng và hạn chế của MIDP ………………………………………33
Chương 3 : NHỮNG KHÓ KHĂN DO HẠN CHẾ CỦA J2ME……………………36

3.1. Các hàm tô màu………………………………………………………………………………36

3.2. Các hàm vẽ đường…………………………………………………………………………..37

3.3. Vấn đề font chữ………………………………………………………………………………38

3.4. Vấn đề vẽ chuỗi ký tự……………………………………………………………………..39

3.5. Vấn đề về số thực……………………………………………………………………………40
Chương 4 : PHÂN TÍCH – THIẾT KẾ ỨNG DỤNG …………………………………..42

4.1. Khảo sát hiện trạng………………………………………………………………………….42

4.2. Phân tích và xác định yêu cầu…………………………………………………………..43

4.2.1. Danh sách các yêu cầu nghiệp vụ………………………………………….43

4.2.2. Các yêu cầu phi chức năng …………………………………………………..43

4.3. Thiết kế ứng dụng …………………………………………………………………………..44

4.3.1. Lược đồ sử dụng …………………………………………………………………44

4.3.2. Đặc tả Use Case ………………………………………………………………….45

4.3.3. Sơ đồ lớp mức phân tích ………………………………………………………57

4.3.4. Các biểu đồ hoạt động………………………………………………………….64

4.3.4. Sơ đồ lớp mức thiết kế…………………………………………………………70

vi
Chương 5 : MỘT SỐ CẢI TIẾN NHẰM TỐI ƯU HÓA CHƯƠNG TRÌNH…95

5.1. Nội dung và ý nghĩa của việc tối ưu hóa…………………………………………….95

5.2. Tối ưu hóa kích thước chương trình ………………………………………………….95

5.2.1. Các nguyên tắc tối ưu kích thước trong thiết kế chương trình …..95

5.2.2. Tối ưu kích thước chương trình khi đóng gói………………………….99

5.3. Tối ưu hóa về tốc độ………………………………………………………………………104

5.3.1. Khái quát chung ………………………………………………………………..104

5.3.2. Tìm các vị trí cần tối ưu về tốc độ……………………………………….104

5.3.3. Các nguyên tắc tăng tốc cho chương trình…………………………….106

5.4. Tối ưu hóa việc sử dụng bộ nhớ………………………………………………………110

5.4.1. Công cụ theo dõi việc sử dụng bộ nhớ………………………………….110

5.4.2. Các nguyên tắc tối ưu hóa việc sử dụng bộ nhớ…………………….111
Chương 6 : THỬ NGHIỆM – HƯỚNG DẪN CÀI ĐẶT VÀ SỬ DỤNG ……..114

6.1. Cài đặt chương trình trên máy ảo…………………………………………………….114

6.1.1. Trình giả lập Sony Ericsson………………………………………………..114

6.1.2. Trình giả lập Nokia ……………………………………………………………115

6.1.3. Trình giả lập Siemens ………………………………………………………..117

6.1.4. Trình giả lập Samsung ……………………………………………………….120

6.1.5. Trình giả lập chuẩn (Sun Microsystems)………………………………121

6.2. Vấn đề hỗ trợ tiếng Việt có dấu ………………………………………………………123

6.2.1. Hiển thị tiếng Việt trên máy ảo……………………………………………123

6.2.2. Hiển thị tiếng Việt trên thiết bị thật ……………………………………..123

6.3. Hướng dẫn sử dụng chương trình ……………………………………………………124

6.3.1. Chức năng duyệt bản đồ……………………………………………………..124

6.3.2. Chức năng tra cứu địa điểm, tên đường………………………………..124

6.3.3. Chức năng tìm đường đi ngắn nhất giữa hai điểm………………….128

6.3.4. Chức năng trợ giúp, hướng dẫn sử dụng……………………………….131
Chương 7 : TỔNG KẾT – ĐÁNH GIÁ………………………………………………………133

7.1. Ưu điểm……………………………………………………………………………………….133

7.2. Khuyết điểm…………………………………………………………………………………133

7.3. Hướng mở rộng…………………………………………………………………………….134
Phụ lục A : CÁC THUẬT NGỮ ĐƯỢC SỬ DỤNG……………………………………135
Phụ lục B : GIỚI THIỆU CÁC CHƯƠNG TRÌNH GIẢ LẬP…………………….138

B.1. JDK…………………………………………………………………………………………….138

B.2. Công cụ phát triển của hãng thứ ba…………………………………………………138

B.3. Trình giả lập các loại điện thoại di động………………………………………….139

B.3.1. Siemens……………………………………………………………………………139

B.3.2. Sony Ericsson…………………………………………………………………..140

B.3.3. Samsung ………………………………………………………………………….142

B.3.4. Nokia ………………………………………………………………………………145
Tài liệu tham khảo………………………………………………………………………………………147

vii
DANH MỤC HÌNH

Trang

Hình 1-1 : Doanh thu sản xuất phần mềm cho điện thoại di động năm 2004………3
Hình 1-2 : Tạo project J2ME bằng Wizard trong JBuilder ……………………………..10
Hình 1-3 : JBuilder MIDP Designer ……………………………………………………………12
Hình 1-4 : Màn hình gỡ rối của JBuilder………………………………………………………14
Hình 1-5 : Tạo project J2ME bằng Sun ONE Studio 5……………………………………17
Hình 1-6 : Cửa sổ quản lý tập tin của Sun ONE Studio 5 ……………………………….18
Hình 2-1 : Kiến trúc J2ME………………………………………………………………………….24
Hình 2-2 : Các thành phần trong kiến trúc J2ME ………………………………………….26
Hình 2-3 : Quan hệ giữa J2ME configuration và J2SE……………………………………28
Hình 4-1 : Lược đồ sử dụng ……………………………………………………………………….44
Hình 4-2 : Sơ đồ lớp mức phân tích……………………………………………………………..57
Hình 4-3 : Mô tả lớp MainMIDlet ……………………………………………………………….58
Hình 4-4 : Mô tả lớp MainCanvas ……………………………………………………………….59
Hình 4-5 : Mô tả lớp FindObjectForm………………………………………………………….60
Hình 4-6 : Mô tả lớp MessageBox……………………………………………………………….60
Hình 4-7 : Mô tả lớp IndexList ……………………………………………………………………61
Hình 4-8 : Mô tả lớp IndexList ……………………………………………………………………61
Hình 4-9 : Mô tả lớp Places ………………………………………………………………………..62
Hình 4-10 : Mô tả lớp Streets………………………………………………………………………63
Hình 4-11 : Sequence diagram Hiển thị bản đồ……………………………………………..64
Hình 4-12 : Collaboration diagram Hiển thị bản đồ……………………………………….64
Hình 4-13 : Sequence diagram Tìm địa điểm ………………………………………………..65
Hình 4-14 : Collaboration diagram Tìm địa điểm…………………………………………..66
Hình 4-15 : Sequence diagram Tìm đường theo tên……………………………………….67
Hình 4-16 : Collaboration diagram Tìm đường theo tên …………………………………68
Hình 4-17 : Sequence diagram Tìm đường đi ngắn nhất…………………………………69
Hình 4-18 : Collaboration diagram Tìm đường đi ngắn nhất …………………………..69

viii
Hình 4-19 : Sơ đồ lớp mức thiết kế………………………………………………………………70
Hình 4-20 : Thiết kế lớp MainMIDlet…………………………………………………………..72
Hình 4-21 : Thiết kế lớp MainCanvas…………………………………………………………..73
Hình 4-22 : Thiết kế lớp MessageBox ………………………………………………………….76
Hình 4-23 : Thiết kế lớp FindObjectForm…………………………………………………….77
Hình 4-24 : Thiết kế lớp HelpScreen ……………………………………………………………79
Hình 4-25 : Thiết kế lớp IndexList ………………………………………………………………80
Hình 4-26 : Thiết kế lớp SplashScreen …………………………………………………………79
Hình 4-27 : Thiết kế lớp About……………………………………………………………………81
Hình 4-28 : Thiết kế lớp Districts ………………………………………………………………..82
Hình 4-29 : Thiết kế lớp Places……………………………………………………………………84
Hình 4-30 : Thiết kế lớp Streets…………………………………………………………………..85
Hình 4-31 : Thiết kế lớp NodePosition…………………………………………………………89
Hình 4-32 : Sequence diagram Hiển thị bản đồ (mức thiết kế) ………………………..90
Hình 4-33 : Collaboration diagram Hiển thị bản đồ (mức thiết kế)…………………..90
Hình 4-34 : Sequence diagram Tìm địa điểm (mức thiết kế)……………………………91
Hình 4-35 : Collaboration diagram Tìm địa điểm (mức thiết kế)……………………..92
Hình 4-36 : Sequence diagram Tìm đường theo tên (mức thiết kế) ………………….93
Hình 4-37 : Collaboration diagram Tìm đường theo tên (mức thiết kế)…………….93
Hình 4-36 : Sequence diagram Tìm đường ngắn nhất (mức thiết kế) ……………….94
Hình 4-37 : Collaboration diagram Tìm đường ngắn nhất (mức thiết kế)………….94
Hình 5-1 : Mô hình quá trình đóng gói ứng dụng J2ME …………………………………99
Hình 5-2 : Sơ đồ sử dụng Obfuscator …………………………………………………………102
Hình 5-3 : Màn hình giao diện công cụ Profiler …………………………………………..105
Hình 5-4 : Màn hình giao diện công cụ theo dõi việc sử dụng bộ nhớ…………….111
Hình 6-1 : Thử nghiệm ứng dụng trên trình giả lập Sony Ericsson…………………114
Hình 6-2 : Màn hình giao diện trình giả lập Sony Ericsson……………………………115
Hình 6-3 : Thử nghiêm ứng dụng trên trình giả lập Nokia…………………………….116
Hình 6-4 : Kết quả thử nghiệm trên trình giả lập Nokia………………………………..117

ix
Hình 6-5 : Cài đặt ứng dụng trên điện thoại Siemens SK 65………………………….119
Hình 6-6 : Khởi động ứng dụng trên Siemens SK 65……………………………………120
Hình 6-7 : Kết quả thử nghiệm trên trình giả lập Siemens …………………………….121
Hình 6-8 : Kết quả thử nghiệm trên trình giả lập Samsung……………………………122
Hình 6-9 : Kết quả thử nghiệm trên J2ME SDK…………………………………………..122
Hình 6-10 : Các phím di chuyển bản đồ……………………………………………………..124
Hình 6-11 : Kết quả tìm địa điểm ………………………………………………………………126
Hình 6-12 : Màn hình tra cứu tên đường …………………………………………………….127
Hình 6-13 : Kết quả tra cứu tên đường ……………………………………………………….128
Hình 6-14 : Màn hình chọn vị trí ……………………………………………………………….129
Hình 6-15 : Kết quả tìm đường đi ngắn nhất ……………………………………………….130
Hình 6-16 : Màn hình hướng dẫn sử dụng…………………………………………………..132
Hình 6-17 : Màn hình xem thông tin chương trình……………………………………….132
Hình B-1 : Màn hình download JDK 1.4…………………………………………………….138
Hình B-2 : Trình giả lập Siemens ………………………………………………………………140
Hình B-3 : Trình giả lập Sony Erisson………………………………………………………..141
Hình B-4 : Trình giả lập Samsung ……………………………………………………………..144
Hình B-5 : Nokia Developer’s Suite 2.2……………………………………………………..146
Hình B-6 : Trình giả lập của Nokia Developer’s Suite………………………………….146

x
DANH MỤC BẢNG

Trang
Bảng 2-1 : Phân loại CLDC và CDC………………………………………………………….28
Bảng 4-1 : Danh sách các yêu cầu nghiệp vụ………………………………………………43
Bảng 4-2 : Phân tích các thuộc tính lớp MainMIDlet……………………………………58
Bảng 4-3 : Phân tích các phương thức lớp MainMIDlet………………………………..58
Bảng 4-4 : Phân tích các thuộc tính lớp MainCanvas……………………………………59
Bảng 4-5 : Phân tích các phương thức lớp MainCanvas………………………………..59
Bảng 4-6 : Phân tích các phương thức lớp FindObjectForm ………………………….60
Bảng 4-7 : Phân tích các phương thức lớp MessageBox ……………………………….60
Bảng 4-8 : Phân tích các phương thức lớp IndexList ……………………………………61
Bảng 4-9 : Phân tích các phương thức lớp Districts ……………………………………..61
Bảng 4-10 : Phân tích các phương thức lớp Places……………………………………….62
Bảng 4-11 : Phân tích các phương thức lớp Streets………………………………………63
Bảng 4-12 : Danh sách các lớp ………………………………………………………………….71
Bảng 4-13 : Danh sách các thuộc tính lớp MainMIDlet………………………………..72
Bảng 4-14 : Danh sách các phương thức lớp MainMIDlet…………………………….72
Bảng 4-15 : Danh sách các thuộc tính lớp MainCanvas………………………………..74
Bảng 4-16 : Danh sách các phương thức lớp MainCanvas…………………………….75
Bảng 4-17 : Danh sách các thuộc tính lớp MessageBox………………………………..76
Bảng 4-18 : Danh sách các phương thức lớp MessageBox ……………………………76
Bảng 4-19 : Danh sách các thuộc tính lớp FindObjectForm…………………………..77
Bảng 4-20 : Danh sách các phương thức lớp FindObjectForm ………………………78
Bảng 4-21 : Danh sách các thuộc tính lớp HelpScreen………………………………….79
Bảng 4-22 : Danh sách các phương thức lớp HelpScreen ……………………………..79
Bảng 4-23 : Danh sách các phương thức lớp IndexList…………………………………80
Bảng 4-24 : Danh sách các phương thức lớp SplashScreen …………………………..80
Bảng 4-25 : Danh sách các thuộc tính lớp About …………………………………………81
Bảng 4-26 : Danh sách các phương thức lớp About……………………………………..82

xi
Bảng 4-27 : Danh sách các thuộc tính lớp About …………………………………………83
Bảng 4-28 : Danh sách các phương thức lớp About……………………………………..83
Bảng 4-29 : Danh sách các thuộc tính lớp Places…………………………………………84
Bảng 4-30 : Danh sách các phương thức lớp Places……………………………………..85
Bảng 4-31 : Danh sách các thuộc tính lớp Streets ………………………………………..87
Bảng 4-32 : Danh sách các phương thức lớp Streets …………………………………….88
Bảng 5-1 : Bảng so sánh kết quả sử dụng obfuscator………………………………….104

Chương 1 : Tổng quan về lập trình trên điện thoại di động

1
Chương 1 : TỔNG QUAN VỀ LẬP TRÌNH TRÊN ĐIỆN THOẠI DI ĐỘNG
1.1. Đôi nét về thị trường điện thoại di động Việt Nam :
1.1.1. Sự phát triển của thị trường thông tin di động :
Thị trường thông tin di động Việt Nam là một trong những thị trường phát
triển nhanh nhất khu vực Đông Nam Á. Theo đánh giá của BMI – Tập đoàn xuất
bản chuyên nghiên cứu và đánh giá thị trường viễn thông thế giới, năm 2003, thị
trường thông tin di động Việt Nam đạt tốc độ tăng trưởng 43% và năm 2004 là
65%.
Tại Hội nghị quốc tế về thông tin di động lần 2 (2nd Mobiles Vietnam) diễn
ra tại TP.HCM ngày 11 và 12/5 năm 2005, các chuyên gia dự báo trong năm 2005,
tổng số thuê bao di động tại Việt Nam sẽ đạt 7,3 triệu và năm 2008 sẽ lên đến mức
21,2 triệu. Tuy nhiên, Việt Nam vẫn là một trong những quốc gia có mật độ điện
thoại di động thấp nhất ở khu vực châu Á – Thái Bình Dương, do vậy đây sẽ là địa
điểm hấp dẫn để các doanh nghiệp trong nước cũng như các đối tác nước ngoài khai
thác và tìm kiếm cơ hội kinh doanh.
Hiện nay, Việt Nam có 6 nhà khai thác, cung cấp dịch vụ thông tin di động
thuộc 5 doanh nghiệp là : VNPT (Vinafone, Mobifone), Công ty Viễn thông quân
đội (Viettel), Công ty cổ phần viễn thông Sài Gòn (Saigon Postel), Công ty cổ phần
viễn thông Hà Nội (Hanoi Telecom) và Công ty Viễn thông Điện lực (VP Telecom).
Trong đó Hanoi Telecom và VP Telecom dự kiến khai trương mạng vào đầu năm
2006.
Tiềm năng của thị trường thông tin di động Việt Nam là điều được khẳng
định, nhưng vẫn là một ẩn số đối với các nhà phân tích thị trường bởi nhu cầu sử
dụng của người tiêu dùng cũng như khả năng cung cấp của các nhà khai thác vẫn
đang ở mức khám phá ban đầu.
Việt Nam được coi là thị trường rất hấp dẫn trong lĩnh vực thông tin di động.

Chương 1 : Tổng quan về lập trình trên điện thoại di động

2
1.1.2. Nhu cầu phát triển phần mềm cho điện thoại di động :
Điện thoại di động đầu tiên ra đời với chức năng như một chiếc điện thoại
thông thường, đó là gọi và nhận cuộc gọi. Sự phát triển mạnh mẽ của nền kinh tế
ngày càng khẳng định vai trò của thông tin liên lạc đến khả năng thành bại của việc
cạnh tranh trong kinh doanh. Ngoài ra, nhu cầu trao đổi thông tin, giải trí của con
người cũng ngày càng được nâng cao và nhờ vào sự tiến bộ về mặt kỹ thuật, chiếc
điện thoại di động ngày càng có thêm nhiều tính năng mới, đa dạng hơn, tiến bộ hơn
và hiện đại hơn. Màn hình từ đơn sắc chuyển sang màn hình màu, từ hỗ trợ tin nhắn
dạng văn bản (SMS) chuyển sang hỗ trợ tin nhắn có hình ảnh, âm thanh (MMS), hỗ
trợ quay phim, xem phim, chụp ảnh, nghe nhạc…
Năng lực xử lý và lưu trữ của điện thoại di động cũng liên tục được cải tiến.
Các hãng sản xuất đã làm cho chiếc điện thoại trở nên linh động hơn, giúp cho
người sử dụng có thể dễ dàng cấu hình giao diện và các ứng dụng. Đặc biệt, bằng
cách cho phép lập trình viên viết thêm các chương trình ứng dụng, trò chơi cho điện
thoại, chiếc điện thoại di động hiện nay thực sự là một công cụ làm việc, học tập,
vui chơi và giải trí hữu ích đối với mọi người.
Trong vài năm gần đây, hoạt động sản xuất phần mềm cho điện thoại di động
phát triển khá mạnh mẽ. Rất nhiều sản phẩm phần mềm đã ra đời để phục vụ tốt hơn
cho người sử dụng, trong đó, số lượng phần mềm nhiều nhất là các trò chơi, từ điển,
truy cập Internet, trình diệt virus, soạn thảo văn bản và các tiện ích khác. Trong năm
2004, giá trị sản xuất phần mềm cho điện thoại di động trên thế giới đạt 3,1 tỉ USD
và dự đoán sẽ đạt 18,5 tỉ USD vào năm 2009. Doanh thu sản xuất phần mềm cho
điện thoại di động năm 2004 được phân bố như sau :

Chương 1 : Tổng quan về lập trình trên điện thoại di động

3

Hình 1-1 : Doanh thu sản xuất phần mềm cho điện thoại di động năm 2004
Tại châu Á, chỉ riêng Nhật và Hàn Quốc đã chiếm 1,3 tỉ USD, còn lại là
Trung Quốc và Ấn Độ. Tại Việt Nam, doanh thu không đáng kể. Hầu hết các phần
mềm ứng dụng được phát triển dành cho điện thoại di động đều là phần mềm miễn
phí và do các công ty, các trường đại học và nhiều cá nhân thực hiện chủ yếu nhằm
mục đích phục vụ cho lợi ích của cộng đồng. Tuy nhiên, chúng ta vẫn có thể hi
vọng vào tương lai của một thị trường đầy tiềm năng và trong quá trình hội nhập
kinh tế quốc tế, người Việt Nam sẽ có thói quen tôn trọng quyền sở hữu trí tuệ nói
chung và bản quyền phần mềm nói riêng.

Chương 1 : Tổng quan về lập trình trên điện thoại di động

4
1.2. Lập trình trên điện thoại di động :
1.2.1. Quá trình phát triển ứng dụng J2ME :
Thông thường, việc phát triển ứng dụng J2ME được tiến hành qua các giai
đoạn như sau :
a) Viết mã nguồn Java
b) Biên dịch
c) Obfuscate (tùy chọn) :
Obfuscate sẽ loại bỏ các thông tin không cần thiết trong class, chẳng hạn như
tên của các biến cục bộ. Các lớp, phương thức, interface,… cũng được đổi tên để
làm cho chúng ngắn gọn hơn. Một gói đã được obfuscate sẽ bảo vệ các tập tin class
khỏi việc dịch ngược (decompile) và reverse engineering. Ngoài việc bảo vệ mã
nguồn, obfuscate còn giảm kích thước của các tập tin class, làm cho kích thước của
tập tin JAR cũng giảm đi. Việc giảm kích thước rất có ý nghĩa bởi vì các thiết bị
MIDP thường có bộ nhớ bị giới hạn.
d) Pre-verify (tiền kiểm tra).
Bộ kiểm tra (verify) trong J2SE tốn ít nhất là 50 KB, không kể việc tiêu tốn
vùng nhớ heap và thời gian xử lý. Để giảm việc tiêu tốn này cho J2ME, việc kiểm
tra tập tin class sẽ được chia thành hai giai đoạn. Quá trình tiền kiểm tra trước khi
triển khai sẽ thêm các tập tin class các tham số phụ để tăng tốc quá trình kiểm tra
lúc thực thi. Thiết bị sẽ thực hiện quá trình kiểm tra sơ lược bằng cách sử dụng các
tham số phụ được phát sinh trong quá trình tiền kiểm tra.
e) Tạo tập tin JAR
f) Tạo tập tin JAD
g) Thực thi trên trình giả lập thích hợp
h) Triển khai trên thiết bị di động

Chương 1 : Tổng quan về lập trình trên điện thoại di động

5
1.2.2. Các J2ME IDE :
Môi trường phát triển tích hợp (IDE) cải thiện năng suất của lập trình viên
bằng cách cung cấp một tập các công cụ lập trình tích hợp thông qua giao diện đồ
họa (GUI), hỗ trợ công cụ soạn thảo, quản lý project, biên dịch và gỡ rối
(debugger).
Thành viên mới nhất trong gia đình Java là J2ME. Khi nhiều chuyên gia dự
đoán về sự phát triển lớn mạnh của thị trường phát triển các ứng dụng J2ME, các
nhà phát triển IDE đã đưa ra các bản mở rộng cho các sản phẩm IDE của họ để hỗ
trợ thêm J2ME. Ngoài ra, các nhà cung cấp chuyên nghiệp khác cũng đã phát triển
các IDE đơn dành riêng cho J2ME.
Một IDE cho J2ME cần phải cung cấp các tiện ích sau :
a) Quản lý project :
Quản lý các tập tin nguồn và các thông số MIDlet.
b) Trình soạn thảo :
Soạn thảo mã nguồn và các tài nguyên.
c) Build :
Biên dịch, obfuscate và pre-verify mã nguồn.
d) Đóng gói (package) :
Đóng gói các MIDlet thành các tập tin JAR và JAD.
e) Giả lập (emulation) :
Thực thi các MIDlet với một trình giả lập.
f) Gỡ rối (debugger)

Chương 1 : Tổng quan về lập trình trên điện thoại di động

6
1.3. Giới thiệu một số công cụ hỗ trợ lập trình cho J2ME :
1.3.1. J2ME Wireless Toolkit (WTK) :
J2ME Wireless Toolkit (WTK) là một bộ công cụ phát triển J2ME cung cấp
cho các lập trình viên môi trường giả lập, công cụ, tài liệu và các ví dụ cần thiết để
phát triển các ứng dụng MIDP. WTK không phải là một IDE hoàn chỉnh, bởi vì nó
đã bỏ các tính năng soạn thảo và gỡ rối vốn được xem là bắt buộc phải có trong một
IDE. Tuy nhiên, KToolbar, được cung cấp trong bộ WTK là một môi trường phát
triển tối thiểu cung cấp một GUI dành cho việc biên dịch, đóng gói và thực thi các
ứng dụng MIDP.
WTK 2.2 cũng cung cấp các bộ giả lập đã được cải tiến với các tính năng giả
lập, monitor và debug mới. Ngoài ra, WTK cũng có một cơ chế được thêm vào tiến
trình build của KToolbar để cho phép việc tích hợp và thực thi bộ obfuscate Java
bytecode khi đóng gói MIDlet suite.
WTK 2.2 được cải thiện tốc độ và hỗ trợ các API mới, gồm :
ƒ Connected Limited Device Configuration (CLDC) 1.1 (JSR 139)
ƒ Mobile Information Device Profile (MIDP) 2.0 (JSR 118)
ƒ Java Technology for the Wireless Industry (JTWI) 1.0 (JSR 185)
ƒ Wireless Messaging API (WMA) 2.0 (JSR 205)
ƒ Mobile Media API (MMAPI) 1.1 (JSR 135)
ƒ PDA Optional Packages for the J2ME Platform (JSR 75)
ƒ Java APIs for Bluetooth (JSR 82)
ƒ J2ME Web Services Specification (JSR 172)
ƒ Mobile 3D Graphics API for J2ME (JSR 184)
Mỗi project có một thư mục dành riêng trong thư mục apps. Thư mực apps
nằm bên trong thư mục chính của WTK.

Chương 1 : Tổng quan về lập trình trên điện thoại di động

7

Các thư viện của hãng thứ ba có thể được cấu
hình bên trong KToolbar. Ngoài ra, các thư viện cần
thiết cho từng project có thể được chép thủ công vào thư
mục lib bên trong thư mục project. Nếu một thư viện cần
cho tất cả project, nó có thể được chép vào thư mục
apps/lib.
Khi KToolbar project được tạo ra, cấu trúc thư
mục project sẽ được thiết lập. Ngoài ra các tập tin JAD
va manifest cũng được phát sinh dựa vào các thông số
của MIDlet suite đã được xác định. Tuy nhiên, không có
tập tin nguồn nào được phát sinh cho MIDlet. Lập trình
viên phải viết các tập tin nguồn này từ đầu. KToolbar
không hỗ trợ nạp nhiều project trong một GUI. Trình
soạn thảo WTK không cung cấp một trình soạn thảo tích
hợp nào. Thay vào đó, lập trình viên phải sử dụng một
trình soạn thảo của hãng thứ ba.
™ Tạo lập và đóng gói :
KToolBar cung cấp hỗ trợ cho việc biên dịch một dự án. Một dự án được
dịch và tiền kiểm tra chỉ trong một bước thực hiện. Một chức năng khác được dùng
để đóng gói dự án. Gói được tạo ra sẽ chứa tập tin JAR và JAD của MIDlet suite.
WTK được tích hợp công cụ obfuscator là RetroGuard. Công cụ này không được
cung cấp kèm với WTK mà có thể được download miễn phí từ trang web
www.retrologic.com. Để cài đặt, chúng ta chỉ cần chép tập tin retroguard.jar vào thư
mục bin của thư mục cài đặt WTK.
™ Trình giả lập :
WTK cung cấp các giả lập để thực thi ứng dụng MIDP. Các thiết bị giả lập
được hỗ trợ :
ƒ DefaultColorPhone : điện thoại mặc định với màn hình màu.

Chương 1 : Tổng quan về lập trình trên điện thoại di động

8
ƒ DefaultGrayPhone : điện thoại với màn hình xám.
ƒ Motorola_i85s : điện thoại Motorola.
ƒ PalmOS_Device : máy hỗ trợ các nhân kỹ thuật số.

™ Nhận xét :
WTK là một môi trường cơ bản cho việc phát triển các ứng dụng trên thiết bị
không dây. Tuy nhiên, do thiếu một trình soạn thảo và chức năng gỡ rối, rõ ràng
công cụ này không thể nào cạnh tranh được với các công cụ thương mại khác. Tuy
nhiên, với những ai mới bắt đầu tìm hiểu về J2ME thì đây vẫn là một công cụ có
ích. Bằng việc tạo lập sẵn một cấu trúc thư mục, nó cho phép lập trình viên có thể
xây dựng ngay ứng dụng mà không cần quan tâm về việc tổ chức các tập tin, tài
nguyên trong dự án. Khi một lập trình viên đã trở nên thành thạo với việc phát triển
ứng dụng J2ME thì có thể chuyển sang sử dụng một công cụ khác.

Đánh giá post

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *