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 BÙI TẤN LỘC - 0112013
CAO THÁI PHƯƠNG THANH - 0112031 NGHIÊN CỨU VÀ XÂY DỰNG
ỨNG DỤNG TỪ ĐIỂN
TRÊN ĐIỆN THOẠI DI ĐỘNG KHÓA LUẬN CỬ NHÂN TIN HỌC GIÁO VIÊN HƯỚNG DẪN
Th.S NGUYỄN TẤN TRẦN MINH KHANG
Th.S TRẦN MINH TRIẾT
được sự thông cảm, góp ý và tận tình chỉ bảo của quý Thầy Cô và các bạn.
Tp. Hồ Chí Minh, tháng 07 năm 2005
Nhóm sinh viên thực hiện
Bùi Tấn Lộc – Cao Thái Phương Thanh
Lời nói đầu
Công nghệ thông tin đang trở thành một phần quan trọng của cuộc sống. Các
thiết bị kĩ thuật cao ngày càng gần gũi với mọi hoạt động của con người. Đặc biệt
những năm gần đây, các thiết bị không dây - với ưu thế nhỏ gọn, dễ mang chuyển –
đã chứng tỏ được lợi ích to lớn cho người sử dụng. Trong đó điện thoại di
động,
với các chức năng liên lạc, nổi bật lên như một thiết bị “không thể thiếu” trong cuộc
sống của nhiều người. Với sự phát triển nhanh chóng của công nghệ sản xuất thiết
bị không dây, điện thoại di động đã trở thành phương tiện đa chức năng (nghe nhạc,
chơi trò chơi, nhắc lịch làm việc…) phục vụ cho nhu cầu của ngườ
i sử dụng mọi
lúc, mọi nơi.
Hệ điều hành Symbian là một hệ điều hành được thiết kế riêng để hoạt động tối
ưu trên các thiết bị di động vốn hạn chế về tài nguyên. Trên môi trường Symbian có
thể xây dựng hàng loạt ứng dụng tương tự máy tính cá nhân như: trình nghe nhạc
1.2 Mục tiêu của đề tài ......................................................................................... 10
1.3 Nội dung khóa luận ........................................................................................ 11
Chương 2 Tổng quan về hệ điều hành Symbian và điện thoại thông minh
Series 60.................................................................................................................... 12
2.1 Giới thiệu hệ điều hành Symbian ................................................................... 12
2.1.1 Công ty Symbian và hệ điều hành Symbian.......................................................12
2.1.2 Các mô hình thiết bị sử dụng hệ điều hành Symbian .........................................14
2.1.3 Các thành phần phần cứng chính trong điện thoại Symbian ..............................15
2.2 Điện thoại thông minh Symbian Series 60..................................................... 17
2.2.1 Giới thiệu ............................................................................................................17
2.2.2 Các tiêu chuẩn phần cứng của sản phẩm Series 60 ............................................18
Chương 3 Môi trường lập trình và vấn đề chính khi xây dựng ứng dụng từ
điển trên Series 60 ................................................................................................... 19
3.1 Phát triển ứng dụng trên điện thoại Series 60 ................................................ 19
3.1.1 Series 60 Developer Platform.............................................................................19
3.1.2 Các ngôn ngữ lập trình trên Series 60 Developer Platform................................21
3.2 Series 60 Application Framework.................................................................. 23
3.2.1 Series 60 Application Structure ..........................................................................23
3.2.2 Các loại ứng dụng trên điện thoại Series 60 .......................................................24
3.3 Vấn đề chính khi xây dựng ứng dụng từ điển trên Series 60 ......................... 25
2
5.1.1 Tổ chức các mục từ có kích thước bằng nhau ....................................................50
5.1.2 Tổ chức các mục từ có kích thước biến động .....................................................51
5.2 Tổ chức nén dữ liệu........................................................................................ 52
5.2.1 Nén toàn bộ dữ liệu.............................................................................................52
5.2.2 Nén từng khối dữ liệu .........................................................................................52
5.2.3 Chuẩn nén Dictzip ..............................................................................................53
5.2.4 Những khó khăn khi áp dụng Dictzip trên điện thọai di động............................54
5.2.5 Chuẩn nén Dictzip# ............................................................................................55
5.3 Tổ chức cấu trúc dữ liệu hỗ trợ cho việc tìm kiếm nhanh.............................. 57
5.3.1 Tổ chức tập tin nghĩa ..........................................................................................58
5.3.2 Tổ chức tập tin chỉ mục ......................................................................................59
5.3.3 Tổ chức băm tập tin chỉ mục ..............................................................................60
Chương 6 Các kỹ thuật xử lý ứng dụng................................................................ 64
6.1 Font chữ tiếng Việt......................................................................................... 64
6.2 Bàn phím máy điện thoại................................................................................ 66
6.3 Các control của hệ điều hành Symbian .......................................................... 68
6.3.1 Mô hình MVC.....................................................................................................68
6.3.2 Phân loại controls trong Symbian.......................................................................69
7.5.3 Menu chính .........................................................................................................99
7.5.4 Màn hình cài đặt .................................................................................................99
Chương 8 Ứng dụng hỗ trợ quản lý dữ liệu trên Desktop ................................ 100
8.1 Giới thiệu...................................................................................................... 100 3
8.2 Mô hình Use-Case ........................................................................................ 100
8.2.1 Mô hình Use-Case ............................................................................................100
8.2.2 Đặc tả một số Use-Case chính ..........................................................................101
8.3 Thiết kế lớp................................................................................................... 106
8.3.1 Sơ đồ lớp...........................................................................................................106
8.3.2 Mô tả các lớp chính...........................................................................................106
8.4 Thiết kế xử lý................................................................................................ 107
8.4.1 Danh sách các xử lý chính ................................................................................107
8.4.2 Mô tả một số xử lý chính..................................................................................107
8.5 Các màn hình giao diện................................................................................ 109
SDKs (Software Development Kits)....................................................... 125
A.2
Hướng dẫn cài đặt SDKs cho Series 60. (Một và nhiều SDK) ............... 126
A.3
Biên dịch và cài đặt ví dụ HelloWorld.................................................... 127
Phụ lục B
Khái niệm cơ bản khi lập trình C++ trên hệ điều hành Symbian132
B.1
Các qui ước đặt tên.................................................................................. 132
B.2
Kiểu dữ liệu cơ bản ................................................................................. 135
Phụ lục C
Chuẩn nén Dictzip#......................................................................... 137
Phụ lục D
Các bộ dữ liệu của từ điển.............................................................. 139
Hình 4.2 Chuỗi có thể thay dổi............................................................................................39
Hình 4.3Chu
ỗi cấp phát trên heap .......................................................................................40
Hình 4.4 Con trỏ chuỗi không thể thay đổi..........................................................................40
Hình 4.5 Con trỏ chuỗi có thể thay đổi................................................................................40
Hình 4.6 Cây kế thừa các lớp descriptor..............................................................................41
Hình 4.7 Sức chứa và độ phân hạt của mảng.......................................................................43
Hình 4.8 Mảng cùng kích thước, liên tục ............................................................................44
Hình 4.9 Mảng cùng kích thước, phân đoạn........................................................................44
Hình 4.10 Mảng khác kích thước, liên tục...........................................................................45
Hình 4.11 Mảng khác kích thước, phân đoạn......................................................................45
Hình 4.12 Mảng packed, liên tục.........................................................................................45
Hình 4.13 Mảng chuỗi không thể thay đổi ..........................................................................47
Hình 4.14 Mảng con trỏ chuỗi.............................................................................................48
Hình 5.1 Ý tưởng cấu trúc lư
u trữ chuẩn Dictzip ................................................................54
Hình 5.2 Ý tưởng cấu trúc lưu trữ chuẩn Dictzip# ..............................................................55
Hình 5.3 Tổ chức tập tin nghĩa ............................................................................................58
5
Hình 5.4 Cấu trúc mẫu tin chỉ mục......................................................................................59
Hình 8.4 Sơ đồ tuần tự cho xử lý Export...........................................................................108
Hình 8.5 Sơ đồ tuần tự cho xử lý LoadDictionary.............................................................108
Hình 8.6 Sơ đồ tuần tự cho xử lý UpdateWord .................................................................109
6
Hình 8.7 Màn hình chính của ứng dụng Dictionary Manager...........................................110
Hình 8.8 Màn hình biên sọan từ ........................................................................................111
Hình 9.1 Mô hình cài đặt đề tài .........................................................................................113
Hình 9.2 Cài đặt thành công Mobile_Dict.........................................................................115
Hình 9.3 Cài đặt thành công Dữ liệu .................................................................................115
Hình 9.4 Tra từ và gõ tiếng Việt........................................................................................115
Hình 9.5 Chọn từ điển cần dùng ........................................................................................116
Hình 9.6 Setting list ...........................................................................................................116
Hình 9.7 Phát âm từ ...........................................................................................................116
Hình 9.8 Màn hình chính của ứng dụng Dictionary Manager...........................................117
Hình 9.9 Chọn chức năng Import ......................................................................................118
Hình 9.10 Chọn chức năng mở một từ điển có sẵn............................................................118
Hình 9.11 Màn hình biên soạn từ ......................................................................................119
Hình 9.12 Chọn chức năng thêm từ...................................................................................119
Hình A. 1 Cửa sổ
Bảng 5.11 Bảng thống kê sự phân bố các cụm trong bảng băm cấp 3 ................................62
Bảng 5.12 Bảng thống kê sự phân bố các cụm trong b
ảng băm cấp 4 ................................63
Bảng 6.1 Tập các ký tự có dấu tiếng Việt............................................................................74
Bảng 6.2 Biên trên và biên dưới của ký tự có dấu tiếng Việt..............................................75
Bảng 6.3 Kích thước của bộ thư viện Offline......................................................................79
Bảng 7.1 Danh sách Actor ...................................................................................................82
Bảng 7.2 Danh sách Use-case..............................................................................................82
Bảng 7.3 Danh sách các lớp chính.......................................................................................89
Bảng 7.4 Danh sách các xử lý chính....................................................................................89
Bảng 7.5 Danh sách màn hình giao diện .............................................................................97
Bảng 7.6 Các thành phần của màn hình tra từ .....................................................................98
Bảng 7.7 Các thành phần của màn hình hiển thị nghĩa.......................................................98
Bảng 7.8 Các thành phần của menu chính...........................................................................99
Bảng 7.9Các thành phầ
n của màn hình cài đặt....................................................................99
Bảng 8.1 Danh sách các Actor...........................................................................................101
Bảng 8.2 Danh sách các Use-Case chính..........................................................................101
Bảng 8.3 Các lớp chính......................................................................................................106
Bảng 8.4 Các xử lý chính...................................................................................................107
Bảng 8.5 Các màn hình giao diện......................................................................................109
Bảng 9.1 Implement Model ...............................................................................................113
Chương 1 Mở đầu
1.1 Nhu cầu thực tế và lý do thực hiện đề tài
Trong cuộc sống, nhu cầu thông tin liên lạc là hết sức cần thiết. Vô số phương
pháp liên lạc đã ra đời nhằm phục vụ nhu cầu này từ thư tín, điện thoại bàn đến thư
điện tử, điện thoại di động, kết nối Wi-fi, chat Web_Camera... Trong đó, điện thoại
di động nổi bật lên như một phương tiện liên lạc hữu ích nhất, tiện lợi nh
ất, đặc biệt
đối với những người sống và làm việc trong các đô thị. Nhờ chức năng đàm thoại
trực tiếp mọi lúc mọi nơi, mà điện thoại di động ngày càng được sử dụng rộng rãi.
Hiện nay trên thế giới, điện thoại di động phát triển không ngừng. Hàng loạt điện
thoại với các tính năng, ứng dụng hiện đại được tung ra th
ị trường. Có thể nói điện
thoại di động là thiết bị điện tử phát triển nhanh chóng nhất cả về công nghệ lẫn tính
năng, ứng dụng. Riêng ở Việt Nam, thị trường điện thoại di động đã và đang phát
triển mạnh mẽ với số lượng người sử dụng đông đảo, hơn hẳn các thiết bị di động
cá nhân khác như Pocket PC, máy nghe nhạ
c…
Bên cạnh đó, nhu cầu về một từ điển ngôn ngữ phục vụ công việc, học tập, giao
tiếp… là luôn luôn cần thiết. Tuy nhiên không phải lúc nào chúng ta cũng có mặt ở
nhà để tra từ điển; và khi đi công tác, đi học, du lịch… mang theo một quyển từ
điển dày cộm hoặc máy tính xách tay có nhiều bất tiện. Vì vậy, một ứng dụng từ
điển trên điện thoạ
i di động cho phép tra cứu “mọi lúc mọi nơi” luôn được người
dùng chờ đợi và ủng hộ. Sự ra đời của thế hệ điện thoại thông minh sử dụng hệ điều
hành mở (open operation system) Symbian đã cho phép thực hiện điều này. Tuy
nhiên do điện thoại Symbian mới phát triển trong khoảng hai năm gần đây nên trên
thế giới cũng như ở Việt Nam, số lượng ứng d
ụng từ điển cho điện thoại di động
còn ít.
Từ những thực tế và lý do trên, chúng em quyết tâm xây dựng một ứng dụng từ
Symbian Series 60 với các chức năng tốt nhất có thể. Bao gồm cả một
ứng dụng cho phép chỉnh sửa dữ
liệu trên máy tính. Hình 1.1 Nhu cầu từ điển di động
Chương 1 . Mở đầu 11
1.3 Nội dung khóa luận
Nội dung luận văn gồm 10 chương
Chương 1. Mở đầu: trình bày nhu cầu thực tế, lý do thực hiện đề tài và các
mục tiêu cần đạt được.
Chương 2. Tổng quan về hệ điều hành Symbian và điện thoại thông minh
Series 60: giới thiệu tổng quan về hệ điều hành Symbian và dòng điện thoại thông
minh Series 60. Trình bày các ngôn ngữ lập trình và công cụ phát triển ứng dụng
trên Symbian
12
Chương 2 Tổng quan về hệ điều hành Symbian và điện
thoại thông minh Series 60
2.1 Giới thiệu hệ điều hành Symbian
2.1.1 Công ty Symbian và hệ điều hành Symbian
Symbian là một công ty phần mềm chuyên phát triển và cung cấp một hệ điều
hành tiên tiến, mở, chuẩn mực dùng cho thiết bị di động – hệ điều hành Symbian.
Công ty được thành lập vào tháng 6 năm 1998 đặt trụ sở chính tại Anh. Mục tiêu
của công ty Symbian là phát triển hệ điều hành Symbian thành hệ điều hành chuẩn
được sử dụng rộng rãi cho các hệ thống kỹ thuật số di
động trên toàn thế giới. Được
sự hậu thuẫn của các nhà sản xuất điện thoại di động hàng đầu thế giới, công ty
Symbian không ngừng phát triển:
Hình 2.1 Các cổ đông của công ty Symbian
Ban đầu công ty Psion xây dựng EPOC platform dùng để điều khiển các thiết bị
nhỏ, đạt được một số kết quả nhất định Sau đó, các công ty điện thoại di động hàng
đầu (Nokia, Siemens…) mua lại Psion, thành lập công ty Symbian và tiếp tục phát
triển EPOC với tên gọi hệ điều hành Symbianan. Ngày nay, hệ điều hành Symbian Chương 2 . Tổng quan về hệ điều hành Symbian và điện thoại thông minh Series 60
các tính năng PDA bổ sung. Với hai loại thiết bị này, Symbian công bố một số mô
hình thiết kế tham khảo cho các nhà sản xuấ
t. Hiện nay, tất cả các thiết bị di động
thông minh trên thị trường đều có thể xác định dùng một trong ba mô hình sau:
Mô hình Crystal:
Mô hình Crystal định nghĩa một loại Communicator bỏ túi với hình dáng của
một máy laptop. Crystal sử dụng màn hình màu theo chuẩn ½ VGA và một bàn phí
QWERTY, có thể hỗ trợ màn hình cảm ứng để nhập liệu với bút stylus. Ngoài ra
Crystal còn có bốn phím đặc biệt được đặt dọc theo phía phải bên ngoài màn hình,
được thiết kế để sử dụng bằng hai tay ho
ặc đặt trên bàn.
Các sản phẩm áp dụng mô hình Crystal trên thị trường: Nokia 9210i, Nokia
9300…
Hình 2.3 Communicator áp dụng mô hình Crystal
Mô hình Quartz
Mô hình Quartz định nghĩa một loại Communicator với hình dáng của một máy
Pocket PC. Quartz sử dụng màn hình màu theo chuẩn ¼ VGA, là một thiết bị di
động dùng bút stylus nhập liệu qua tương tác với một màn hình cảm ứng. Vì vậy,
không hề có một bàn phím vật lý nào trong mô hình Quartz, việc nhập liệu thông
qua nhận chữ dạng viết tay hoặc một bàn phím ảo.Quartz cũng được thiết kế để sử
dụng cả hai tay.
Các sản phẩm áp dụng mô hình Crystal trên thị trườ
ng: SonyEcrisson P900,
Motorola A920…
ả các ứng dụng và phần
mềm trung gian (middleware) có sẵn được nhà sản xuất đưa vào khi tạo thiết bị.
Điều này hoàn toàn khác với trên PC, nơi mà ROM chỉ chứa các phần nạp ban đầu Chương 2 . Tổng quan về hệ điều hành Symbian và điện thoại thông minh Series 60 16
và BIOS, còn hệ điều hành và ứng dụng lưu trên đĩa cứng. Bộ nhớ ROM trên điện
thoại Symbian được gán nhãn là ổ đĩa Z. Tất cả mọi thứ trong ROM đều có thể truy
cập như là file trên ổ đĩa Z. Vì vậy các chương trình được chạy trực tiếp trên ROM
thay vì nạp vào RAM như trên PC. Bộ nhớ ROM thường rất giới hạn, thường là
8MB đến 16MB.
RAM: bộ nhớ truy xuất ngẫu nhiên (RAM) đượ
c sử dụng bởi các ứng dụng đang
thực thi và nhân hệ thống. Một phần RAM được gán là ổ đĩa C dùng để chứa các
chương trình, các tập tin hình ảnh, chương trình… gọi là bộ nhớ của điện thoại Vì
vậy khi tắt máy, bộ nhớ này không bị xóa. Dung lượng RAM trên thiết bị cũng rất
hạn chế nên lỗi tràn bộ nhớ hoặc thiếu bộ nhớ là có thể xảy ra, nh
ất là khi thực thi
nhiều ứng dụng cùng một lúc.
Các thiết bị nhập xuất (I/O): bao gồm:
Màn hình có kích thước khác nhau tuỳ theo dòng điện thoại, có thể là
Chương 2 . Tổng quan về hệ điều hành Symbian và điện thoại thông minh Series 60 17
2.2 Điện thoại thông minh Symbian Series 60
2.2.1 Giới thiệu
Điện thoại thông minh Symbian Series 60 – xuất hiện lần đầu vào năm 2002 –
trước hết là một điện thoại di động GSM hay CDMA thông thường. Tuy nhiên đặc
điểm nổi bật của điện thoại Series 60 là các phần mềm ứng dụng. Người sử dụng có
thể tải về, cài đặt và sử dụng ngay trên điện thoại di động của mình vô số các ứng
dụng, tiệ
n ích với những tính năng tuyệt vời như: chương trình nghe nhạc mp3,
chương trình xem phim, chương trình xem, chỉnh sửa văn bản, xử lý ảnh… Cũng
như các ứng dụng đặc thù cho điện thoại như bảo mật tin nhắn, chặn cuộc gọi…
Hiện nay các sản phẩm Series 60 với mẫu mã đa dạng (phần lớn do Nokia sản
xuất) đang phát triển nhanh chóng, dần dần chiếm lĩnh th
ị trường điện thoại di
động.
Hình 2.6 Điện thoại thông minh Symbian Series 60 Chương 2 . Tổng quan về hệ điều hành Symbian và điện thoại thông minh Series 60 Chương 3 . Môi trường lập trình và vấn đề chính khi xây dựng ứng dụng từ điển trên Series 60 19
Chương 3 Môi trường lập trình và vấn đề chính khi xây
dựng ứng dụng từ điển trên Series 60
Các lập trình viên khi phát triển ứng dụng trên một thiết bị sử dụng hệ điều
hành nào đó cần giải quyết hai vấn đề chính:
Tìm hiểu khả năng lập trình, ngôn ngữ phát triển ứng dụng trên thiết bị,
hệ điểu hành đó.
Chọn cấu trúc dữ liệu, thuật toán xử lý, giao diện ứng dụng thích hợp với
thiết bị, hệ
điều hành.
3.1 Phát triển ứng dụng trên điện thoại Series 60
Sau khi quyết định phát triển ứng dụng từ điển trên điện thoại thông minh
Symbian Series 60. Vấn đề đầu tiên cần giải quyết là môi trường lập trình và cấu
trúc cơ bản của một ứng dụng trong hệ điều hành Symbian
3.1.1 Series 60 Developer Platform
Series60 Platform là một nền tảng phần mềm chạy trên điện thoại thông minh
Symbian Series 60. Platform bao gồm hệ thống giao diện người dùng cho phép
người sử dụng tìm và sử d
ụng các tập tin, phần mềm ứng dụng sẵn có (phần mềm in
ảnh trực tiếp, phần mềm thu âm…) cũng như các chức năng của điện thoại (tin
nhắn, lịch…). Ngoài ra, Series 60 Platform còn cho phép cài đặt bổ sung các ứng
dụng khác. Có thể nói, Series 60 Platform thực thi ở tầng trên cùng của hệ điều
hành Symbian, đảm trách phần giao tiếp giữa người dùng với hệ điều hành.
Việc xây dựng ứng d
MMS messaging: tin nhắn đa phưong tiện.
Symbian OS 6.1 native APIs: thư việ
n hàm API của hệ điều hành
Symbian 6.1
3.1.1.2 Series 60 Developer Platform 2.0 (Symbian 7.0s)
Với các công nghệ:
J2ME Java APIs: thư viện lập trình Java cho điện thoại di động bản
2.0 với nhiều cải tiến so với phiên bản MIDP 1.0
o MIDP 2.0
o CLDC 1.0
Wireless Messaging API (JSR 120): tin nhắn không dây
Mobile Media API (JSR 135): thư viện hỗ trợ xây dựng các ứng
dụng đa phương tiện (ghi âm, chụp ảnh, nghe nhạc, quay phim…)
được tích hợp trên máy điện thoại.
Bluetooth API (JSR 82): thư viện hỗ trợ lập trình các
ứng dụng sử
dụng công nghệ bluetooth để truyền dữ liệu.
XHTML browsing over TCP/IP: trình duyệt WAP, hỗ trợ giao thức
phổ biến TCP/IP
MMS messaging with Synchronized Multimedia Integration
Language (SMIL): tin nhắn đa phương tiện với SMIL Chương 3 . Môi trường lập trình và vấn đề chính khi xây dựng ứng dụng từ điển trên Series 60
Symbian OS.
3.1.2.2 C++
Series 60 Developer Platform dựa trên hệ điều hành Symbian, bồ sung một số
chức năng khác như tin nhắn đa phương tiện, bluetooth… và cụ thể hóa các lớp giao
diện cho dòng điện thoại di động series 60. Hệ điều hành Symbian được viết bằng Chương 3 . Môi trường lập trình và vấn đề chính khi xây dựng ứng dụng từ điển trên Series 60 22
C++ nên một ứng dụng C++ có thể sử dụng tất cả các tài nguyên, chức năng của
thiết bị thông qua các hàm API mà hệ điều hành cung cấp.
Khi lập trình C++ cho điện thoại thông minh Symbian series 60, lập trình viên
có nhiều lựa chọn IDE: Microsoft Visual C++ 6.0 HAY 7.0, CodeWarrior Wireless
Development Kits for Symbian OS và C++Builder X.
3.1.2.3 Lựa chọn ngôn ngữ lập trình cho đề tài
Như phần trên đã trình bày, các ứng dụng trên điện thoại di động có thể được
viết bằng ngôn ngữ Java hoặc C++. Tuy nhiên, đối với dòng điện thoại thông minh
series 60, ứng dụng viết bằng C++ có những ưu điểm vượt trội. Có thể liệt kê một
số ưu điểm nổi bật:
Ưu điểm lớn nhất là tận dụng các hàm API do hệ đ
iều hành cung cấp.
Symbian là 1 hệ điều hành mở với thư viện hàm API rất phong phú