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

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

pdf145 trang | Chia sẻ: haianh_nguyen | Lượt xem: 1266 | Lượt tải: 0download
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:

  • pdfCNTT1008.pdf
Tài liệu liên quan