Kiến trúc của 1 phần mềm trên Symbian

Một phần của tài liệu 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 (Trang 42)

Một ứng dụng trên Symbian thưòng được chia làm 2 phần: phần giao diện ứng dụng (application UI) và phần mô hình ứng dụng (application model).

Phần giao diện bao gồm các yếu tốđồ họa và nhận dữ liệu từ người dùng, còn phần mô hình bao gồm dữ liệu của ứng dụng và các thuật giảị

Với kiến trúc này sẽ giúp cho việc cài đặt, thử nghiệm 2 phần được tiến hành dễ dàng hơn.

KHOA CNTT –

ĐH KHTN

43

Hình 3-2 Kiến trúc thư viện

Phần mô hình ứng dụng thường được cài đặt riêng biệt thành một thư viện DLL. Còn phần giao diện sẽđược cài đặt dựa trên các thành phần GUI của Crystal.

Thành phần chính là một lõi chung, tên là Uikon, và một thành phần khác được xây dựng trên nó tên là Ckon.

Uikon và Ckon là lớp trên của 2 thành phần khác: UI Control Framework (hay còn gọi là Cone), và Application Architecture (AppArc). Thư viện GUI sẽ cung cấp những bản cài đặt (implementation) của lớp đối tượng trừu tượng này .

Theo đó, UI Control Framework định nghĩa các khái niệm UI ở mức đơn giản. Còn Application Architecture định nghĩa kiến trúc cho ứng dụng chẳng hạn như file…

Đối với giao diện Crystal GUI, Uikon và Ckon là một tập các file DLL và file resourcẹ Thư viện này cung cấp cho lập trình viên một bộ khung để lập trình, trong đó, tất cả các ứng dụng đều sử dụng bộ khung này, ví dụ như khởi tạo, các phần code có sẵn, truy cập file…và một tập các thành phần giao diện chuẩn, bao gồm các control, dialog…

KHOA CNTT –

ĐH KHTN

44 Hình sau minh họa cho Uikon và Ckon:

Hình 3-3 Lớp Ckon và Uikon trong kiến trúc thư viện

3.2.2 Kiến trúc lớp của ứng dụng : (Application Class Architecture)

Một bộ khung của ứng dụng bao gồm 4 đối tượng : application, document, AppUI, và AppView.

Ta có sơđồ sau:

KHOA CNTT –

ĐH KHTN

45 Chẳng hạn có CExample- là tên của ứng dụng, được viết bởi lập trình viên. Các lớp

CEik- được cung cấp bởi Uikon Core APỊ CCoeControl và CCoeAppUi thuộc về UI Control Framework. CApaDocument và CApaApplication thuộc về AppArc. Trong đó:

o Lớp application định nghĩa các thuộc tính của ứng dụng: UID, tiêu đề và tạo mới một document.

o Lớp document trình bày mô hình dữ liệu cho ứng dụng. Trong các ứng dụng về tập tin, nó thực hiện các thao tác đọc/ghi dữ liệụ Nó tạo một yêu cầu của tài liệu bằng cách tạo appUỊ

o appUi là nơi tập trung các lớp giao diện. Nó tạo và sở hữu các control để hiển thị dữ liệu, và bắt tất cả các sự kiện từ control.

o AppView có thể xem như là một control để hiện thị dữ liệu và tương tác người dùng. Một ứng dụng phức tạp có thể có nhiều cách để hiển thị dữ liệu, do đó sẽ có nhiều view.

Tuy nhiên đối với kiến trúc này thì có một sốđiểm cần lưu ý khi lập trình : o Sự phân cách giữa xử lý dữ liệu và hiển thị dữ liệụ

o Sự thống nhất giữa xử lý file và các tài liệụ

o Có thể nhúng ứng dụng khác vào ứng dụng hiện thờị o Hướng sự kiện.

KHOA CNTT –

ĐH KHTN

46

