Không có chương trình Active Perl sẽkhông biên dịch cũng nhưxây dựng ứng 
dụng được. 
 Đường dẫn chứa các bộSDK nên đểmặc định nhưsau: Drive Letter:\ Symbian 
 Qui ước gọi %EPOCROOT%chính là đường dẫn chứa thưmục Epoc32 (Symbian\ 
8.0a\ S60_2
nd
_FP2\ hay Symbian\6.1\Series60\ (không có tên ổ đĩa (drive letter))). 
Đường dẫn này rất quan trọng giúp biên dịch và xây dựng (compile & build) các 
ứng dụng của chúng ta. Đối với bộSDK 2
nd
Edition 2.x %EPOCROOT% được xác 
định tự động, tuy nhiên đối với SDK 1
st
Edition %EPOCROOT%phải được lập 
trình viên xác định trước khi compile & build ứng dụng. 
 Việc chuyển đổi giữa các SDK được thực hiện bằng công cụ“EnvironmentSwitch” 
của SDK 2
nd
Ed, FP2. Có thểtìm hướng dẫn chi tiết trong SDK Help và sửdụng 
công cụnày tại đường dẫn Symbian\ 8.0a\ S60_2
nd
_FP2\ Series60Tools\ 
Environmentswitch
                
              
                                            
                                
            
 
            
                
145 trang | 
Chia sẻ: haianh_nguyen | Lượt xem: 1381 | Lượt tải: 0
              
            Bạn đang xem trước 20 trang tài liệu Khóa luận nghiên cứu và xây dựng ứng dụng từ điển trên điện thoại di động, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
 từ điển mới SelectNewDictionany
3 XL3 Tìm kiếm từ LookUpWord 
4 XL4 Hiển thị nghĩa từ LookUpWord 
5 XL5 Xem nghĩa từ khác trong màn hình nghĩa ViewOtherWord 
6 XL6 Nghe phát âm từ Pronounce 
Bảng 7.4 Danh sách các xử lý chính 
 Chương 7 . Phân tích thiết kế ứng dụng từ điển 
90 
7.4.2 Mô tả các xử lý chính 
7.4.2.1 XL1 – Khởi động ứng dụng 
TH1: 
Hình 7.3 Sơ đồ tuần tự Khởi động ứng dụng 1 
 Chương 7 . Phân tích thiết kế ứng dụng từ điển 
91 
TH2: 
Hình 7.4 Sơ đồ tuần tự Khởi động ứng dụng 2 
 Chương 7 . Phân tích thiết kế ứng dụng từ điển 
92 
7.4.2.2 XL2 – Chọn từ điển mới 
Hình 7.5 Sơ đồ tuần tự Chọn từ điển mới 
 Chương 7 . Phân tích thiết kế ứng dụng từ điển 
93 
7.4.2.3 XL3 – Tìm kiếm từ 
TH1: 
Hình 7.6 Sơ đồ tuần tự Tìm kiếm từ 1 
TH2: 
Hình 7.7 Sơ đồ tuần tự Tìm kiếm từ 2 
 Chương 7 . Phân tích thiết kế ứng dụng từ điển 
94 
7.4.2.4 XL4 – Hiển thị nghĩa từ 
Hình 7.8 Sơ đồ tuần tự Hiển thị nghĩa từ 
 Chương 7 . Phân tích thiết kế ứng dụng từ điển 
95 
7.4.2.5 XL5 – Xem nghĩa từ khác trong màn hình nghĩa 
TH1: 
Hình 7.9 Sequence diagram Xem nghĩa từ khác trong màn hình nghĩa 1 
TH2: 
Hình 7.10 Sequence diagram Xem nghĩa từ khác trong màn hình nghĩa 2 
 Chương 7 . Phân tích thiết kế ứng dụng từ điển 
96 
7.4.2.6 XL6– Nghe phát âm từ 
TH1: 
Hình 7.11 Sequence diagram Nghe phát âm từ 1 
TH2: 
 Chương 7 . Phân tích thiết kế ứng dụng từ điển 
97 
Hình 7.12 Sơ đồ tuần tự Nghe phát âm từ 2 
7.5 Thiết kế giao diện 
Điện thoại thông minh Symbian Series 60 cơ bản vẫn là một điện thoại di động 
với kích thước nhỏ, gọn, màn hình hiển thị giới hạn, bàn phím đơn giản. Vì vậy tất 
cả các ứng dụng cho điện thoại thông minh đều phải tuân thủ nguyên tắc thiết kế 
giao diện đơn giản, các chức năng được thực hiện với ít thao tác phím nhất có thể. 
Trên cơ sở đó, ứng dụng từ điển cho điện thoại thông minh được thiết kế gồm hai 
màn hình chính có chung một menu chức năng và màn hình setting bổ sung: 
STT Màn hình Mô tả 
1 Màn hình tra từ Chứa danh sách từ và textbox cho phép nhập từ cần tra
2 Màn hình hiển thị nghĩa Chứa nghĩa từ cần tra 
3 Màn hình setting Lựa chọn các thông số của ứng dụng 
Bảng 7.5 Danh sách màn hình giao diện 
 Chương 7 . Phân tích thiết kế ứng dụng từ điển 
98 
7.5.1 Màn hình tra từ 
Hình 7.13 Màn hình tra từ 
STT Kiểu Mô tả 
1 
 Listbox 
Danh sách từ, cho phép 
người dùng nhập hoặc chọn 
từ cần tra. 
2 
 Textbox Nhập từ cần tra. 
Bảng 7.6 Các thành phần của màn hình tra từ 
7.5.2 Màn hình hiển thị nghĩa 
Hình 7.14 Màn hình hiển thị nghĩa 
STT Kiểu Mô tả 
1 
Richtextbox Hiển thị nghĩa từ cần tra 
Bảng 7.7 Các thành phần của màn hình 
hiển thị nghĩa 
 Chương 7 . Phân tích thiết kế ứng dụng từ điển 
99 
7.5.3 Menu chính 
Hình 7.15 Submenu Dictionaries 
Hình 7.16 Submenu About 
STT Kiểu Mô tả 
1 Dictionries Chọn từ điển khác (số lượng submenu phu thuộc vào số 
lượng từ điển được chép vào máy) 
2 Pronounce Phát âm từ hiện hành (Menu item này chỉ xuất hiện khi từ 
điển có phát âm và đang trong màn hình hiển thị nghĩa) 
3 Setting Vào màn hình cài đặt thông số 
4 About 
4.1 Help Hiển thị phần help của ứng dụng 
4.2 About Hiển thị phần tác giả của ứng dụng 
5 Exit Thoát khỏi ứng dụng 
Bảng 7.8 Các thành phần của menu chính 
7.5.4 Màn hình cài đặt 
Hình 7.17 Màn hình cài đặt 
STT Kiểu Mô tả 
1 
 CAknExSettingItem 
Qui định 
thông số 
dạng 
radiobox 
2 CAknExSettingListItemData 
Qui định 
thông số 
dạng 
textbox 
Bảng 7.9Các thành phần của màn hình cài đặt 
 Chương 8 . Ứng dụng hỗ trợ quản lý dữ liệu trên Desktop 
100 
Chương 8 Ứng dụng hỗ trợ quản lý dữ liệu trên Desktop 
8.1 Giới thiệu 
Ứng dụng Dictionary Manager là ứng được xây dựng trên Desktop nhằm hỗ trợ 
cho ứng dụng Mobile_Dict trên điện thoại di động. Vì hạn chế của thiết bị di động 
ứng dụng Mobile_Dict không hỗ trợ chức năng chỉnh sửa dữ liệu từ điển nên mục 
tiêu của Dictionary Manager là để đáp ứng nhu cầu này. Các chức năng chính của 
Ditionary Manager là: 
 Import dữ liệu từ điển trên điện thoại di động sang dữ liệu từ điển dùng 
trên Desktop. 
 Thực hiện thao tác dữ liệu từ điển trên Desktop: thêm, xoá, sửa từ, 
compact dữ liệu từ điển. 
 Export dữ liệu từ điển trên Desktop sang dữ liệu từ điển trên điện thoại di 
động. 
8.2 Mô hình Use-Case 
8.2.1 Mô hình Use-Case 
Hình 8.1 Mô hình Use-Case Dictionary Manager 
 Chương 8 . Ứng dụng hỗ trợ quản lý dữ liệu trên Desktop 
101 
8.2.1.1 Danh sách các Actor 
STT Actor Ý nghĩa 
1. User Người sử dụng 
Bảng 8.1 Danh sách các Actor 
8.2.1.2 Danh sách các Use-Case chính 
STT Use-Case Ý nghĩa 
1. ImportDictionary Import dữ liệu từ điển trên điện thoại di động sang dữ 
liệu từ điển dùng trên Desktop. 
2. LoadDictionary Nạp bộ dữ liệu từ điển trên Desktop để thực hiện thao tác 
thêm, xóa, sửa các từ. 
3. ShowWordsMeanings Hiển thị nghĩa của từ được chọn. 
4. PartOfSpeechFilter Lọc danh sách các từ hiển thị theo từ loại. 
5. AddNewWord Thêm một từ mới vào bộ từ điển có sẵn. 
6. DeleteWord Xóa một từ trong bộ từ điển có sẵn. 
7. UpdateWord Cập nhật một từ trong bộ từ điển có sẵn. 
8. CompactDictionary Compact dữ liệu từ điển. 
9. ExportDictionary Export dữ liệu từ điển trên Desktop sang dữ liệu từ điển 
dùng trên Desktop. 
Bảng 8.2 Danh sách các Use-Case chính 
8.2.2 Đặc tả một số Use-Case chính 
8.2.2.1 ImportDictionary 
8.2.2.1.1 Tóm tắt 
Use-Case này cho phép người sử dụng import bộ dữ liệu từ điển trên điện thoại 
di động sang bộ dữ liệu trên Desktop. 
8.2.2.1.2 Dòng sự kiện 
 Dòng sự kiện chính: Use-Case này bắt đầu khi người sử dụng chọn chức 
