Máy ảo:
STT Tính năng thử nghiệm Đánh giá
1 Khởi động ứng dụng Khởi danh sách từ < 1s động nhanh, từ khi bắt đầu đến khi hiển thị 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đếừn 3s khi bắt đầu đến khi hiển thị danh sách từ 2s
2 Hinghển thĩa tiếịng Vi danh sách tệt ừ và
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 Tnghốc ĩa độ tra từ và hiển thị
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 trung bình. MSử dụng loa ộđt siện thoố từ tiạếi. Chng Viấệt lt nghe không rõ. ượng âm thanh
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.
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ỉ:
http://www.mobiledict.vsccorp.net Trang web hiện nay:
http://www.th2001.net/mdict
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.
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
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.
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 http://www.ActiveState.com/ActivePerl/)
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
http://forum.nokia.com (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 http://java.sun.com)
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
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:
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:
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.
Ổ đĩ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:
%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\ (*)
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