Hình 3-5 Liên hệ giữa các thành phần trong kiến trúc của ứng dụng

Trình tự thực hiện các thành phần trong ứng dụng là : Application tạo một document, rồi đến lượt document tạo App UI, AppUI tiếp tục tạo View.

Khi AppUI nhận lệnh (command), AppView nhận và hiển thị dữ liệụ Document chứa mô hình được hiển thị bởi view.

3.3 Các ngôn ng có th dùng phát trin ng dng trên HDH Symbian Symbian

Phần mềm viết trên HDH Symbian, version 6.0 có thểđược phát triển bằng 4 ngôn ngữ:

o EPOC C++ : HDH Symbian được viết bằng C++. Do đó, dùng EPOC C++ thì rất hiệu quả và có thể truy cập đến tất cả các hàm APIs mà HDH Symbian có cung cấp.

o Java: Java 2, Micro Edition, với rich profiles. PersonalJava 3.0 bao gồm trọn bộđầy đủ hệ quản lý dữ liệu Java và các hàm APIs cho giao tiếp, đồ họa AWT. JavaPhone 1.0 cung cấp khả năng truy cập ở các

KHOA CNTT –

ĐH KHTN

47 thiết bị không dây, chẳng hạn như contacts, schedule, telephony, power monitoring ….

o WAP: HDH Symbian version 6.0 cài đặt WAP version 1.1 communication stacks và browsers standars

o HTML: trình duyệt web của Symbian version 6.0 cài đặt HTML 3.2 với đầy đủ bộ khung, HTTPS và nhúng Java applets.

3.3.1 Phát triển ứng dụng bằng C++:

Mã nguồn cho 1 project viết bằng C++ bao gồm: o C++ source file( .cpp, .h)

o tập tin nguồn cho resource của chương trình ( resource files, bitmap, icons)

o những tập tin hệ thống của project: tập tin chứa thông tin xây dựng (bld.inf), 1 hay nhiều makefile specifications( .mmp)

SDK của cả Quartz và Crystal của Symbian cung cấp các công cụ để xây dựng chương trình bằng C++:

o công cụ xây dựng các makefiles và điều khiển các tác vụ mà được điều khiển bời tiến trình xây dựng (build process).

o công cụ để chuyển makefile specifications thành makefile hay

workspace của Visual C++ IDẸ

o Trình biên dịch GNU C++, phiên bản 98r2, thiết kết riêng cho các yêu cầu của EPOC và xây dựng các chương trình cho các máy hoạt động dựa trên ARM.

o Trình biên dịch và chuyển đổi các resources của chương trình (resource files, bitmap, icons)

KHOA CNTT –

ĐH KHTN

48 o Công cụ trợ giúp thường trú, để chuyển phần trợ giúp viết cho EPOC

R5 thành cho Quartz và Crystal.

o tập tin cài đặt từ hệ thống cài đặt của Symbian. o App wizard

o GUI icon và application information file builder.

o Perl, ngôn ngữ scripting được dùng bởi rất nhiều công cụ.

Để xây dựng và debug chương trình bằng mày giả lập thì cần phải có Microsoft Visual C ++,version 6.0.

3.3.2 Phát triển ứng dụng bằng Java

Mã nguồn cho 1 project viết bằng Java bao gồm: o Java source file( .java)

o Các tập tin cần thiết cho việc xác định ứng dụng sẽ được cài đặt như thế nào ( .app, .txt)

o Sử dụng JavaDoc cho việc documeting APIs và implemention.

SDK của cả Quartz và Crystal của Symbian cung cấp các công cụ để xây dựng chương trình bằng Java:

o batch files để xây dựng các tập tin JAR cho các máy giả lập. o GUIicon và application information file builder.

o GUI icon và application information file builder, như trong C++, nhưng có hổ trợ riêng cho các yêu cầu của Javạ

o tập tin cài đặt từ hệ thống cài đặt của Symbian.