năng import. 
1. Người sử dụng chọn chức năng import từ điển trên điện thoại di động. 
2. Hệ thống hiển thị hộp thoại Open yêu cầu người sử dụng chọn tập tin từ điển 
dùng cho điện thoại di động. 
 Chương 8 . Ứng dụng hỗ trợ quản lý dữ liệu trên Desktop 
102 
3. Người sử dụng chọn tập tin từ điển dùng cho điện thoại di động và nhấn nút 
chọn. 
4. Hệ thống hiển thị hộp thoại Save yêu cầu người sử dụng đặt tên cho tập tin 
từ điển dùng cho Desktop. 
5. Người sử dụng gõ tên tập tin từ điển dùng cho Desktop và nhấn nút lưu. 
6. Hệ thống tiến hành xử lý import dữ liệu trên điện thoại di động sang dữ liệu 
từ điển dùng trên Desktop. 
7. Sau khi xử lý import hệ thống trở về màn hình chính và hiển thị danh sách 
các từ trong từ điển đã import. 
 Dòng sự kiện khác: 
1. Người sử dụng chưa chọn tập tin từ điển nào mà nhấn nút chọn thì hệ thống 
sẽ yêu cầu người dùng chọn tập tin từ điển. 
2. Người sử dụng không xác nhận việc chọn từ điển thì hệ thống sẽ không nạp 
bộ dữ liệu đã chọn và kết thúc Use-Case. 
3. Người sử dụng chưa gõ tên tập tin từ điển mà nhấn nút lưu thì hệ thống sẽ 
yêu cầu người dùng gõ tên tập tin từ điển. 
4. Người sử dụng không xác nhận việc lưu từ điển thì hệ thống sẽ không tiến 
hành xử lý import dữ liệu và kết thúc Use-Case. 
8.2.2.1.3 Các yêu cầu đặc biệt 
Không có. 
8.2.2.1.4 Điều kiện tiên quyết 
Không có. 
8.2.2.1.5 Điều kiện kết thúc 
Nếu Use-Case thực hiện thành công thì hệ thống sẽ tiến hành xử lý import dữ 
liệu và nạp bộ từ điển được chọn. 
8.2.2.1.6 Điểm mở rộng 
Không có. 
 Chương 8 . Ứng dụng hỗ trợ quản lý dữ liệu trên Desktop 
103 
8.2.2.2 Export 
8.2.2.2.1 Tóm tắt 
Use-Case này cho phép người sử dụng export bộ dữ liệu dùng cho Desktop 
sang dữ liệu dùng cho điện thoại di động. 
8.2.2.2.2 Dòng sự kiện 
 Dòng sự kiện chính: Use-Case này bắt đầu khi người sử dụng chọn chức 
năng export dữ liệu từ điển trên Desktop sang dữ liệu từ điển trên điện thoại 
di động. 
1. Người sử dụng chọn chức năng export từ điển. 
2. Hệ thống hiển thị hộp thoại Save yêu cầu người sử dụng gõ tên tập tin dùng 
cho điện thoại di động. 
3. Người sử dụng gõ tên vào và nhấn nút lưu. 
4. Hệ thống tiến hành xử lý export dữ liệu từ điển. 
 Dòng sự kiện khác: 
1. Người sử dụng chưa gõ tên tập tin từ điển mà nhấn nút lưu thì hệ thống sẽ 
yêu cầu người dùng gõ tên tập tin từ điển. 
2. Người sử dụng không xác nhận việc lưu từ điển thì hệ thống sẽ không tiến 
hành xử lý export dữ liệu và kết thúc Use-Case. 
8.2.2.2.3 Các yêu cầu đặc biệt 
Không có. 
8.2.2.2.4 Điều kiện tiên quyết 
Để export được cần phải có một bộ dữ liệu từ điển trên Desktop được nạp. 
8.2.2.2.5 Điều kiện kết thúc 
Nếu Use-Case thực hiện thành công thì hệ thống sẽ tiến hành xử lý export từ 
điển. 
8.2.2.2.6 Điểm mở rộng 
Không có. 
 Chương 8 . Ứng dụng hỗ trợ quản lý dữ liệu trên Desktop 
104 
8.2.2.3 LoadDictionary 
8.2.2.3.1 Tóm tắt 
Use-Case này cho phép người sử dụng nạp bộ dữ liệu có sẵn để thêm, xóa, sửa 
các từ. 
8.2.2.3.2 Dòng sự kiện 
 Dòng sự kiện chính: Use-Case này bắt đầu khi người sử dụng chọn chức 
năng nạp một từ điển. 
1. Người sử dụng chọn chức năng nạp từ điển. 
2. Hệ thống hiển thị hộp thoại Open yêu cầu người sử dụng chọn tập tin từ điển 
dùng cho Desktop. 
3. Người sử dụng chọn tập tin từ điển và nhấn nút chọn. 
4. Hệ thống trở về màn hình chính và hiển thị danh sách các từ trong từ điển đã 
chọn và hiển thị từ đầu tiên trong từ điển. 
 Dòng sự kiện khác: 
1. Người sử dụng chưa chọn tập tin từ điển nào mà nhấn nút chọn thì hệ thống 
sẽ yêu cầu người dùng chọn tập tin từ điển. 
2. Người sử dụng không xác nhận việc chọn từ điển thì hệ thống sẽ không nạp 
bộ dữ liệu đã chọn và kết thúc Use-Case. 
8.2.2.3.3 Các yêu cầu đặc biệt 
Không có. 
8.2.2.3.4 Điều kiện tiên quyết 
Không có. 
8.2.2.3.5 Điều kiện kết thúc 
Nếu Use-Case thực hiện thành công thì hệ thống sẽ nạp bộ từ điển được chọn. 
8.2.2.3.6 Điểm mở rộng 
Không có. 
 Chương 8 . Ứng dụng hỗ trợ quản lý dữ liệu trên Desktop 
105 
8.2.2.4 UpdateWord 
8.2.2.4.1 Tóm tắt 
Dòng sự kiện này cho phép người sử dụng cập nhật một từ trong bộ từ điển đã 
được nạp. 
8.2.2.4.2 Dòng sự kiện 
 Dòng sự kiện chính: Use-Case này bắt đầu khi người sử dụng chọn chức 
năng cập nhật từ. 
1. Người sử dụng chọn chức năng cập nhật từ. 
2. Hệ thống hiển thị hộp thoại cập nhật từ và nạp nội dung của từ được chọn lên 
màn hình để người sử dụng chỉnh sửa. 
3. Người sử dụng tiến hành chỉnh sửa nội dung của từ được chọn. 
4. Sau khi sửa chữa xong người dùng nhấn nút lưu. 
5. Hệ thống sẽ lưu từ được cập nhật vào từ điển và trở về màn hình chính. 
 Dòng sự kiện khác 
1. Nếu người sử dụng không xác nhận việc cập nhật từ thì hệ thống sẽ không 
lưu các sửa chữa của từ vào từ điển và kết thúc Use-Case. 
8.2.2.4.3 Các yêu cầu đặc biệt 
Không có. 
8.2.2.4.4 Điều kiện tiên quyết 
Người sử dụng phải chọn trước một bộ từ điển. 
8.2.2.4.5 Điều kiện kết thúc 
Nếu Use-Case thực hiện thành công thì hệ thống sẽ cập nhật từ đã sửa vào từ 
điển. 
8.2.2.4.6 Điểm mở rộng 
Không có. 
 Chương 8 . Ứng dụng hỗ trợ quản lý dữ liệu trên Desktop 
106 
8.3 Thiết kế lớp 
8.3.1 Sơ đồ lớp 
Hình 8.2 Sơ đồ các lớp đối tượng 
8.3.2 Mô tả các lớp chính 
STT Lớp đối tượng Loại Ý nghĩa 
1. MainForm Boundary Lớp màn hình chính của ứng dụng 
2. EditorForm Boundary Lớp màn hình chỉnh sửa hoặc thêm từ 
3. DictControl Boundary User control từ điển 
4. MessageBoxForm Boundary Lớp màn hình thông báo 
5. ModifyHandle Control 
Lớp xử lý chính cho lớp màn hình chỉnh 
sửa từ 
6. DictHandle Control 
Lớp xử lý chính cho lớp màn hình chính 
của ứng dụng 
Bảng 8.3 Các lớp chính 
 Chương 8 . Ứng dụng hỗ trợ quản lý dữ liệu trên Desktop 
