MỤC LỤC
Mở đầu: trình bày nhu cầu thực tế, lý do thực hiện đề tài và các.
Trong nền hệ thống series 60, máy ảo Java với ứng dụng của nó (MIDlets) chạy trên môi trường điều khiển gọi là sandbox; vì vậy không thể sử dụng mọi chức năng của thiết bị, ví dụ không thể truy cập hệ thống tập tin vốn là một thế mạnh của dòng điện thoại thông minh. Việc hiển thị thông tin cũng được hỗ trợ tốt với nhiều loại control như label, listbox, textbox, checkbox… cho phép thay đổi nhiều thuộc tính như kích thước, màu sắc, font chữ… Ngoài ra ứng dụng giao diện người dùng viết bằng C++ trên Symbian có thể hoạt động theo mô.
Ta giải quyết vần đề này bằng kĩ thuật Cleanup stack mà Symbian hỗ trợ như sau: dùng hàm CleanupStack::PushL()để đưa con trỏ đối tượng vào Cleanup stack trước khi gọi bất kì hàm leave nào; sau đó nếu những hàm leave đã hoàn thành mà không có lỗi xảy ra, ta gọi hàm CleanupStack::Pop() để lấy con trỏ đối tượng ra khỏi Cleanup stack. Trong khi khởi tạo các đối tượng phức tạp (đối tượng lớp C chứa một hoặc nhiều đối tượng lớp C khác cần được khởi tạo) có thể dẫn tới tình trạng leave mà việc quản lý bằng Cleanup stack một cách tường minh gặp khó khăn do ta không biết đối tượng nào đã được khởi tạo và đối tượng nào chưa.
Một đối tượng buffer descriptor là 1 thể hiện của lớp khuôn mẫu trong đó tham số mẫu truyền vào là một số nguyên xác định kích thước vùng dữ liệu được cấp phát. Nếu vì lý do nào đó đối tượng này bị hủy hoặc cấp phát lại (trường hợp heap descriptor) thì pointer descriptor sẽ không trỏ đến giá trị đúng nữa.
Đối với mảng dùng vùng nhớ liên tục (flat array buffer), khi thêm một phần tử vào mảng mà không còn vùng nhớ trống; lúc này vùng nhớ của mảng được mở rộng bằng cách cấp phát lại, số vùng nhớ tăng thêm này chính là độ phân hạt (granularity) của mảng. Ví dụ với với mảng 3 phần tử kích thước cố định được khởi tạo với độ phân hạt là 4; vùng nhớ cấp phát ban đầu cho mảng chứa được 4 phần tử; khi thêm phần tử thứ 5 vào mảng thì vùng nhớ được cấp phát lại với sức chứa 8 phần tử. Cụ thể đối với mảng các số nguyên và mảng con trỏ (là hai loại mảng vốn được sử dụng rất nhiều trong C++), ta sẽ dùng lớp RArray<TInt>, RArray<TUint> và RPointerArray để việc quản lý, sử dụng mảng động đơn giản và hiệu quả hơn nhiều lần.
Lập trình viên có thể dùng mảng động để lưu một mảng chuỗi, tuy nhiên Symbian cung cấp những lớp dùng riêng để lưu trữ mảng chuỗi, trong đó ta có thể dễ dàng thêm, cập nhật xóa và truy xuất các phần tử chuỗi trong mảng.
Hầu hết các bộ thư viện nén này đều là mã nguồn mở, tính đúng đắn còn hạn chế, thiếu nhiều hàm quan trọng, một trong những hàm quan trọng là hàm nén các khối khối dữ liệu không biết trước kích thước thành các khối dữ liệu nén đã biết kích thước. Dictzip# nén các khối dữ liệu đã biết trước kích thước l (l tối đa là 64KB) thành các khối nén có kích thước bli (kích thước các khối nén của chuẩn Dictzip# không biết trước được, kích thước các khối nén của chuẩn Dictzip là một số cố định tối đa 64KB, đây chính là điểm khác nhau cơ bản giữa Dictzip# và Dictzip). Theo bảng trên ta thấy trường dữ liệu Word (từ gốc của từ) có kích thước biến động, ta không thể phân tích mẫu tin chỉ mục bằng cách tạo thêm một tập tin chỉ mục nữa để lưu vị trí và chiều dài của mẫu tin chỉ mục trên vì biện pháp này không khả thi.
Khi tiến hành băm theo cách này, tập tin chỉ mục sẽ bị chia quá vụn, kích thước bộ nhớ bị chiếm dụng bởi bảng băm sẽ gia tăng, điều này không cần thiết vì băm cấp ba đã dung hòa được kích thước bộ nhớ và thời gian nạp từ.
Một giải pháp khác là sử dụng lại các font chữ Unicode hiện có trên máy tính như Time New Romans, Arial, Verdana Ref… Những font chữ này đều thuộc loại font TrueType và bộ quét cho phép nhận dạng font TrueType từ lâu đã được biết đến với tên gọi “Freetype” (www.freetype.org ). Nếu không có ý định mở rộng các control khi ứng dụng đang hoạt động, thông thường lập trình viên trả về trực tiếp số control thành phần trong control kết hợp (CountComponentControls()) và dùng câu lệnh switch (bắt đầu bằng. case 0:) để trả về con trỏ các cont rol thành phần (ComponentControl()). Mỗi ứng dụng có một đối tượng tĩnh CCoeEnv duy nhất khi thực thi, đối tượng này cung cấp các tiện ích liên quan tới giao diện của ứng dụng như lấy graphic content, font chữ, đọc tập tin tài nguyên…Chi tiết về đối tượng tĩnh CCoeEnv có thể tham khảo trong SDK Help.
Đối với các ngôn ngữ thuộc loại hình đơn lập như tiếng Việt, một số từ điển được xây dựng trên Desktop hiện nay đã giải quyết phần phát âm cho ngôn ngữ thuộc loại hình đơn lập bằng cách thu âm từng tiếng riêng lẻ tạo thành một thư viện âm thanh (tiếng Việt khoảng 10.000 tiếng).
Nếu không tìm thấy nghĩa từ mới: ứng dụng chọn từ gần đúng nhất trong danh sách từ; nhưng không hiển thị nghĩa của từ gần đúng này. 4 CMobile_dict_list_view Boundary Lớp list view hiển thị danh sách, cho phép tra từ 5 CMobile_dict_list_view_container Boundary Lớp chứa các control của. Đ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ể.
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. 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. 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., ….
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., ….
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. Lưu ý: ứng dụng chỉ hiển thị những từ điển đã được chép vào thẻ nhớ (E:\MDict_Data\). 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.
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.
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. Ở 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 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.
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á).
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. 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. 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ớ).
Quá trình khởi động ứng dụng và hiển thị từ điển được chọn > 5s Số lượng từ.
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…). 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ộ.