Để xây dựng và debug chương trình bằng mày giả lập thì cần phải có môi trường lập trình Java chuẩn. Còn để phát triển và debug bằng phương pháp Java nguyên thủy cần có SDK của Quarzt hay Crystal C++: SDKs cho Java bao gồm phần bổ

KHOA CNTT –

ĐH KHTN

49 sung C++ SDKs chứa phần hổ trợ cho build-time của phương phát Java nguyên thủỵ Ta vẫn có thể dùng thư viện của Java mà không cần SDKs của C++.

Ngoài ra, SDKs của quarzt và Crystal cung cấp hổ trợđầy đủ cho việc xây dựng các ứng dụng.

3.3.3 Phát triển ứng dụng bằng WAP và HTML:

Cũng có thể nhưng rất hiếm khi dùng 2 ngôn ngữ này để xây dựng phần mềm trên HDH Symbian.Cách làm cũng giống như C++ và Java:

o viết trang HTML hay WML

o sao chép những trang này đến thư mục thích hợp trong máy giả lập. o dùng ứng dụng WAP hay WEB trên mày giả lập để biên dịch các

trang nàỵ

o sửa lại cho thật đúng và biên dịch những trang này trên máy giả lập. o dùng hệ thống cài đặt để cài đặt những trang này trên thiết bị thật. Thường thì người ta phát triển nội dung HTML và Wap bằng server và sau đó biên dịch trên thiết bị thật. Các thiết bị dùng HDH Symbian, và máy giả lập đều có thể nối mạng nội bộ với nhau bằng cách dùng Windows NT Remote Access Services (RAS), để giảm bớt giá thành kiểm tra và tăng tốc độ kiểm tra lên.

KHOA CNTT –

ĐH KHTN

50

Chương 4 Xây dng ng dng VNSmartType

4.1 Giới thiệu

Ý tưởng : Như đã đề cập ở chương 1, với các thiết bị cầm tay thông minh như Pocket PC, smartphone nói chung, hệ điều hành Symbian 6.0 và Nokia 9210 nói riêng dường như chưa có một ứng dụng hỗ trợ soạn thảo Tiếng Việt hoàn chỉnh. Một bộ gõ Tiếng Việt, một số chức năng sao cho gõ soạn thảo nhanh chóng tiện lợi đối với những người sử dụng dạng điện thoại Crystal3 vẫn còn là điều mơước. Với các phím bấm tương đối nhỏ, soạn thảo không thể nhanh, việc có các chức năng hỗ trợ quả là rất quý giá và tiện lợi vô cùng. Đó là những ý tưởng ban đầu để hình thành nên VNSmartType. Một bộ gõ Tiếng Việt hoàn chỉnh, không những thế mà còn là một công cụ hỗ trợ soạn thảo đa dụng, dường như bạn không cần phải gõ từng chữ một với nhiều dấu rườm rà phức tạp vốn là đặc thù của Tiếng Việt.

4.2 Các chức năng

Trước hết VNSmartType phải là một bộ gõ tiếng việt, tương tự như Vietkey hay Unikey trên PC. Với vai trò là “một bộ gõ tiếng Việt”, VNSmartType phải hỗ trợ các kiểu gõ tiếng Việt khác nhau như chúng ta đã biết trên PC, đó là 3 kiểu gõ thông dụng nhất hiện nay4:

VNI TELEX VIQR

Và hỗ trợ toàn bộ bằng bảng mã Unicode (đây có thể xem là một trong những đặc tính mạnh mẽ của hệ điều hành Symbian 6.0). Với 3 kiểu gõ thông dụng này hầu

3 Dạng điện thoại có phần cứng tương tự máy tính cá nhân

4

KHOA CNTT –

ĐH KHTN

51 nhưđã đáp ứng nhu cầu của người dùng, đặc biệt cho người dùng cảm giác gần gũi với chiếc máy tính cá nhân quen thuộc.