107 
8.4 Thiết kế xử lý 
8.4.1 Danh sách các xử lý chính 
STT Xử lý Mô tả Use-Case tương ứng 
1. XL1 Import dữ liệu từ điển trên điện thoại di động sang dữ liệu dùng trên Desktop ImportDictionary 
2. XL2 Nạp một bộ từ điển có sẵn để thêm, xóa, sửa các từ. LoadDictionary 
3. XL3 Hiển thị nghĩa của từ được chọn. ShowWordMeanings 
4. XL4 Lọc danh sách các từ hiển thị theo loại từ PartOfSpeechFilter 
5. XL5 Thêm một từ mới vào bộ từ điển có sẵn. AddNewWord 
6. XL6 Xóa một từ trong bộ từ điển có sẵn. RemoveWord 
7. XL7 Cập nhật một từ trong bộ từ điển có sẵn. UpdateWord 
8. XL8 Compact dữ liều từ điển CompactDictionary 
9. XL9 Export dữ liệu từ điển trên Desktop sang dữ liệu từ điển dùng trên Desktop. ExportDictionary 
Bảng 8.4 Các xử lý chính 
8.4.2 Mô tả một số xử lý chính 
8.4.2.1 Import 
Hình 8.3 Sơ đồ tuần tự cho xư lý Import 
 Chương 8 . Ứng dụng hỗ trợ quản lý dữ liệu trên Desktop 
108 
8.4.2.2 Export 
Hình 8.4 Sơ đồ tuần tự cho xử lý Export 
8.4.2.3 LoadDictionary 
Hình 8.5 Sơ đồ tuần tự cho xử lý LoadDictionary 
 Chương 8 . Ứng dụng hỗ trợ quản lý dữ liệu trên Desktop 
109 
8.4.2.4 UpdateWord 
Hình 8.6 Sơ đồ tuần tự cho xử lý UpdateWord 
8.5 Các màn hình giao diện 
8.5.1 Danh sách các màn hình giao diện 
STT Màn hình Mô tả 
1 Màn hình chính của ứng dụng 
Chứa các chức năng chính của ứng dụng như 
: import, export dữ liệu từ điển, thêm, xóa, 
sửa các từ trong các bộ dữ liệu từ điển có 
sẵn., … 
2 Màn hình biên soạn từ 
Cho phép thêm hoặc chỉnh sửa nội dung của 
một từ. 
Bảng 8.5 Các màn hình giao diện 
 Chương 8 . Ứng dụng hỗ trợ quản lý dữ liệu trên Desktop 
110 
8.5.2 Mô tả các màn hình giao diện 
8.5.2.1 Màn hình chính ứng dụng 
Chứa các chức năng chính của ứng dụng như : import, export dữ liệu từ điển, 
thêm, xóa, sửa các từ trong các bộ dữ liệu từ điển có sẵn., … 
Hình 8.7 Màn hình chính của ứng dụng Dictionary Manager 
 Chương 8 . Ứng dụng hỗ trợ quản lý dữ liệu trên Desktop 
111 
8.5.2.2 Màn hình biên soạn từ 
Cho phép thêm hoặc chỉnh sửa nội dung của một từ. 
Hình 8.8 Màn hình biên sọan từ 
 Chương 9 . Cài đặt và thử nghiệm 
112 
Chương 9 Cài đặt và thử nghiệm 
9.1 Môi trường phát triển 
Đề tài bao gồm hai ứng dụng Mobile_Dict (thực thi trên điện thoại) và 
DictionaryManager (thực thi trên Desktop). Các công cụ và môi trường được sử 
dụng để thực hiện đề tài: 
 Công cụ phân tích, thiết kế: Rational Rose 2000 
 Môi trường cài đặt ứng dụng: Microsoft Windows XP SP1 
 Công cụ lập trình 
o Series 60 SDK for Symian OS version 1.2, For C++ 
o Series 60 2nd Edition SDK for Symbian OS, Feature Pack 2, For C++ 
 Môi trường lập trình (IDE): 
o Microsoft Visual C++ 6.0 
o Microsoft Visual C++ 7.0 
 Môi trường thử nghiệm và cài đặt: 
o Máy ảo SDK Symbian for C++ 6.1 và SDK Symbian for C++ 8.0a 
o Điện thoại di động Nokia-QD (Symbian 6.1) và Nokia 7610 (Symbian 
7.0s) 
Ngoài ra, trong quá trình thực hiện chúng em còn sử dụng và tham khảo các bộ thư 
viện sau: 
 Bộ thư viện nén/ giải nén Zlibpp 
 Microsoft Speech SDK 5.1 
 Chương 9 . Cài đặt và thử nghiệm 
113 
9.2 Mô hình cài đặt 
Hình 9.1 Mô hình cài đặt đề tài 
STT Tên Kiểu Mô tả 
1 MobileDictionary 
Application Package
Chứa chương trình ứng dụng Từ điển 
mobile_dict.app (trên mobile) 
2 DictionaryManager 
Application Package
Chứa chương trình ứng dụng quản lý dữ liệu 
Từ điển DictionaryManager.exe (trên 
desktop) 
3 Data Package Chứa các bộ dữ liệu Từ điển. 
4 Font Package Chứa font Unicode hiển thị tiếng Việt 
5 VoiceData Package Chứa các tập tin âm thanh tiếng Việt, Anh. 
6 zlibpp DLL Bộ thư viện nén/ giải nén dữ liệu Từ điển trên mobile 
7 Zlibce DLL Bộ thư viện nén/ giải nén dữ liệu Từ điển trên desktop 
8 SpeechServer Package Chứa website phát âm cho mobile 
9 MS Speech SDK DLL Bộ thư viện phát âm tiếng Anh 
Bảng 9.1 Implement Model 
 Chương 9 . Cài đặt và thử nghiệm 
114 
9.3 Hướng dẫn sử dụng 
9.3.1 Yêu cầu phần cứng 
Đối với Mobile_Dict: hoạt động trên tất cả điện thoại Series 60, gồm: 
Nokia 3600 Nokia 3620 Nokia 3650 Nokia 3660 
Nokia N-Gage Nokia N-Gage QD Siemens SX1 Lenovo P930 
Panasonic X700 Panasonic X800 Sendo X Sendo X2 
Nokia 6600 Nokia 6620 Nokia 6260 Nokia 7610 
Nokia 6670 Nokia 6680 Nokia 6681 Nokia 6682 
Nokia 3230 Nokia N70 Nokia N90 Nokia N91 
Bảng 9.2 Danh sách điện thoại tương thích 
 Bộ nhớ máy điện thoại (drive C:) còn trống ít nhất 300 KB 
 Thẻ nhớ (E:) còn trống 300 KB + kích thước tập tin dữ liệu từ điển cần sử 
dụng 
Đối với DictionaryManager: yêu cầu máy tính: 
 RAM 128 MB 
 .NET Famework 1.1 
9.3.2 Cài đặt 
Đối với Mobile_Dict: 
 Cài đặt font: 
o Nếu trong bộ nhớ của điện thoại (C:\System\fonts\) đã có các tập 
tin freetype.dll và verdref.ttf thì bỏ qua phần này. 
o Ngược lại: 
 Cài đặt tập tin vnfont.sis vào điện thoại 
 Khởi động lại máy (có thể tắt rồi mở máy). 
 Cài đặt ứng dụng: cài đặt tập tin mobile_dict.sis vào điện thoại 
 Cài đặt dữ liệu: chép tập tin dữ liệu từ điển cần dùng vào thẻ nhớ tại 
đường dẫn E:\MDict_Data\ 
Nếu cài đặt thành công, trong Menu điện thoại sẽ có thêm ứng dụng 
Mobile_Dict như sau: 
 Chương 9 . Cài đặt và thử nghiệm 
115 
Hình 9.2 Cài đặt thành công Mobile_Dict 
Hình 9.3 Cài đặt thành công Dữ liệu 
Đối với DictionaryManager: chỉ cần chép hai tập tin dictionarymanager.exe 
và zlib1.dll vào cùng thư mục và thực thi tập tin dictionarymanager.exe. 
9.3.3 Hướng dẫn sử dụng chương trình Mobile Dictionary 
Tra từ: 
Sử dụng phím mũi tên lên & xuống để chọn từ cần 
tra. 
Nhập trực tiếp từ cần tra vào ô nhập liệu như cách 
soạn tin nhắn trên điện thoại. 
Lưu ý: danh sách từ được sắp xếp theo thứ tự chữ cái 
tiếng Việt: aÆăÆâ… và 
sắcÆhuyềnÆhỏiÆngãÆnặng 
Gõ dấu tiếng Việt: 
Phím ‘*’: dấu thanh (sắc, huyền, hỏi…) 
Phím ‘#’: dấu mũ (ă, â, ô… và ký tự đ) 
Lưu ý: 
Gõ dấu ngay sau nguyên âm. 
Có thể bồ sung dấu sau khi nhập xong từ, bằng cách 
di chuyển con trỏ đến sau nguyên âm và nhấn phím bỏ 
dấu. 
Hình 9.4 Tra từ và gõ tiếng Việt 
 Chương 9 . Cài đặt và thử nghiệm 
