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
MP3, trình xem phim .AVI, ứng dụng văn phòng (hỗ trợ tập tin MS Word, MS
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
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
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
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
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
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
ị 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
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
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
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…
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:
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:
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:
đượ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
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ô