Tuy nhiên, không phải không có những trở ngại, chúng ta hãy xem lại hình minh hoạ sau đây :

Hình 4-1 DTĐ Nokia 9210

Dễ dàng nhận thấy với Nokia 9210, sự hạn chế về các thiết bị là rất rõ ràng: bàn phím nhỏ, khó bấm, một số nút để soạn thảo nhanh trong PC bị lược bỏ, chính vì vậy dù đã hỗ trợ soạn thảo tiếng Việt khá hoàn chỉnh thì người dùng vẫn cảm thấy thật sự khó khăn khi thao tác. Chính vì vậy, một bộ gõ tiếng Việt cũng chưa thể khắc phục những hạn chế mà thiết bịđem lại cho người dùng. Vậy chúng ta cần gì ? Chúng ta cần một chức năng có khả năng tự động hoàn chỉnh từ khi chúng ta chỉ đánh một vài từđầu tiên (AutoComplete). Ví dụ chỉ cần đánh từ “ph” sẽ cho chúng ta một loạt các từ bắt đầu bằng “ph” như “phở gà”, ”phong thuỷ”, ”phương án”, ”phi vật thể”, ”phiếu thu tiền”…, và chỉ cần nhấn một phím, ta sẽ có được từ mình mong muốn.

KHOA CNTT –

ĐH KHTN

52 Chúng ta cần một chức năng có thể viết ra một từ thật dài mà ta thường hay dùng khi ta chỉ đánh một từ tắt của nó(AutoCorrect), ví dụ chúng ta chỉ cần đánh “it” lập tức cụm từ “dài ngoằn nghèo” “information technology” hay “Công nghệ thông tin” sẽ xuất hiện.

Nhận xét : Với 2 chức năng trên, chúng ta cảm thấy vô cùng tiện lợi và không cần phải gõ quá nhiều, việc này có ý nghĩa thật quan trọng trong thời đại công nghệ hiện nay khi công việc luôn dồn dập cấp bách và cần sự ngắn gọn, tiện lợi, nhanh chóng. Tiến xa hơn một bước, với Tiếng Việt chúng ta thường mất công bỏ các loại dấu khác nhau như huyền, sắc, ngã, hỏi, nặng… Việc ấy càng mất công khi thiết bị cầm tay vốn là quá nhỏ. Với AutoComplete và AutoCorrect chúng ta không cần đánh nhiều nhưng chúng ta cũng không thể lưu tất cả những từ của Tiếng Việt được, đó là chuyện không thể vì hạn chế về bộ nhớ xử lý….

Hai chức năng cơ bản trên chỉ hỗ trợ “những từ chúng ta thường dùng nhất”, xin nhắc lại “thường dùng nhất” mà thôi chúng ta không thể lạm dụng lưu quá nhiều từ sẽ dẫn tới xử lý chậm và tốn hao bộ nhớ.

Chính vì vậy VNSmartType hỗ trợ thêm chức năng “tự động thêm dấu văn bản” (Automatic Ađ Accents), đây là một chức năng khá thông minh, giúp chúng ta rất nhiều đặt biệt là khi có sự kết hợp với 2 chức năng hỗ trợ trên. Thử tượng tưởng thay vì chúng ta gõ “Cộng hoà xã hội chủ nghĩa Việt Nam” chúng ta chỉ cần gõ các chữ không dấu “Cong hoa xa hoi chu nghia Viet Nam” lập tức câu ấy sẽđược thêm các dấu Tiếng Việt nhanh chóng.

Có chức năng thêm dấu văn bản thì cũng phải có chức năng xoá dấu văn bản (Automatic Remove Accents), nhiều người nói rằng chức năng này vô lý quá, vì người Việt ai cũng muốn đọc văn bản có dấu chứ ai lại muốn đọc văn bản không dấu bao giờ !