116 
Chọn từ điển cần dùng: 
Trong màn hình tra từ hoặc xem nghĩa: chọn 
OptionÆDictionariesÆtừ điển cần dùng 
Lưu ý: ứng dụng chỉ hiển thị những từ điển đã được 
chép vào thẻ nhớ (E:\MDict_Data\) 
Hình 9.5 Chọn từ điển cần dùng 
Setting: 
Default Dictionary: chọn từ điển hiển thị khi khởi 
động ứng dụng. 
Remote Sound: nhập địa chỉ website phát âm từ. 
Lưu ý: Mobile_dict phiên bản 2.0 dành cho điện thoại 
dùng hệ điều hành Symbian 7.x mới có mục Remote 
Sound 
Hình 9.6 Setting list 
Phát âm từ đang xem nghĩa: 
Trong màn hình xem nghĩa, chọn 
OptionÆPronounce. 
Lưu ý: 
Chỉ có các ngôn ngữ hỗ trợ phát âm mới có chức 
năng Pronounce khi xem nghĩa. 
Phiên bản 2.0 cho phép kết nối Internet và nghe 
phát âm trực tuyến thông qua địa chỉ được qui định 
trong SettingÆRemote Sound. Hình 9.7 Phát âm từ 
 Chương 9 . Cài đặt và thử nghiệm 
117 
9.3.4 Hướng dẫn sử dụng chương trình Dictionary Manager 
Dictionary Manager là ứng dụng hỗ trợ Mobile Dictionary. Do hạn chế của 
thiết bị di động, Mobile Dictionary không hỗ trợ chức năng chỉnh sửa dữ liệu từ 
điển do đó mục tiêu của Dictionary Manager là để đáp ứng nhu cầu này. Các chức 
năng chính của chương trình Dictionary Manager là: 
• Import, export dữ liệu giữa Mobile Dictionary và Dictionary Manger 
• Thao tác trên dữ liệu của Dictionary Manager: thêm, xoá, sửa một từ trong từ 
điển, compact dữ liệu. 
Hình 9.8 Màn hình chính của ứng dụng Dictionary Manager 
 Chương 9 . Cài đặt và thử nghiệm 
118 
9.3.4.1 Import từ dữ liệu của ứng dụng Mobile Dictionary 
Ở màn hình chính chọn biểu tượng Import trên thanh công cụ hoặc chọn menu 
Import từ menu Dictionary. 
Hình 9.9 Chọn chức năng Import 
Trên hộp thoại Open chọn từ điển cần import (*.mdic), chọn OK. 
Trên hộp thoại Save As gõ tên file thông tin (*.ini), chọn Save. 
Dictionary Manager sẽ tự động generate các file (*.ini), (*.idxa), (*.idxb), 
(*.dic) và hiển thị từ điển lên màn hình chính. 
9.3.4.2 Mở một từ điển có sẵn 
Ở màn hình chính chọn biểu tượng Open Dict trên thanh công cụ hoặc chọn 
menu Open từ menu Dictionary. 
Hình 9.10 Chọn chức năng mở một từ điển có sẵn 
Trên hộp thoại Open chọn từ điển cần mở (*.ini), chọn OK, Dictionary 
Manager sẽ hiển thị từ điển lên màn hình chính. 
 Chương 9 . Cài đặt và thử nghiệm 
119 
9.3.4.3 Thao tác trên dữ liệu của Dictionary Manager 
Để thao tác trên từ điển của Dictionary Manager, trước hết phải mở một tự điễn 
có sẵn (*.ini). 
Hình 9.11 Màn hình biên soạn từ 
9.3.4.3.1 Thêm một từ vào từ điển 
Ở màn hình chính chọn biểu tượng New Word từ thanh công cụ hoặc chọn 
menu New từ menu Word. 
Hình 9.12 Chọn chức năng thêm từ 
Ở màn hình biên soạn từ, soạn từ cần thêm. Sau đó bấm nút Lưu. 
 Chương 9 . Cài đặt và thử nghiệm 
120 
9.3.4.3.2 Sửa một từ có sẵn trong từ điển 
Ở màn hình chính chọn từ cần sửa từ danh sách các từ, sau đó chọn chức năng 
sửa Edit Word từ thanh công cụ hoặc chọn menu Edit từ menu Word. 
Ở màn hình biên soạn từ, chính sửa từ. Sau đó bấm nút Lưu. 
9.3.4.3.3 Xoá một từ trong từ điển 
Ở màn hình chính chọn từ cần xoá trong danh sách các từ, sau đó chọn chức 
năng xoá Delete Word từ thanh công cụ hoặc menu Delete từ menu Word. 
9.3.4.3.4 Compact từ điển trên Dictionary Manager 
Thao tác xoá từ không xoá hẳn từ mà chỉ đánh dấu xoá. Khi thực hiện xoá 
nhiều lần, sẽ có nhiều từ bị đánh dấu xoá. Tập tin dữ liệu phải lưu những thông tin 
không cần thiết hay còn gọi là thông tin rác (thông tin bị đánh dấu xoá). Để bỏ 
những thông tin rác này ta phải thực hiện compact dữ liệu. 
Ở màn hình chính chọn chức năng Compact từ thanh công cụ hoặc từ menu 
Compact của menu Dictionary. 
9.3.4.3.5 Export ra dữ liệu Mobile Dictionary 
Trước hết phải mở một từ điển có sẵn (*.ini). 
Chọn chức năng Export từ thanh công cụ hoặc từ menu Export của menu 
Dictionary. 
Ở hộp thoại Open gõ vào tên file, chọn OK. 
 Chương 9 . Cài đặt và thử nghiệm 
121 
9.4 Thử nghiệm 
9.4.1 Kết quả thử nghiệm hoạt động của ứng dụng 
Máy ảo: 
STT Tính năng thử nghiệm Đánh giá 
1 Khởi động ứng dụng Khởi động nhanh, từ khi bắt đầu đến khi hiển thị danh sách từ < 1s 
2 Hiển thị danh sách từ và nghĩa tiếng Việt 
Sau khi cài đặt thư viện nhận dạng freetype.dll và 
font verdref.ttf ; hiển thị đầy đủ tiếng Việt Unicode. 
Tuy nhiên một số ít ký tự phiên âm của các từ điển 
trích từ freedict không hiển thị đúng. 
3 Tốc độ tra từ và hiển thị nghĩa Tra từ rất nhanh, hiển thị nghĩa gần như ngay lập tức. Tìm kiếm chính xác tiếng Việt 
4 Phát âm Sử dụng loa của máy tính. Chất lượng âm thanh tốt. 
Bảng 9.3 Kết quả thử nghiệm trên máy ảo 
Máy điện thoại Nokia N-gage QD: 
STT Tính năng thử nghiệm Đánh giá 
1 Khởi động ứng dụng Từ khi bắt đầu đến khi hiển thị danh sách từ 2s đến 3s 
2 Hiển thị danh sách từ và nghĩa tiếng Việt 
Sau khi cài đặt thư viện nhận dạng freetype.dll 
và font verdref.ttf ; hiển thị đầy đủ tiếng Việt 
Unicode. Tuy nhiên một số ít ký tự phiên âm 
của các từ điển trích từ freedict không hiển thị 
đúng. 
3 Tốc độ tra từ và hiển thị nghĩa 
Tra từ rất nhanh, hiển thị nghĩa gần như ngay 
lập tức. Tìm kiếm chính xác tiếng Việt. Nội 
dung nghĩa dài được hiển thị trong thời gian 
chấp nhận được < 3s 
4 Phát âm Sử dụng loa điện thoại. Chất lượng âm thanh trung bình. Một số từ tiếng Việt nghe không rõ. 
Bảng 9.4 Kết quả thử nghiệm trên máy thật 
9.4.2 So sánh với các từ điển hiện có trên thị trường 
Hiện nay trên thị trường Việt Nam có hai ứng dụng từ điển với chức năng 
tương tự được biết đến rộng rãi là TMADict của công ty TMA Solution và 
MTDEVA của công ty Lạc Việt. 
Tuy nhiên, qua tìm hiểu ý kiến của người sử dụng và chạy thử chương trình, 
phiên bản MTDEVA miễn phí của Lạc Việt (download từ www.mobifuns.net ) có 
nhiều khuyết điểm như: bản miễn phí chỉ có từ điển V-E, dung lượng khá lớn 5MB; 
giao diện khó sử dụng; đặc biệt thường xuyên xảy ra lỗi làm ngừng chương trình. 
 Chương 9 . Cài đặt và thử nghiệm 
