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
NIÊN KHÓA 2001 - 2005
LỜI CÁM ƠN
Chúng em xin chân thành cảm ơn Khoa Công nghệ Thông tin, trường Đại học
Khoa học Tự nhiên, Đại học Quốc gia Tp. Hồ Chí Minh đã tạo điều kiện thuận lợi
cho chúng em học tập và thực hiện đề tài tốt nghiệp này.
Chúng em xin bày tỏ lòng biết ơn sâu sắc đến thầy Nguyễn Tấn Trần Minh
Khang, thầy Trần Minh Triết đã tận tình hướng dẫn, chỉ bảo chúng em trong quá
trình thực hiện đề tài.
Chúng em xin chân thành cám
ơn quý Thầy Cô trong Khoa Công nghệ Thông
tin đã tận tình giảng dạy, trang bị cho em những kiến thức quý báu trong những
năm học vừa qua.
Chúng con xin chân thành cảm ơn Ông Bà, Cha Mẹ đã luôn động viên, ủng hộ
vật chất lẫn tinh thần trong suốt thời gian qua.
Chúng em xin cảm ơn sự quan tâm, giúp đỡ và ủng hộ của anh chị, bạn bè trong
quá trình thực hiện khóa luận.
Mặc dù đã cố gắng hoàn thành khóa luận trong phạm vi và khả n
ăng cho phép
nhưng chắc chắn sẽ không tránh khỏi những thiếu sót. Chúng em rất mong nhận
đượ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
MP3, trình xem phim .AVI, ứng dụng văn phòng (hỗ trợ tập tin MS Word, MS
Excel…), các trò chơi 3D… Vì vậy sự ra đời củ
a dòng điện thoại thông minh sử
dụng hệ điều hành Symbian với kiểu dáng tương đối nhỏ gọn, thiết kế đẹp mắt và
những ứng dụng hữu ích đã tạo ra một bước ngoặt mới trong thị trường điện thoại di
động. Đồng thời mở ra một hướng phát triển mới đầy hứa hẹn cho các công ty phần
mềm.
Bên cạnh đó, trong cu
ộc sống hiện nay, nhu cầu học tập, trao đổi kiến thức,
cũng như làm việc bằng ngoại ngữ là hết sức cần thiết. Sẽ rất tiện lợi nếu có một bộ
từ điển đa ngôn ngữ với đầy đủ chức năng, ngữ nghĩa nhưng nhỏ gọn, dễ mang
chuyển.
Vì những lý do trên, nhóm chúng em quyết tâm thực hiện đề tài “Nghiên c
ứu
và xây dựng ứng dụng từ điển trên điện thoại di động”
1
MỤC LỤC
Chương 1 Mở đầu ..................................................................................................... 9
1.1 Nhu cầu thực tế và lý do thực hiện đề tài......................................................... 9
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
3.3.1 Một số hạn chế phần cứng của điện thoại di động Series 60..............................26
3.3.2 Các yêu cầu cơ bản của một ứng dụng từ điển ...................................................26
3.3.3 Kết luận...............................................................................................................27
Chương 4 Kĩ thuật lập trình C++ trên Symbian.................................................. 28
4.1 Quản lý lỗi ...................................................................................................... 28
4.1.1 Lỗi lập trình ........................................................................................................28
4.1.2 Lỗi thiếu tài nguyên ............................................................................................29
4.2 Chuỗi .............................................................................................................. 37
4.2.1 Khái niệm............................................................................................................37
4.2.2 Phân loại .............................................................................................................38
4.3 Mảng............................................................................................................... 42
4.3.1 Mảng tĩnh............................................................................................................42
4.3.2 Mảng động ..........................................................................................................42
4.4 Mảng chuỗi..................................................................................................... 47
4.4.1 Khái niệm............................................................................................................47
Chương 5 Các giải pháp chính cho việc xây dựng từ điển trên điện thoại di
động Series 60 .......................................................................................................... 49
5.1 Tổ chức cấu trúc dữ liệu lưu trữ..................................................................... 49
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
6.3.3 Sử dụng control...................................................................................................70
6.3.4 Control observers................................................................................................73
6.4 Kỹ thuật tra cứu tự nhiên................................................................................ 73
6.4.1 Sắp xếp các mục từ tăng dần theo thứ tự bảng chữ cái Việt Nam......................73
6.4.2 Tối ưu số lượng các mục từ được nạp ................................................................76
6.4.3 Tùy biến cách thức tra cứu của người sử dụng...................................................76
6.5 Kỹ thuật phát âm ............................................................................................ 77
6.5.1 Những giới hạn khi xây dựng thư viện phát âm .................................................77
6.5.2 Text To Speech Offline.......................................................................................79
6.5.3 Text To Speech Online .......................................................................................79
Chương 7 Phân tích thiết kế ứng dụng từ điển .................................................... 81
7.1 Giới thiệu........................................................................................................ 81
7.2 Mô hình Use-Case .......................................................................................... 81
7.2.1 Mô hình Use-Case ..............................................................................................81
7.2.2 Đặc tả các Use-Case chính..................................................................................82
7.3 Thiết kế lớp đối tượng .................................................................................... 87
7.4 Thiết kế xử lý.................................................................................................. 89
7.4.1 Danh sách các xử lý chính ..................................................................................89
7.4.2 Mô tả các xử lý chính .........................................................................................90
7.5 Thiết kế giao diện........................................................................................... 97
7.5.1 Màn hình tra từ ...................................................................................................98
7.5.2 Màn hình hiển thị nghĩa......................................................................................98
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
8.5.1 Danh sách các màn hình giao diện....................................................................109
8.5.2 Mô tả các màn hình giao diện...........................................................................110
Chương 9 Cài đặt và thử nghiệm......................................................................... 112
9.1 Môi trường phát triển ................................................................................... 112
9.2 Mô hình cài đặt............................................................................................. 113
9.3 Hướng dẫn sử dụng ...................................................................................... 114
9.3.1 Yêu cầu phần cứng ...........................................................................................114
9.3.2 Cài đặt...............................................................................................................114
9.3.3 Hướng dẫn sử dụng chương trình Mobile Dictionary ......................................115
9.3.4 Hướng dẫn sử dụng chương trình Dictionary Manager....................................117
9.4 Thử nghiệm .................................................................................................. 121
9.4.1 Kết quả thử nghiệm hoạt động của ứng dụng...................................................121
9.4.2 So sánh với các từ điển hiện có trên thị trường ................................................121
Chương 10 Tổng kết.............................................................................................. 123
10.1 Một số kết quả đạt được ............................................................................. 123
10.2 Hướng phát triển......................................................................................... 124
Phụ lục A
SDKs và ứng dụng HelloWorld ..................................................... 125
A.1
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
Tài liệu tham khảo ................................................................................................ 141
4
DANH MỤC CÁC HÌNH
Hình 1.1 Nhu cầu từ điển di động........................................................................................10
Hình 2.1 Các cổ đông của công ty Symbian........................................................................12
Hình 2.2 Các nhà sản xuất có giấy phép sử dụng hệ điều hành Symbian ...........................13
Hình 2.3 Communicator áp dụng mô hình Crystal..............................................................14
Hình 2.4Communicator áp dụng mô hình Quartz................................................................15
Hình 2.5 Smartphone áp dụng mô hình Pearl......................................................................15
Hình 2.6 Điện thoại thông minh Symbian Series 60 ...........................................................17
Hình 2.7 Màn hình điện thoại Series 60 ..............................................................................18
Hình 2.8 Bàn phím điện thoại Series 60 ..............................................................................18
Hình 3.1 Application Structure............................................................................................23
Hình 3.2 Một ứng dụng dialog base ....................................................................................24
Hình 3.3 Một ứng dụng controls..........................................................................................25
Hình 3.4 Một ứng dụng Application / View architecture....................................................25
Hình 4.1 Chuỗi không thể thay đổi......................................................................................39
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 5.5 Các giá trị cần thiết để phân tích mục từ ..............................................................60
Hình 6.1 Tiếng Việt không hiển thị tốt................................................................................64
Hình 6.2 Bàn phím điện thoại Series 60 ..............................................................................66
Hình 6.3 Mẫu thiết kế MVC ................................................................................................68
Hình 6.4 Control ..................................................................................................................69
Hình 6.5 Minh họa cách sử dụng biên dưới.........................................................................75
Hình 6.6 Minh họa sử dụng biên trên ..................................................................................76
Hình 6.7 Nạp từ vào listbox.................................................................................................77
Hình 7.1 Use-Case diagram.................................................................................................81
Hình 7.2 Class diagram........................................................................................................87
Hình 7.3 Sơ đồ tuần tự Khởi động ứng dụng 1....................................................................90
Hình 7.4 Sơ đồ tuần tự Khởi độ
ng ứng dụng 2....................................................................91
Hình 7.5 Sơ đồ tuần tự Chọn từ điển mới............................................................................92
Hình 7.6 Sơ đồ tuần tự Tìm kiếm từ 1.................................................................................93
Hình 7.7 Sơ đồ tuần tự Tìm kiếm từ 2.................................................................................93
Hình 7.8 Sơ đồ tuần tự Hiển thị nghĩa từ.............................................................................94
Hình 7.9 Sequence diagram Xem nghĩa từ khác trong màn hình nghĩa 1 ...........................95
Hình 7.10 Sequence diagram Xem nghĩa từ khác trong màn hình nghĩa 2 .........................95
Hình 7.11 Sequence diagram Nghe phát âm từ 1 ................................................................96
Hình 7.12 Sơ đồ tuần tự Nghe phát âm từ 2 ........................................................................97
Hình 7.13 Màn hình tra từ ...................................................................................................98
Hình 7.14 Màn hình hiển th
ị nghĩa......................................................................................98
Hình 7.15 Submenu Dictionaries.........................................................................................99
Hình 7.16 Submenu About ..................................................................................................99
Hình 7.17 Màn hình cài đặt .................................................................................................99
Hình 8.1 Mô hình Use-Case Dictionary Manager .............................................................100
Hình 8.2 Sơ đồ các lớp đối tượng ......................................................................................106
Hình 8.3 Sơ đồ tuần tự cho xư lý Import...........................................................................107
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ổ
HelloWorldBasic project ......................................................................127
Hình A. 2 Build Solution HelloworldBasic.......................................................................128
Hình A. 3 Trình giả lập SDK 2
nd
Edition, FP2..................................................................128
Hình A. 4 HelloWorld trên máy giả lập.............................................................................129
Hình A. 5 Release build.....................................................................................................130
7
DANH MỤC CÁC BẢNG
Bảng 5.1 Bảng mô tả các trường dữ liệu .............................................................................49
Bảng 5.2 Tổ chức từ điển với cáctừ gốc có kích thước bằng nhau......................................50
Bảng 5.3 Tổ chức từ điển với cáctừ gốc có kích thước không bằng nhau...........................51
Bảng 5.4 So sánh tỉ lệ nén giữa DictZip và Dictzip#...........................................................56
Bảng 5.5 Kích thước tập tin sau khi dùng Dictzip# nén......................................................56
Bảng 5.6 Tốc độ truy xuất từ điển Anh-Việt khi sử dụng Dictzip#.....................................56
Bảng 5.7 Tốc
độ truy xuất từ điển Anh-Việt khi sử dụng Dictzip#.....................................57
Bảng 5.8 Các trường dữ liệu trong mẫu tin chỉ mục............................................................59
Bảng 5.9 Bảng thống kê sự phân bố các cụm trong bảng băm cấp 1 ..................................61
Bảng 5.10 Bảng thống kê sự phân bố các cụm trong bảng băm cấp 2 ................................62
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
8
Bảng 9.2 Danh sách điện thoại tương thích.......................................................................114
Bảng 9.3 Kết quả thử nghiệm trên máy ảo ........................................................................121
Bảng 9.4 Kết quả thử nghiệm trên máy thật......................................................................121
Bảng 9.5 So sánh với TMADict ........................................................................................122
Bảng B. 1 Qui ước đặt tên lớp ...........................................................................................132
Bảng B. 2 Qui ước đặt tên biến..........................................................................................133
Bảng B. 3 Qui ước đặt tên hàm..........................................................................................134
Bảng B. 4 Kiểu số nguyên .................................................................................................135
Bảng B. 5 Kiểu số thực......................................................................................................135
Bảng B. 6 Các kiểu cơ bản khác........................................................................................136
Chương 1 . Mở đầu
9
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ừ
điển trên điện thoại di động.
Chương 1 . Mở đầu
10
1.2 Mục tiêu của đề tài
Như tên gọi, điện thoại di động là thiết bị nhỏ gọn, được thiết kế phục vụ chủ
yếu cho nhu cầu liên lạc và giải trí của người dùng khi “di chuyển”. Bộ xử lý cũng
như khả năng lưu trữ của điện thoại di động kém xa so với máy tính để bàn. Ngoài
ra việc lập trình ứng dụng trên điện thoại cũng có những khác biệt và khó khă
n so
với với lập trình trên máy tính.
Như vậy, đề tài cần giải quyết các công việc chính như sau:
Tìm hiểu về điện thoại thông minh, hệ điều hành Symbian và khả năng
lập trình trên môi trường này.
Đi sâu tìm hiểu cách thức lập trình trên điện thoại thông minh Symbian
Series 60 – dòng điện thoại di động Symbian được ưa chuộng và sử dụng
rỗng rãi nhất hiện nay
Nghiên cứu, xây dự
ng cấu trúc dữ liệu từ điển giải quyết được những hạn
chế của máy điện thoại về khả năng xử lý và lưu trữ dữ liệu.
Xây dựng hoàn chỉnh ứng dụng từ điển trên điện thoại thông minh
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
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
Chương 4. Kĩ thuật lập trình C++ trên Symbian: giới thiệu các kĩ thuật lập
trình cơ bản các điểm khác biệt, cần lưu ý khi phát triển ứng dụng bằng C++ trên
Symbian
Chương 5. Các giải pháp chính cho việc xây dựng từ điển trên điện thoại di
động Series 60: trình bày cách thức xây dựng cấu trúc dữ liệu từ điể
n sao cho hoạt
động hiệu quả trên điện thoại
Chương 6. Các kĩ thuật xử lý ứng dụng: trình bày những kĩ thuật lập trình
cho ứng dụng từ điển trên điện thoại
Chương 7. Phân tích thiết kế ứng dụng từ điển: trình bày hồ sơ phân tích
thiết kế ứng dụng Mobile_Dict
Chương 8. Ứng dụng hỗ trợ quản lý dữ li
ệu trên Desktop: trình bày hồ sơ
phân tích thiết kế và cách thức hoạt động của ứng dụng DictionaryManager
Chương 9. Cài đặt và thử nghiệm: giới thiệu môi trường phát triển, cài đặt
ứng dụng. Hướng dẫn sử dụng và một số kết quả thử nghiệm, so sánh.
Chương 10. Tổng kết: trình bày những kết quả đạt được và hướng phát triển
trong tương lai.
Chương 2 . Tổng quan về hệ điều hành Symbian và điện thoại thông minh Series 60
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
13
là hệ điều hành được sử dụng rộng rãi trên các thiết bị di động. Nhờ cam kết cung
cấp một chuẩn mở và hỗ trợ những người sử dụng thiết bị di động mà Symbian trở
thành sự lựa chọn hàng đầu trong ngành công nghiệp về thiết bị di động hiện nay.
Hệ điều hành Symbian là một chuẩn mở nên bất cứ nhà sản xuất nào cũng có thể
được cấp bản quyền sử dụng trên thiết bị của mình.
Hình 2.2 Các nhà sản xuất có giấy phép sử dụng hệ điều hành Symbian
Hiện nay, Symbian thiết lập sự thống trị trên thị trường thiết bị di động thông
minh. Với 10,7 triệu thiết bị đã được bán ra chiếm 61,4% thị phần. (Theo báo
EChip, số 207 ra ngày 06/05/2005)
Chương 2 . Tổng quan về hệ điều hành Symbian và điện thoại thông minh Series 60
14
2.1.2 Các mô hình thiết bị sử dụng hệ điều hành Symbian
Hệ điều hành Symbian được thiết kế cho hai loại thiết bị di dộng chiến lược là
Communicator và Smartphone. Communicator là các máy PDA với khả năng liên
lạc vô tuyến của thiết bị di động. Trong khi Smartphone là điện thoại di động với
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…
Chương 2 . Tổng quan về hệ điều hành Symbian và điện thoại thông minh Series 60
15
Mô hình Pearl
Mô hình Pearl định nghĩa một loại Smartphone với hình dáng kích thước của
một điện thoại di động thông thường. Pearl hỗ trợ màn hình màu với nhiều kích
thước, tiêu chuẩn khác nhau, sử dụng bàn phím số của điện thoại để nhập liệu.
Các sản phẩm áp dụng mô hình Pearl trên thị trường: Nokia N-Gage QD,
Siemens SX1, Nokia 7610, Xendo X…
Hình 2.4Communicator áp dụng mô hình Quartz
Hình 2.5 Smartphone áp dụng mô hình Pearl
2.1.3 Các thành phần phần cứng chính trong điện thoại Symbian
Hệ điều hành Symbian được xây dựng để chạy trên các thiết bị liên lạc không
dây gọi chung là điện thoại Symbian. Do đó các đặc tính phần cứng của điện thoại
có tác động sâu sắc đến hệ điều hành. Vì vậy để hiểu rõ Symbian, chúng ta cần tìm
hiểu các thành phần quan trọng cấu thành điện thoại Symbian đó là CPU, ROM,
RAM, các thiết bị
nhập xuất (I/O) và nguồn năng lượng.
CPU: hệ điều hành Symbian được thiết kế cho kiến trúc CPU 32 bit, chạy ở tốc độ
thấp hơn so với máy tính trên máy để bàn và server. Các thiết bị Symbian hiện tại
sử dụng CPU chỉ có tốc độ trên dưới 100MHz. Trong tương lai tốc độ CPU có thể
được cải thiện hơn.
ROM: bộ nhớ chỉ đọc (ROM) chứa hệ điều hành và tất c
ả 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à
màn hình cảm ứng với khả năng tương tác bằng bút stylus.
Một bàn phím: có thể là bàn phím số hay QWERTY.
Một khe cắm thêm thẻ nhớ (memory card): đây là bộ nhớ ngoài của điện
thoại Symbian và được gán nhãn ổ đĩa E.
Một c
ổng tuần tự RS232: để giao tiếp với PC.
Một cổng hồng ngoại và Bluetooth cho các truyền thông vô tuyến giữa
điện thoại Symbian và các thiết bị khác như laptop, Palm,…
Nguồn năng lượng: sử dụng pin đặc thù có thể sạc lại thông qua một thiết bị
adapter phù hợp. Do nguồn năng lượng hạn hẹp, Symbian được thiết kế đặc biệt để
có thể hoạt động tốt khi h
ết pin đột ngột hoặc khi đang sạc pin.
Với các đặc trưng trên, hệ điều hành Symbian phải đáp ứng được các yêu cầu sau:
Hoạt động tốn ít bộ nhớ và năng lượng nhất có thể.
Các ứng dụng có thể hoạt động song song.
Quản lý, cấp phát chặt chẽ bộ nhớ và giải phóng ngay khi không sử dụng
nữa.
Sử dụng công ngh
ệ đã được chuẩn hóa, nhằm đảm bảo khả năng tương
tác giữa điện thoại với các thiết bị khác (Desktop, Pocket PC…)
Cung cấp tốt những qui ước, kĩ thuật debug, quản lý lỗi, quản lý bộ nhớ
cho lập trình viên khi phát triển ứng dụng.
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
18
2.2.2 Các tiêu chuẩn phần cứng của sản phẩm Series 60
Màn hình hiển thị:
Độ phân giải tối thiểu 176 * 208
(Rộng 176 và cao 208 điểm ảnh)
Các điểm ảnh hình vuông.
Số màu hiển thị 4096 trở lên
Hình 2.7 Màn hình điện thoại Series 60
Bàn phím:
Gồm 12 phím (12-key numeric
keypad), 2 phím để nghe và kết
thúc cuộc gọi (“send” and “end”
keys), 2 softkey, 4 phím di
chuyển (4-way navigation key),
1 phím OK, 1 phím để vào giao
diện ứng dụng (app launch key),
1 phím xóa (clear key) và 1 phím
để chuyển qua lại giữa các chế
độ nhập liệu (alpha toggle key).
Hình 2.8 Bàn phím điện thoại 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
ụng cho điện thoại Series 60 có thể thực hiện được do
Symbian là một hệ điều hành mở. Cũng như Windows, hệ điều hành Symbian cung
cấp một tập thư viện hàm lập trình API. Đồng thời, nhà sản xuất cũng cung cấp
“Series 60 Developer Platform”, nhằm hỗ trợ các lập trình viên phát triển ứng dụng
cho điện thoại thông minh trên máy tính
Hiện nay có hai phiên bản Series 60 Developer Platform ứng với hai phiên bản
hệ điề
u hành Symbian trong các điện thoại thông minh đã có trên thị trườ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
20
3.1.1.1 Series 60 Developer Platform 1.0 (Symbian 6.1)
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
o Mobile Information Device Profile (MIDP) 1.0
o Connected Limited Device Configuration (CLDC) 1.0
o Wireless Messaging API (JSR 120)
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.
XHTML browsing: duyệt WAP, lấy dữ liệu từ GPRS
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
21
OMA Digital Rights Management (DRM) (forward-lock): công cụ
bảo vệ bản quyền ứng dụng trên điện thoại thông minh series 60.
OMA Client Provisioning: cung cấp các ứng dụng
Symbian OS v7.0s native APIs: thư viện hàm API của hệ điều hành
Symbian 7.0s, không thay đổi nhiều so với bản 6.1
3.1.2 Các ngôn ngữ lập trình trên Series 60 Developer Platform
Dựa vào các thông tin trên về Series 60 Developer Platform. Dễ dàng nhận thấy
có thể phát triển ứng dụng trên điện thoại di động series 60 bằng ngôn ngữ Java
(công nghệ J2ME) ho
ặc bằng ngôn ngữ C++ (sử dụng thư viện hàm API do hệ điều
hành Symbian cung cấp).
3.1.2.1 Java
Lập trình bằng ngôn ngữ Java độc lập với phần cứng vì ứng dụng sẽ hoạt động
trên một máy ảo Java (Java virtual machine - JVM). Điều này cho phép lập trình
viên chỉ cần phát triển ứng dụng mà không quan tâm tới thiết bị cụ thể. Trong nền
hệ thống series 60, máy ảo Java với ứng dụng của nó (MIDlets) chạy trên môi
trường điều khiển gọi là sandbox; vì vậy không thể sử dụng mọi ch
ức năng của thiết
bị, ví dụ không thể truy cập hệ thống tập tin vốn là một thế mạnh của dòng điện
thoại thông minh. Tuy nhiên ứng dụng Java vẫn phù hợp với nhiều loại ứng dụng từ
trò chơi tới phần mềm tính toán, đặc biệt trong thời điểm ngôn ngữ lập trình Java
được sử dụng phổ biến như hiện nay.
Hiện nay có nhiề
u công cụ, mội trường phát triển (IDE) để xây dựng ứng dụng
cho điện thoại di động series 60. Xin giới thiệu một số IDE thông dụng: Borland
JBuilder X Mobile Edition, Sun ONE Studio v6.0 Mobile Edition for Java Early
Access, và Nokia Developer’s Suite for J2ME sử dụng SDK Series 60 MIDP for
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ú
liên quan tới tất cả các lĩnh vực trên điện thoại thông minh từ các
control hiển thị thông tin đến lập trình đa phương tiện, bluetooth,
hồng ngoại…
Các ứng dụng liên quan tới chức năng thoại như ngăn chặn cuộc gọi
ngoài ý muốn, quản lý cuộc gọi, bảo mật tin nhắn SMS… ch
ỉ có thể
viết bằng ngôn ngữ C++.
Symbian hỗ trợ nhiều lớp với nhiều mức độ thao tác trên tập tin từ
việc tìm kiếm, đổi tên, xóa một hoặc nhiều tập tin cùng một lúc. Điều
này cho phép viết những ứng dụng quản lý tập tin tương tự như
Window Explorer rất quen thuộc và tiện lợi cho người sử dụng điện
thoại thông minh. Điều này chắ
c chắn không thực hiện được với mô
hình MIDP của Java.
Việc hiển thị thông tin cũng được hỗ trợ tốt với nhiều loại control như
label, listbox, textbox, checkbox… cho phép thay đổi nhiều thuộc tính
như kích thước, màu sắc, font chữ… Ngoài ra ứng dụng giao diện
người dùng viết bằng C++ trên Symbian có thể hoạt động theo mô