Nhưng hãy nghĩ kỹ ! Với các đời điện thoại di động hiện nay, không phải máy nào cũng hỗ trợ Unicode, tức là rất nhiều máy không thể hiển thị tin nhắn Tiếng Việt, chính vì vậy nếu muốn gửi tin nhắn cho các loại máy khác nhau chúng ta nên có

KHOA CNTT –

ĐH KHTN

53 chức năng thêm dấu cũng như xoá dấu để các máy khác nhau đều nhận được tin nhắn đó. Càng quan trọng hơn nếu đó là một lời nhắn cấp bách !

Tóm lại : VNSmartType có các chức năng sau đây : - Bộ gõ Tiếng Việt hoàn chỉnh

- “Bộ tứ” chức năng hỗ trợ thông minh : o AutoComplete

o AutoCorrect

o Automatic Ađ Accents o Automatic Remove Accents

- Cùng với những chức năng người dùng khác như cho phép tìm, thêm xoá, sửa các từ trong list các từ của các chức năng…..

4.3 Kỹ thuật chạy nền (Background)

Trước hết, một bộ gõ tiếng Việt phải đáp ứng các yêu cầu cần thiết sau :

Chạy đồng thời với các chương trình khác, để bất cứđang ởứng dụng soạn thảo nào có hỗ trợ Unicode đều phát huy tác dụng được.

Bắt được phím bấm của các chương trình khác để từđó tuỳ biến xử lý hiển thị tiếng Việt.

Như vậy việc cần làm của chúng ta là phải tìm kiếm API hỗ trợ việc chạy đồng thời với các chương trình khác (nói ngắn gọn là chạy nền – chạy background) và tìm cách bắt tất cả các phím của các ứng dụng đồng thời với bộ gõ của chúng tạ

Việc chạy nền không quá khó khăn trong Symbian 6.0 vì hệđiều hành này đã hỗ trợ các API của lớp CAcitve được cụ thể hoá cho Dialog có tên là CancelDialog đã xây dựng sẵn. Đây là dialog được xây dựng kế thừa của lớp CActive, đối tượng được

KHOA CNTT –

ĐH KHTN

54

đóng gói để yêu cầu những dịch vụ không đồng bộ và để bắt tất cả các sự kiện. Sử dụng CancelDialog nhằm tạo thành 1 long running task dùng để chạy nền.

Đây là một hỗ trợ vô cùng ý nghĩa đối với người lập trình vì các API hỗ trợ trong Symbian đều rất khó khăn cho người lập trình vì tính phức tạp và khó thử nghiệm, vì thế việc có sẵn vài lớp và ứng dụng, nhất là những vấn đề liên quan đến tương tác người dùng là vô cùng quý giá.

Như vậy, chúng ta đã giải quyết được vấn đề thứ nhất là vấn đề chạy background nhờ sử dụng dialog có sẵn là CancelDialog của Symbian cung cấp.

4.4 Kỹ thuật bắt phím

Nhưđã nói ở trên, việc bắt các phím của các ứng dụng khác là yêu cầu bắt buộc của một bộ gõ tiếng Việt.

Symbian cung cấp một tập API phục vụ cho việc xen vào bắt các phím của các ứng dụng đang chạy, sử dụng cơ chế đồng hành của các tiến trình. Sau đây là một số khái niệm cũng như tổng quan một số lớp mà chúng ta sử dụng để xử lý bắt phím . (Chi tiết hơn xin tham khảo phần phụ lục).

Window Server Session

Khi một ứng dụng bắt đầu thì Symbian coi nhưđó là một session. Sesion này được quản lý bởi Window Server, do đó Window Server Session chính là nơi lưu trữ các thông tin về cửa sổ…Để lấy thông tin về cửa sổ ta có thể dùng các lớp thành viên của Window Server Client Side (tham khảo thêm trong SDK Documentation).

Một phần của tài liệu 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 (Trang 42)

Tải bản đầy đủ (PDF)

(133 trang)