122 
Vì vậy TMADict là lựa chọn hàng đầu. Trên cơ sở này, chúng em mạnh dạn chỉ 
thực hiện so sánh cụ thể đối với ứng dụng TMADict. 
Tiêu chí so 
sánh Mobile_Dict TMADict 
Tập tin cài đặt 
Một tập tin Mobile_Dict.sis 
duy nhất cho mọi loại điện 
thoại thông minh Series 60 
Có tập tin cài đặt font tiếng 
Việt riêng. 
Hai tập tin cài đặt khác nhau cho 
Symbian 6.1 và 7.x. 
Trong đó bản dành cho Symbian 
6.1 không có phần cài đặt font 
tiếng Việt (phải thực hiện bằng 
cách copy vào bộ nhớ) 
Bộ nhớ máy 
(drive C:) dùng 
lưu trữ font 
tiếng Việt 
285 KB (hai tập tin) Symbian 6.1: 285 KB (hai tập tin) 
Symbian 7.x: 919 KB (bốn tập tin) 
Bộ nhớ sử dụng 
khi chạy 
chương trình 
248 KB 180 KB 
Khởi động ứng 
dụng 
Hiển thị từ điển mặc định 
sau 2–3s 
Không hiển thị danh sách từ cho 
đến khi người dùng chọn từ điển. 
Quá trình khởi động ứng dụng và 
hiển thị từ điển được chọn > 5s 
Số lượng từ 
điển 
31 loại từ điển 9 loại từ điển 
Dung lượng tập 
tin dữ liệu từ 
điển 
E-V: 68998 từ: 4.3 MB 
V-E: 91000 từ: 1.9 MB 
E-V: 68000 từ: 4.8 MB 
V-E: 24000 từ: 1.2 MB 
Tốc độ tra từ < 1s < 1s 
Thời gian hiển 
thị nghĩa 
Từ điển E-V: tra từ “love”: 
màn hình hiển thị nghĩa có 
58 dòng : 2s 
Từ điển E-V: tra từ “love”: màn 
hình hiển thị nghĩa có 53 dòng : 3s 
Phát âm Tiếng Việt, tiếng Anh. Không có 
Bảng 9.5 So sánh với TMADict 
Từ ngày 18/06, phiên bản đầu tiên của đề tài (chưa có phát âm) đã được cung 
cấp miễn phí cho người dùng tại địa chỉ: 
Trang web hiện nay: 
 Chương 10 . Tổng kết 
123 
Chương 10 Tổng kết 
10.1 Một số kết quả đạt được 
Trong quá trình thực hiện đề tài “Xây dựng ứng dụng từ điển trên điện thoại 
di động”, chúng em đã thu được những kết quả sau: 
 Tìm hiểu được các loại điện thoại di động trên thị trường và kĩ thuật lập trình 
ứng dụng trên những thiết bị này. Với số lượng người sử dụng rất lớn, việc 
phát triển và kinh doanh phần mềm trên điện thoại di động hứa hẹn sẽ phát 
triển mạnh mẽ trong thời gian tới. 
 Tìm hiểu được hệ điều hành Symbian và các thiết bị di động sử dụng hệ điều 
hành này – vốn đang “làm mưa làm gió” trên thị trường. Đi sâu nghiên cứu 
cách thức lập trình C++ trên Symbian Series 60 – dòng điện thoại thông 
minh được ưa chuộng nhất hiện nay. 
 Tìm hiểu được cách thức tổ chức và nén dữ liệu từ điển hiệu quả trên môi 
trường điện thoại di động có nhiều hạn chế về tài nguyên. 
 Xây dựng được ứng dụng từ điển Mobile_Dict trên điện thoại thông minh 
Symbian Series 60. Với dữ liệu phong phú, tra từ nhanh và chính xác, hoạt 
động ổn định, và đặc biệt là được tích hợp vào điện thoại di động, 
Mobile_Dict đã phần nào đáp ứng được nhu cầu của người sử dụng. Ứng 
dụng còn hỗ trợ phát âm cho một số ngôn ngữ (Việt, Anh) ở mức tốt nhất mà 
chúng em có thể thực hiện. 
 Ngoài ra, chúng em đã xây dựng chương trình DictionaryManager, hoạt 
động trên máy tính, cho phép người dùng thêm, sửa, xóa nội dung các bộ từ 
điển. 
 Chương 10 . Tổng kết 
124 
10.2 Hướng phát triển 
 Bổ sung các bộ từ điển nhất là từ điển chuyên môn; hoàn thiện, thống nhất 
định dạng dữ liệu. 
 Bổ sung chức năng tra từ trong những ứng dụng khác của điện thoại (như 
Tin nhắn, trình duyệt WAP…) 
 Hoàn thiện chức năng phát âm, đặc biệt là phát âm tiếng Anh. Trên cơ sở đó, 
xây dựng ứng dụng “sách nói” trên điện thoại di động. 
 Phát triển ứng dụng trên các dòng điện thoại Symbian khác (như Series 90, 
Quartz). Do kiến trúc nên tảng giống nhau, chỉ khác giao diện hiển thị, nên 
khi phát triển cho dòng điện thoại Symbian khác chỉ cần thay đổi phần giao 
diện. 
 Xây dựng ứng dụng Web cho phép người sử dụng điện thoại di động kết nối 
Internet (qua GPRS…) và tra từ trực tuyến hoặc tra nghĩa các từ không tim 
thấy trên máy cục bộ. 
 Phụ lục A. SDKs và ứng dụng HelloWorld 
125 
Phụ lục A SDKs và ứng dụng HelloWorld 
A.1 SDKs (Software Development Kits) 
SDK là gói sản phẩm hỗ trợ việc phát triển ứng dụng gồm công cụ biên dịch, tài 
liệu hướng dẫn, ví dụ mẫu, phương tiện kiểm lỗi… Để phát triển ứng dụng C++ cho 
Symbian, lập trình viên phải sử dụng bộ SDK hỗ trợ lập trình cho điện thoại thông 
minh. Hiện nay, các SDK C++ cho Symbian được cung cấp miễn phí trên diễn đàn 
chính thức của Nokia forum.nokia.com. Chỉ cần đăng kí thành viên (miễn phí) , 
chọn series 60 Development Tool & SDKs là có thể download rất nhiếu bộ SDK 
cho các IDE khác nhau (kích thước hơn 100MB). 
Ở đây chỉ đề cập đến SDKs dành cho IDE Ms VC++ bản tiếng Anh. Hiện nay 
trên thị trường có hai loại điện thoại thông minh với hai phiên bản hệ điều hành 
Symbian 6.1 và 7.0. Vì vậy cũng có hai loại SDKs chính: 
 SDK for Symbian OS, for C++, 1st Edition (Symbian 6.1) 
 SDK for Symbian OS, for C++, 2nd Edition (Symbian 7.x), hiện đã có 
bản Feature Pack 2. 
Ứng dụng phát triển bằng SDK, 1st Edition có thể chạy tốt trên các điện thoại di 
động Symbian 7.x. Ngược lại, ứng dụng phát triển bằng SDK, 2nd Edition, nếu giữ 
nguyên các thông số mặc định thì không thể cài đặt trên thiết bị sử dụng Symbian 
6.1. Tuy nhiên ngày nay phần lớn các điện thoại thông minh mới sản xuất đều sử 
dụng hệ điều hành Symbian 7.x nên Nokia đã ngưng phát triển SDK cho Symbian 
6.1 và tập trung hoàn thiện các bộ SDK cho Symbian 7.x. Ngoài ra, SDK Help của 
hai bộ SDK 1st Edition và 2nd Edition có khác nhau ở phần các control giao diện, 
trong đó SDK Help 1st Edition liệt kê các lớp control do hệ điều hành Symbian cung 
cấp với đầy đủ hàm thành viên rất hữu ích khi lập trình giao diện. Vì vậy, phần lớn 
các lập trình viên muốn phát triển ứng dụng trên tất cả các máy điện thoại thông 
minh đều sử dụng cả hai bộ SDK, tùy theo trường hợp mà có sự thay đổi linh hoạt. 
 Phụ lục A. SDKs và ứng dụng HelloWorld 
