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: 1266 | 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