126 
A.2 Hướng dẫn cài đặt SDKs cho Series 60. (Một và nhiều SDK) 
Hướng dẫn cài đặt bộ SDK for Symbian OS, for C++, 2nd Edition, FP2 và SDK 
for Symbian OS, for C++, 1st Edition. 
Những phần mềm cần thiết: 
 MS Windows 2000 (SP3), hoặc MS Windows SP 
 MS Visual Studio 6, hoặc MS Visual Studio .NET (cần Visual C++) 
 ActivePerl 5.6.1 (download miễn phí tại  
 Series 60 2nd Edition SDK for Symbian C++ Supporting Feature Pack 2 và Series 
60 1st Edition SDK for Symbian C++ (download miễn phí tại 
 (yêu cầu đăng kí thành viên)) 
 JDK 1.4.2_05 trở lên (cần cho các công cụ hỗ trợ của bộ SDKs, download miễn phí 
tại  
Lưu ý: 
 Không có chương trình Active Perl sẽ không biên dịch cũng như xây dựng ứng 
dụng được. 
 Đường dẫn chứa các bộ SDK nên để mặc định như sau: Drive Letter:\ Symbian 
 Qui ước gọi %EPOCROOT% chính là đường dẫn chứa thư mục Epoc32 (Symbian\ 
8.0a\ S60_2nd_FP2\ hay Symbian\6.1\Series60\ (không có tên ổ đĩa (drive letter))). 
Đường dẫn này rất quan trọng giúp biên dịch và xây dựng (compile & build) các 
ứng dụng của chúng ta. Đối với bộ SDK 2nd Edition 2.x %EPOCROOT% được xác 
định tự động, tuy nhiên đối với SDK 1st Edition %EPOCROOT% phải được lập 
trình viên xác định trước khi compile & build ứng dụng. 
 Việc chuyển đổi giữa các SDK được thực hiện bằng công cụ “EnvironmentSwitch” 
của SDK 2nd Ed, FP2. Có thể tìm hướng dẫn chi tiết trong SDK Help và sử dụng 
công cụ này tại đường dẫn Symbian\ 8.0a\ S60_2nd_FP2\ Series60Tools\ 
Environmentswitch\ 
 Quá trình biên dịch và xây dựng ứng dụng của SDK yêu cầu có các đường dẫn 
trong biến PATH của hệ điều hành Windows như sau: %ActivePerl%\ bin; 
%JDK%\ bin; %MS Visual Studio .NET 2003%\vc7\bin và %MS Visual Studio 
.NET 2003% \common7\IDE (hoặc %MS Visual Studio%\vc98\bin và %MS Visual 
Studio%\common\ IDE). Trong đó %XXX% là đường dẫn cài đặt chương trình XXX 
 Phụ lục A. SDKs và ứng dụng HelloWorld 
127 
trên máy tính. Biến PATH của Windows có thể được điều khiển bằng một trong hai 
cách sau: 
o Command line: sử dụng lệnh path (path /? để biết cách sử dụng) 
o Windows: nhấp phải vào biểu tượng My Computer, chọn Properties Æ Tab 
Advanced Æ Button Environment Variables. 
A.3 Biên dịch và cài đặt ví dụ HelloWorld 
A.3.1 Đối với máy ảo 
Khi sử dụng SDK cho IDE MS VC++, việc biên dịch, kiểm lỗi trên máy ảo 
được thực hiện thuận lợi như khi phát triển ứng dụng cho máy tính. 
Hướng dẫn cách biên dịch chương trình HelloWorld cho máy ảo bằng SDK 2nd 
Edition FP 2: 
 Đầu tiên chép thư mục %EPOCROOT% \Series60Ex\HelloworldBasic\ vào 
thư mục gốc ổ đĩa C: để tiện sử dụng. 
 Vào thư mục \HelloWorldBasic\Group\, dùng công cụ makmake tạo tập tin 
dự án cho VC7 (C:\HelloWorldBasic\group\makmake helloworld.mmp vc7). 
Lúc này thư mục Group\ chứa đầy đủ các tập tin dự án của VC++7.0. 
 Khởi động .NET và mở dự án vừa tạo: 
Hình A. 1 Cửa sổ HelloWorldBasic project 
 Phụ lục A. SDKs và ứng dụng HelloWorld 
128 
 Chọn BuildÆRebuild Solution để xây dựng chương trình. Nếu thành công ta 
có kết quả sau (bỏ qua các warning): 
Hình A. 2 Build Solution HelloworldBasic 
Lưu ý: Nếu quá trình biên dịch không thành nên xem lại biến PATH của Windows đã đề 
cập trong phần cài đặt. 
 Sau khi biên dịch thành công ta chọn Debug > Start để thực thi ứng dụng. 
Khi VC .NET hỏi chương trình thực thi ta chọn %EPOCROOT% \epoc32\ 
release\wins\udeb\epoc.exe (shortcut nằm trong StartÆ All ProgramÆ 
Series 60 Developer ToolsÆ 2nd Edition SDK Feature Pack 2\1.0 Æ 
Emulator (Debug)). Lúc này trình giả lập được khởi động: 
 Hình A. 3 Trình giả lập SDK 2nd Edition, FP2 
 Phụ lục A. SDKs và ứng dụng HelloWorld 
129 
 Ta dùng chuột nhấn các phím định vị (lên, xuống, trái, phải) hoặc nhấn trực 
tiếp trên bàn phím để chọn ứng dụng cần thực thi (trường hợp này là 
HelloworldBasic (HW nằm ở cuối màn hình)) 
Hình A. 4 HelloWorld trên máy giả lập 
 Trong quá trình chạy thử ứng dụng trên, ta có thể đặt breakpoint ở bất kì đâu 
trong mã nguồn và khi chạy tới đó, IDE sẽ tự động chuyển sang môi trường 
debug cho phép ta chạy từng bước, xem giá trị các biến… như một ứng dụng 
phát triển trên máy tính bình thường. 
Lưu ý: 
 Các tập tin thực thi (trên máy ảo) được phát sinh tại đường dẫn 
%EPOCROOT%\epoc32\release\wins\udeb\z\system\APPS\HelloWorldBasi
c\. Nếu không muốn một ứng dụng tồn tại trên máy ảo (vì đã có quá nhiều 
ứng dụng hay lý do nào khác) chỉ cần vào đường dẫn trên và xóa thư mục 
của ứng dụng đó đi. 
 Phụ lục A. SDKs và ứng dụng HelloWorld 
130 
 Ổ đĩa C:\ của máy ảo có đường dẫn: %EPOCROOT%\epoc32\wins\c\. Nếu 
ứng dụng có liên quan tới tập tin, lập trình viên muốn chạy được trên máy ảo 
phải chép các tập tin đó vào đường dẫn trên. Lúc này trong ứng dụng, đường 
dẫn của tập tin cần sử dụng sẽ là: “C:\\...”. (Đương nhiên không thể sử dụng 
đường dẫn của máy tính trong máy giá lập) 
A.3.2 Đối với máy thực 
Việc biên dịch ứng dụng cho máy thực độc lập với việc tạo tập tin dự án, phát 
triển, chạy thử và kiểm lỗi trên máy ảo. Chỉ cần hai tập tin .mmp và bld.inf là có thể 
tiến hành biên dịch ứng dụng cho máy thật. 
Công cụ biên dịch chính mà SDK cung cấp là abld.bat, tuy nhiên mỗi ứng 
dụng cần một tập tin abld.bat cho riêng nó. Nghĩa là đối với mỗi ứng dụng khi biên 
dịch trên máy thật, trước tiên cần phát sinh tập tin abld.bat. Việc này được thực 
hiện bằng công cụ bldmake. Tại cửa sổ dòng lệnh nhập: 
C:\HelloWorldBasic\group\bldmake bldfiles. 
Lúc này dựa vào tập tin bld.inf, tập tin biên dịch ứng dụng abld.bat 
được tạo ra trong thư mục Group. 
Sau khi đã có tập tin abld.bat, có thể biên dịch ứng dụng cho máy 
thực theo một trong hai cách: 
 Biên dich bằng IDE Ms VC++ 7.0 (MS VC++ 6.0 không thực hiện được): 
Hình A. 5 Release build 
Chọn Build > Build Solution hoặc Build > Rebuild Solution 
 Biên dịch bằng dòng lệnh 
C:\HelloWorldBasic\group\abld build thumb urel 
Dù thực hiện bằng cách nào, nếu biên dịch thành công, các tập tin thực thi mà 
quan trọng nhất là tập tin .app sẽ được tạo ra tại đường dẫn: 
 Phụ lục A. SDKs và ứng dụng HelloWorld 
131 
%EPOCROOT%\Epoc32\Release\thumb\urel\. Lúc này, mọi thứ đã sẵn sàng, chỉ 
cần dùng makesis để tạo tập tin cài đặt và tiến hành cài đặt trên máy thực. 
Lưu ý: 
 Tập tin .pkg sử dụng đường dẫn tương đối để chỉ đến các tập tin thực thi 
đã phát sinh. Nếu thư mục HelloworldBasic bị di chuyển sang vị trí khác 
thì đường dẫn này không còn chính xác và máy sẽ báo lỗi khi bạn thực thi 
lệnh makesis. Có thể sửa lại đường dẫn cho phú hợp trước khi tạo tập tin 
.sis. Cụ thể với ứng dụng HelloWorldBasic ở trên, tập tin 
Helloworldbasic.pkg có phần các tập tin cần cài đặt như sau: 
;original sis file 
"..\..\..\epoc32\release\thumb\urel\HelloWorldBasic.APP" -
"!:\system\apps\HelloWorldBasic\HelloWorldBasic.app" 
"..\..\..\epoc32\data\z\system\apps\HelloWorldBasic\HelloWorldBasic.rsc" -
"!:\system\apps\HelloWorldBasic\HelloWorldBasic.rsc" 
"..\..\..\epoc32\data\z\system\apps\HelloWorldBasic\HelloWorldBasic_caption.rsc" -
"!:\system\apps\HelloWorldBasic\HelloWorldBasic_caption.rsc" 
"..\..\..\epoc32\data\z\system\apps\HelloWorldBasic\HelloWorldBasic.aif" -
"!:\system\apps\HelloWorldBasic\HelloWorldBasic.aif" 
 Do đã di chuyển thư mục HelloWorldBasic nên việc sử dụng đường dẫn tương 
đối (..\..\..\) không đúng. Ta cần sửa lại đường dẫn tuyệt đối như sau trước khi gọi 
lệnh makesis: 
;updated sis file 
"%EPOCROOT%\epoc32\release\thumb\urel\HelloWorldBasic.APP" 
-"!:\system\apps\HelloWorldBasic\HelloWorldBasic.app" 
"%EPOCROOT%\epoc32\data\z\system\apps\HelloWorldBasic\HelloWorldBasic.rsc" 
-"!:\system\apps\HelloWorldBasic\HelloWorldBasic.rsc" 
"%EPOCROOT%\epoc32\data\z\system\apps\HelloWorldBasic\HelloWorldBasic_capt
ion.rsc" -"!:\system\apps\HelloWorldBasic\HelloWorldBasic_caption.rsc" 
"%EPOCROOT%\epoc32\data\z\system\apps\HelloWorldBasic\HelloWorldBasic.aif" 
-"!:\system\apps\HelloWorldBasic\HelloWorldBasic.aif" 
 Bộ SDK 1st Ed phát sinh toàn bộ các tập tin thực thi của một ứng dụng vào 
đường dẫn đã nêu trên. Trong khi đó SDK 2nd Ed, FP 2 chỉ phát sinh tập tin 
.app vào đường dẫn này; các tập tin còn lại được phát sinh theo đường dẫn: 
"%EPOCROOT%\epoc32\data\z\system\apps\Ten_ung_dung\ (*) 
* %EPOCROOT% là đường dẫn chứa thư mục Epoc32 của bộ SDK 
 Phụ lục B. Khái niệm cơ bản khi lập trình C++ trên hệ điều hành Symbian 
132 
Phụ lục B Khái niệm cơ bản khi lập trình C++ trên hệ 
điều hành Symbian 
B.1 Các qui ước đặt tên 
Môi trường lập trình trên Symbian dùng các qui ước đặt tên để thể hiện ý nghĩa, 
vai trò và tầm quan trọng của các lớp, biến, hàm trong mã nguồn. Các qui ước này 
liên quan mật thiết đến việc quản lý tài nguyên (bộ nhớ, tập tin…) vốn rất hạn chế 
trên điện thoại di động. Cụ thể: 
B.1.1 Qui ước đặt tên lớp 
Loại Ví dụ Mô tả 
Lớp bắt đầu 
bằng chữ T 
TDesC, TPoint, TFileName Các lớp bắt đầu bằng chữ T không có 
hàm hủy. Nó giống như các kiểu dữ 
liệu xây dựng sẵn (built-in). Các lớp 
này cũng thường dùng thay cho struct. 
Lớp bắt đầu 
bằng chữ C 
CConsoleBase, CActive, 
CBase 
Bất cứ lớp nào dẫn xuất từ lớp CBase 
đều bắt đầu bằng chữ C. Các lớp này 
luôn được cấp phát vùng nhớ trên heap. 
Lớp bắt đầu 
bằng chữ R 
RFile, RTimer, RWriteStream, 
RWindow 
Bất cứ lớp nào thao tác với các tài 
nguyên (file, time, v.v…) đều bắt đầu 
bằng chữ R (viết tắt của từ Resource). 
Hầu hết các lớp này đều dùng hàm 
Close() để giải phóng nguồn tài nguyên 
mà nó sở hữu. 
Lớp giao diện 
bắt đầu bằng 
chữ M 
MGraphicsDeviceMap, 
MEikMenuObserver 
Một giao diện (interface) gồm nhiều 
hàm ảo và không có dữ liệu. Các lớp 
bắt đầu bằng chữ M dùng trong đa kế 
thừa. 
Các lớp static User, Math, Mem, ConeUtils Một lớp chỉ chứa toàn hàm static. Các 
lớp này thích hợp dùng chứa các hàm 
thư viện 
Struct SEikControlInfo Kiểu dữ liệu struct thường bắt đầu bằng 
chữ S. Tuy nhiên, sau này trong 
Symbian người ta không dùng kiểu 
struct nữa mà thay vào đó là dùng các 
lớp bắt đầu bằng chữ T. 
Bảng B. 1 Qui ước đặt tên lớp 
 Phụ lục B. Khái niệm cơ bản khi lập trình C++ trên hệ điều hành Symbian 
133 
Khi lập trình, các lớp T, R, và C được sử dụng nhiều nhất trong đó việc giải 
phóng vùng nhớ cho các đối tượng lớp C khi sử dụng xong là rất quan trọng. Khi 
tạo ra một lớp mới, lập trình viên nên tuân thủ nguyên tắc đặt tên này giúp mã 
nguồn có sự thống nhất, trong sáng và dễ quản lý. Cụ thể lớp mới chỉ có biến thành 
viên T thì bắt đầu bằng T, chứa một biến thành viên là đối tượng lớp C thì là lớp C. 
B.1.2 Qui ước đặt tên dữ liệu 
Loại Ví dụ Mô tả 
Kiểu enum EMonday, 
ESolidBrush 
Các hằng trong kiểu enum thường bắt đầu bằng chữ 
E và tên của enum thì bắt đầu bằng chữ T, chẳng hạn 
EMonday là thành phần của enum TDayOfWeek 
Hằng số KRgbWhite, 
KMaxFileName 
Các hằng số thường bắt đầu bằng chữ K 
Biến thành 
viên 
iDevice, iSize Biến thành viên của một lớp bắt đầu bằng chữ “i” . 
Chữ “i” là viết tắt của từ “instance” 
Tham số aDevice, aSize Các tham số bắt đầu bằng chữ “a”. Chữ “a” là viết 
tắt của từ “argument” 
Các biến 
“automatic” 
device, size, x, y Các biến automatic là các biến mà việc quản lý vùng 
nhớ do Symbian thực hiện tự động. Người dùng 
không cần cấp phát vùng nhớ khi khai báo và không 
hủy khi sử dụng xong. 
Bảng B. 2 Qui ước đặt tên biến 
 Phụ lục B. Khái niệm cơ bản khi lập trình C++ trên hệ điều hành Symbian 
134 
B.1.3 Qui ước đặt tên hàm 
Loại Ví dụ Mô tả 
Hàm “none-
leaving” 
Foo(), Draw() Hàm “none-leaving” là những hàm trong quá trình thực 
thi chắc chắn không gặp những lỗi có thể làm sụp 
chương trình mà không phải do lập trình như thiếu bộ 
nhớ, người dùng xóa tập tin…Nói cách khác, hàm 
“none-leaving” bao giờ cũng thực hiện thành công và trả 
về giá trị lập trình viên đã dự tính. 
Hàm “leaving” CreateL(), 
NewL(), 
AllocL() 
Các hàm “leaving” kết thúc bằng ký tự L. Ngược lại với 
hàm“none-leaving” một hàm “leaving” là một hàm có 
cấp phát bộ nhớ, mở file, v.v…, nói chung là thực hiện 
những thao tác liên quan đến tài nguyên mà có thể 
không thành công do thiếu tài nguyên hoặc do những 
điều kiện về môi trường (không phải lỗi do lập trình). 
Lúc này lập trình viên phải “bẫy” được lỗi xảy ra để 
không sụp chương trình. Chi tiết về hàm “leaving” sẽ 
được trình bày trong phần quản lý lỗi. 
Hàm LC AllocLC(), 
CreateLC(), 
OpenLC() 
Cấp phát vùng nhớ cho một đối tượng và đưa đối tượng 
vào cleanup stack. Sẽ trình bày chi tiết trong phần quản 
lý lỗi 
Hàm lấy dữ 
liệu 
Size(), 
Device(), 
GetTextL() 
Các hàm này thường là danh từ và dùng để truy cập đến 
các biến private trong một lớp. Các hàm truy cập dữ liệu 
có liên quan đến tài nguyên (bộ nhớ, file, v.v…) thường 
kết thúc bằng chữ L và bắt đầu bằng chữ Get. 
Các hàm thiết 
lập 
SetSize(), 
SetDevice(), 
SetTextL() 
Các hàm này thường bắt đầu bằng chữ Set và dùng để 
gán giá trị cho một thuộc tính, thông thường là thuộc 
tính private trong một lớp. Các hàm có liên quan đến tài 
nguyên thường kết thúc bằng chữ L. 
Bảng B. 3 Qui ước đặt tên hàm 
Lưu ý: lập trình viên không bắt buộc phải tuân theo các qui ước đặt tên trên. Tuy 
nhiên tất cả các lớp, biến, hằng số, tên hàm… của Symbian đều được đặt theo qui 
ước này. Nên muốn phát triển ứng dụng cho hệ điều hành Symbian, lập trình viên 
bắt buộc phải biết các qui tắc này. Đồng thời khi xây dựng các lớp mới hay kế thừa 
cho ứng dụng của mình, lập trình viên rất nên tuân theo qui ước này nhằm giúp mã 
nguồn trong sáng, dễ hiểu, dễ bảo trì và chuẩn hóa. 
 Phụ lục B. Khái niệm cơ bản khi lập trình C++ trên hệ điều hành Symbian 
135 
B.2 Kiểu dữ liệu cơ bản 
Môi trường lập trình trên Symbian cung cấp các kiểu dữ liệu cơ bản tương 
đương với các kiểu xây dựng sẵn của C++. Đó là các lớp dữ liệu cơ bản mà khi sử 
dụng không cần cấp phát hay hủy 1 cách tường minh; các lớp này bắt đầu bằng ký 
tự T. Lưu ý, khi lập trình trên Symbian không nên dùng các kiểu dữ liệu xây dựng 
sẵn của C++ mà hãy dùng các (lớp) kiểu cơ bản mà Symbian cung cấp. Lý do đơn 
giản vì thiết bị thực (chạy hệ điều hành Symbian) có thể không làm việc tốt với các 
kiểu dữ liệu xây dựng sẵn của C++. 
B.2.1 Kiểu số nguyên: 
Kiểu dữ liệu 
có dấu 
Kiểu dữ 
liệu không 
dấu 
Kiểu dữ liệu C++ tương đương Mô tả 
TInt8 TUint8 signed char & unsigned 
char 
Số nguyên 8 bit có dấu và 
không dấu 
TInt16 TUint16 short int & unsigned short int 
Số nguyên 16 bit có dấu và 
không dấu 
TInt32 TUint32 long int & unsigned long int 
Số nguyên 32 bit có dấu và 
không dấu 
TInt64 Số nguyên 64 bit 
TInt TUint int & unsigned int 
Số nguyên ít nhất 32 bit có dấu 
và không dấu 
Bảng B. 4 Kiểu số nguyên 
B.2.2 Kiểu số thực: 
Kiểu dữ liệu 
Kiểu dữ liệu C++ 
tương đương 
Mô tả 
TReal32 float Số thực 32 bit 
TReal64 double Số thực 64 bit 
TReal Tương đương với TReal64 
Bảng B. 5 Kiểu số thực 
Lưu ý: Hều hết các HĐH Symbian hiện nay không hỗ trợ phần cứng xử lý số chấm 
động. Vì vậy các phép toán trên số thực sẽ chậm hơn rất nhiều lần so với số nguyên. 
Vì vậy bạn nên hạn chế tối đa việc sử dụng số thực. 
 Phụ lục B. Khái niệm cơ bản khi lập trình C++ trên hệ điều hành Symbian 
136 
B.2.3 Các kiểu cơ bản khác: 
Kiểu dữ liệu 
Kiểu dữ liệu C++ 
tương đương 
Mô tả 
TChar 32-bit unsigned integer 
Kiểu ký tự của Symbian, dài 32 bit, 
cung cấp nhiều hàm xử lý trên ký tự 
TText8 char Kiểu ký tự 1 byte 
TText16 wchar_t Kiểu ký tự Unicode (2 bytes) 
TText Tương đương với TText16 
TBool int Kiểu logic, nhận 2 giá trị ETrue/ EFalse 
TAny void 
Bảng B. 6 Các kiểu cơ bản khác 
Lưu ý: 
[1] Kiểu TText16 có cùng kích thước với TUint, ở đây chỉ có ý nghĩa giúp 
chương trình tường minh hơn (TText16 chứa ký tự, TUint chứa số nguyên 
không dấu) 
[2] Lớp TChar là lớp ký tự đặc biệt của Symbian, biểu diển được các ký tự 
Unicode trong khoảng 0x10000 to 0xFFFFF (trong khi TText16 chỉ biểu 
diễn ký tự 16 bit). Đồng thời lớp TChar cũng cung cấp 1 loạt các hàm xử lý 
ký tự (viết thường, viết hoa, phân loại kiểu Unicode...) 
 Phụ lục C. Chuẩn nén Dictzip# 
137 
Phụ lục C Chuẩn nén Dictzip# 
Chuẩn nén Dictzip# được chúng em đề nghị để giải quyết nén dữ liệu và truy 
xuất ngẫu nhiên trên tập tin nén cho riêng ứng dụng của mình. 
Cách thức nén 
Tùy chọn bộ thư viện nén và giải nén. Trong chương trình ứng dụng của mình, 
chúng em sử dụng bộ thư viện mã nguồn mở zlib version 1.1.4. 
Cấu trúc lưu trữ 
Định dạng của tập tin nén theo chuẩn Dictzip# 
 Các qui ước chung: 
o Ký hiệu cho 1 byte: 
o Ký hiệu cho một số lượng byte có thể thay đổi : 
 Định dạng tập tin: một tập tin Dictzip# gồm một chuỗi các thành phần 
(các tập dữ liệu nén). Định dạng của từng phần sẽ được trình bày trong 
phần dưới đây. Các thành phần chỉ đơn giản sắp xếp liên tiếp nhau trong 
tập tin, mà không có các thông tin thêm gì ở phía trước, giữa, hay sau 
chúng. 
 Định dạng các thành phần: 
o Thành phần đầu tập tin: 
 Phụ lục C. Chuẩn nén Dictzip# 
138 
o Thành phần dữ liệu: 
 Ý nghĩa các thành phần: 
o L: là chiều dài tối đa của khối dữ liệu sau khi giải nén không vượt 
quá 64 KB. 
o XLEN: là chiều dài của khối dữ liệu liền sau đó. 
o uncompr length words: cho biết kích thước từng khối dữ liệu (2 
byte) sau khi giải nén. 
 Phụ lục D. Các bộ dữ liệu của từ điển 
139 
Phụ lục D Các bộ dữ liệu của từ điển 
Dữ liệu nghĩa từ điển 
Từ điển Số từ Kích thước Nguồn dữ liệu 
Vietnamese - English 91146 1.9 MB [1] 
Vietnamese - France 39071 1.7 MB [2] 
Vietnamese - German 11922 0.4 MB [2] 
Vietnamese - Vietnamese 30158 2.0 MB [2] 
English - English 121962 8.1 MB [3] 
English - Vietnamese 68998 4.3 MB [1] 
English - German 93279 1.4 MB [3] 
English - France 8799 0.2 MB [3] 
English - Spanish 5907 0.1 MB [3] 
English - Netherlandish 7714 0.2 MB [3] 
English - Italian 4519 < 0.1 MB [3] 
English - Russian 3385 < 0.1 MB [3] 
English - Afrikaans 6397 < 0.1 MB [3] 
German - Vietnamese 45070 4.7 MB [2] 
German - English 81674 1.3 MB [3] 
German - Netherlandish 12812 0.3 MB [3] 
German - Portuguese 8742 0.2 MB [3] 
German - France 8168 0.1 MB [3] 
German - Italian 4454 < 0.1 MB [3] 
France - Vietnamese 47951 2.9 MB [2] 
France - English 7831 0.2 MB [3] 
France - Netherlandish 9604 0.2 MB [3] 
France - German 6114 0.2 MB [3] 
Portuguese - English 10398 0.2 MB [3] 
Spanish - English 4502 0.1 MB [3] 
Afrikaans - English 5129 < 0.1 MB [3] 
Swedish - English 5220 < 0.1 MB [3] 
Danish - English 3997 < 0.1 MB [3] 
Turkish - English 1026 < 0.1 MB [3] 
Czech - English 489 < 0.1 MB [3] 
Afrikaans - German 3800 < 0.1 MB [3] 
Computing 13798 2.2 MB [3] 
 Phụ lục D. Các bộ dữ liệu của từ điển 
140 
Với nguồn dữ liệu nghĩa từ điển được lấy từ : 
[1] English Study 4.0 
[2]  
[3]  
Dữ liệu âm thanh 
Âm thanh tiếng Việt: Đồ án “Đọc văn bản tiếng Việt” của môn học “Xử lý 
ngôn ngữ tự nhiên” do T.S Đinh Điền hướng dẫn. 
Âm thanh tiếng Anh: Được phát sinh từ các từng tiếng Anh thông dụng trên 
trang web  
Tài liệu tham khảo 
141 
Tài liệu tham khảo 
Tài liệu viết 
[1] Martin Tasker, Jonathan Allin, Jonathan Dixon, John Forrest, Mark Heath, 
Tim Richardson, Mark Shackman, Professional Symbian Programming, 
Wrox Press Ltd., 2000 
[2] T.S. Dương Anh Đức, Th.S. Trần Hạnh Nhi, “Nhập môn Cấu trúc dữ liệu và 
thuật toán” 
[3] Trương Hải Bằng, “Giáo trình Cấu trúc dữ liệu 2”, 2001 
[4] Tino Pyssysalo, Terje Bergstrom, Jurgen Bocklage, Pawel Defee, Patrik 
Granholm, Juuso Huttunen, Ville Karkkainen, Matti Kilponen, Matti 
Kilponen, Tomi Koskinen, Mika Matela, Ilkka Otsala, Antti Partanen, Timo 
Puronen, Jere Seppal, Juha Siivola, Saiki Tanabe, Jukka Tarhonen, Tommi 
Terasvirta, Tuukka Turunen, Tommi Valimaki , “Programming for the 
Series 60 Platform and Symbian OS”, John Wiley & Sons Ltd, 2003 
[5] Nguyễn Thiện Chương, Phạm Tuấn Sơn, “Xây dựng ứng dụng từ điển trên 
Pocket PC”, Luận văn cử nhân tin học, Đại học Khoa học Tự nhiên Tp.Hồ 
Chí Minh, 2004 
[6] Đặng Minh Thắng, Chu Nguyên Tú, “Xây dựng hệ thống máy tính điều 
khiển từ xa sử dụng công nghệ Bluetooth”, Luận văn cử nhân tin học, Đại 
học Khoa học Tự nhiên Tp.Hồ Chí Minh, 2004 
[7] Phạm Khắc Hưng, Võ Hồng Duyên, “Tìm hiểu và nghiên cứu kỹ thuật phát 
triển ứng dụng trên môi trường Symbian OS”, Luận văn cử nhân tin học, Đại 
học Khoa học Tự nhiên Tp.Hồ Chí Minh, 2004 
[8] Huỳnh Tấn Kiệt, Trần Thị Thùy Trang, “Nghiên cứu hệ điều hành Symbian 
6.0 và Xây dựng ứng dụng minh họa trên điện thoại di động Nokia 9210”, 
Luận văn cử nhân tin học, Đại học Khoa học Tự nhiên Tp.Hồ Chí Minh, 
2004 
[9] T.S Đinh Điền, “Giáo trình xử lý ngôn ngữ tự nhiên”, 2004 
[10] Series 60 SDK Help – Nokia Series 60 
Tài liệu tham khảo 
142 
Website 
[1]  
[2]  
[3]  
[4]  
[5]  
[6]  
[7]  
[8]  
[9]  (Dictzip – Linux Man Page) 
Dữ liệu từ điển 
[1] English Study 4.0 
[2]  
[3]  
[4]  
            Các file đính kèm theo tài liệu này:
CNTT1008.pdf