Bộ công cụ phát triển Symbian SDK

Một phần của tài liệu TÌM HIỂU và NGHIÊN cứu kỹ THUẬTPHÁT TRIỂN ỨNG DỤNG TRÊN MÔITRƯỜNG SYMBIAN OS (Trang 61)

2 Hướng nghiên cứu và giới hạn đề tài

3.2.3 Bộ công cụ phát triển Symbian SDK

3.2.3.1 Symbian SDK

Symbian SDK là bộ công cụ phát triển (Software Development Kit) được dùng cho việc phát triển ứng dụng chạy trên điện thoại Symbian. Mỗi một nền hệ

thống sẽ có bộ SDK riêng với nhiều phiên bản theo các phiên bản hệ điều hành và các IDE hỗ trợ. Mỗi một bộ Symbian SDK bao gồm các thành phần sau:

- Một chương trình giả lập Emulator của điện thoại Symbian mà bộ SDK hỗ

trợ chạy trên hệ điều hành Windows. Các chương trình ứng dụng sẽ được kiểm lỗi và chạy thử trước khi được cài đặt trên điện thoại Symbian. Chương trình Emulator và các phần liên quan được lưu trữ trong thư mục con Epoc32 trong cây thư mục của bộ SDK sau khi cài đặt trên máy tính cá nhân.

KHOA CNTT –

ĐH KHTN

- Các file header và thư viện phục vụ cho phát triển ứng dụng chứa trong thư mục con Epoc32\include.

- Một trình biên dịch dựa trên GCC để biên dịch ứng dụng cho điện thoại Symbian chứa trong thư mục con Epoc32\gcc.

- Các công cụ bổ sung dùng cho quá trình phát triển, biên dịch và triển khai

ứng dụng nằm trong thư mục Epoc32\tool.

- Tài liệu tham khảo và các ví dụ tham khảo cho các lập trình viên nằm trong thư mục con Documentation và Example.

Ghi chú: - Các công cụ biên dịch thường phải chạy trên nền Perl nên trước khi cài đặt các bô Symbian SDK, phải cài đặt các bản Active Perl. Đôi khi các phiên bản còn yêu cầu phải cài đặt môi trường thực thi Java.

- Các bộ SDK chỉ hoạt động trên các hệđiều hành Windows NT, 2000 trở về sau.

- Các lập trình viên thường phát triển ứng dụng cho nhiều nền hệ

thống phần mềm nên đôi khi họ cài đặt nhiều bộ SDK khác nhau cùng lúc. Lúc này, các lập trình viên phải chú ý đến một biên môi trường có tên là EPOCROOT, được dùng để xác định bộ công cụ SDK hiện thời đang hoạt động. Để chuyển đổi hoạt

động giữa các bộ SDK, ta có thểđặt lại giá trị cho biến EPOCROOT bằng câu lệnh: >devices -setdefault <nền hệ thống>.

Ví dụ: >devices -setdefault @UIQ_70:com.symbian.UIQ hoặc bằng các đặt lại giá trị trong file devices.xml nằm trong thư mục: \Program Files\Common Files\Symbian.

3.2.3.2 Các bộ SDK

Series 60

• Series 60 phiên bản 1.0: bộ công cụ phát triển dựa trên hệ điều hành Symbian 6.1 với các bản phân phối cho các môi trường phát triển IDE khác nhau:

- Hỗ trợ C++:

+ Series 60 SDK 1.2 hỗ trợ IDE Borland C++ BuilderX hay Microsoft Visual C++ (v6.0 or .NET).

KHOA CNTT –

ĐH KHTN

+ Series 60 SDK 1.2 hỗ trợ IDE Metrowerks CodeWarrior cho hệ điều hành Symbian.

- Hỗ trợ Java: Series 60 MIDP SDK 1.2.1.

• Series 60 phiên bản 2.0: bộ công cụ phát triển dựa trên hệ điều hành Symbian 7.0 với các biến thể :

- Hỗ trợ C++:

+ Series 60 SDK 2.0 hỗ trợ IDE Borland C++ BuilderX hay Microsoft Visual C++ (v6.0 or .NET).

+ Series 60 SDK 2.0 hỗ trợ IDE Metrowerks CodeWarrior cho hệ điều hành Symbian

- Hỗ trợ Java: Series 60 MIDP SDK 2.0.

UIQ

• Hỗ trợ C++: Cả hai UIQ 2.0 và 2.1 đều hỗ trợ phát triển bằng C++, nhưng UIQ 2.1 hỗ trợ nhiều API hơn. Các IDE hỗ trợ là Metrowerks CodeWarrior: hỗ trợ cả UIQ 2.0 và UIQ 2.1 và Borland C++BuilderX chỉ hỗ trợ cho UIQ 2.1. Có thể phát triển ứng dụng với các điện thoại dùng UIQ 2.0 với UIQ 2.1 SDK.

• Hỗ trợ Java:

- PersonalJava: Cả 2 phiên bản đều hỗ trợ với JavaPhone API.

- J2ME MIDP: cả hai đều hỗ trợ nhưng UIQ 2.1 có hỗ trợ thêm các API về Bluetooth và tin nhắn vô tuyến (Wireless Messaging).

Nokia 9200 Series

• Hỗ trợ C++: Để phát triển ứng dụng với 9200 Series SDK bằng C++, chúng ta có thể sử dụng các IDE như MS Visual C++ 6.0 bằng công cụ tạo dự án Symbian OS Wizard hay sử dụng IDE Borland C++ BuilderX.

• Hỗ trợ Java: có thể lập trình Java với các JavaPhone API, chạy trên môi trường PersonalJava Application Environment 1.1.1.

KHOA CNTT –

ĐH KHTN

Series 80

Phiên bản hiện tại được cung cấp là 1.0. Hỗ trợ cả C++ và Java. Xây dựng ứng dụng với các IDE như MS Visual C++ 6.0 bằng công cụ tạo dự án Symbian OS Wizard hay Borland C++ BuilderX.

Series 90

Phiên bản hiện tại được cung cấp là 1.0. Hỗ trợ cả C++ và Java. Xây dựng ứng dụng với các IDE như MS Visual C++ 6.0, Borland C++ BuilderX hay Metrowerks CodeWarrior.

Hiện nay Series 60, UIQ và Series 80 là 3 bộ công cụ chính cho 3 dòng điện thoại. Nokia 9200 Series có thểđược thay thế bằng Series 80 còn Series 90 thì đang

ở giai đoạn khởi đầu.

3.3 Công cụ phát triển ứng dụng

Như các bộ công cụ phát triển ứng dụng trên PC hay các môi trường khác như

Microsoft SDK hay JDK để phát triển ứng dụng Java, các bộ công cụ phát triển SDK trên môi trường Symbian cũng cung cấp các công cụ phát triển để có thể xây dựng và biên dịch ứng dụng bằng dòng lệnh. Trong phần này chúng ta sẽ xem xét 2 loại công cụ phát triển, công cụ tạo dự án ứng dụng mới và công cụ biên dịch ứng dụng.

3.3.1 Công cụ tạo dự án ứng dụng mới

Một dự án ứng dụng bao gồm nhiều loại file khác nhau. Các file này chúng ta hoàn toàn có thể tạo bằng tay. Nhưng đối với những người mới lập trình trên Symbian hay với các dự án lớn thì việc sử dụng các công cụ tạo dự án ứng dụng mới hay môi trường tích hợp IDE để tạo bộ khung ban đầu cho dự án ứng dụng là rất cần thiết. Một lý do khác cho sự ra đời của các trình tạo dự án ứng dụng mới là

để có thể phát triển dự án trên môi trường tích hợp Microsoft Visual C++ 6.0, một IDE phổ biến để phát triển ứng dụng C++ vẫn còn sử dụng cho tới ngày nay. VC++ 6.0 được phát triển trước và không hỗ trợ tạo dự án mới cho ứng dụng Symbian,

KHOA CNTT –

ĐH KHTN

nhưng có thể kiểm lỗi và biên dịch cho ứng dụng Symbian với một vài thông số cài

đặt thích hợp. Hiện tại có các công cụ tạo dự án ứng dụng mới như sau:

• Symbian OS Wizard : đây là một trình công cụ được viết bằng Perl chạy từ

dòng lệnh tạo ra một thư mục dự án với đầy các loại file để phát triển ứng dụng cho

điện thoại thuộc dòng Nokia 9200 Communicator Series trên IDE VC++ 6.0.

• MEAD: đây là một chương trình đồ họa với mục đích tạo dự án ứng dụng đồ

họa để có thể biên dịch từ dòng lệnh hay bằng Microsoft Visual C++ 6.0 ( file .dsp).

• Trong một số bộ công cụ SDK như Series 60 1.2 hỗ trợ cho Borland C++ BuilderX/Visual C++ 6.0 ở phần Tools có một công cụ gọi là Application Wizard cũng có chức năng tương tựđể tạo một thư mục dự án ban đầu cho ứng dụng.

• EPOCfromMMP: chuyển file dự án .mmp thành file dự án hoạt động trên IDE VC .NET.

3.3.2 Công cụ biên dịch

• Biên dịch tài nguyên: Tài nguyên trong các ứng dụng Symbian tồn tại riêng bên ngoài thân chương trình. Tài nguyên được biên dịch riêng với trình công cụ

biên dịch tài nguyên dòng lệnh với rcomp, epocrc hay được biên dịch chung với trong quá trình biên dịch dự án từ dòng lệnh hay trên các IDE (sử dụng rcomp và bmconv).

• Biên dịch ứng dụng: Trong các bộ SDK, Symbian cung cấp các trình công cụ để biên dịch ứng dụng từ dòng lệnh: bldmake, abld, makmake, petran và các công cụ biên dịch cho điện thoại Symbian do Cygnus hỗ trợ như gcc để biên dịch file chương trình, ar để nén và ld dùng để liên kết tạo file thực thi ứng dụng trên

điện thoại Symbian.

Ngoài ra còn có các công cụ như khác như aiftool, AIF Builder để tạo file .aif, makesis, SISAR dùng để tạo gói cài đặt cho ứng dụng trên điện thoại, makekeys dùng cho việc tạo chứng nhận bản quyền cho file cài đặt và cshlpcmp để tạo các file hướng dẫn.

KHOA CNTT –

ĐH KHTN

3.4 Môi trường phát triển tích hợp

Như hầu hết mọi ngôn ngữ cấp cao khác đều có IDE để phục vụ cho công việc lập trình và biên dịch, kiểm lỗi. Phát triển ứng dụng trên Symbian bằng C++ có thể

sử dụng nhiều IDE khác nhau nhưng không phải IDE nào cũng có thể sử dụng cho mọi SDK mà Symbian cung cấp. Hiện thời chúng ta có thể sử dụng các IDE sau: MS Visual C++ 6.0 hay .NET, Borland C++ Builer 6.0 Nokia Edition/C++BuilderX và Metrowerks CodeWarrior. Việc chọn lựa IDE phụ thuộc vào sự hỗ trợ các SDK của nó và sự quen thuộc của những lập trình viên.

3.4.1 MS Visual C++ 6.0

Đây là IDE phổ dụng cho phát triển ứng dụng viết bằng C++ do Microsoft phát triển trong bộ Visual Studio. Tuy nó ra đời trước Symbian nên không hỗ trợ

xây dựng dự án ứng dụng Symbian từ đầu nhưng với các công cụ phụ trợ, ta hoàn toàn có thể phát triển ứng dụng Symbian trên VC++ 6.0. Một điểm lưu ý là VC++ 6.0 phải được cài bản vá lỗi ít nhất là SP3.

H3.6 IDE VC++ 6.0

3.4.2 Borland C++ Builder 6.0 Nokia Edition và C++ BuilderX

Hai IDE này do Borland phát triển. C++ BuilderX là phiên bản phát triển của Borland C++ Builder 6.0 Nokia Edittion và hiện được dùng để phát triển ứng dụng Symbian hơn là Borland C++ Builder 6.0 Nokia Edition. C++ BuilerX được sử

KHOA CNTT –

ĐH KHTN

vậy C++ BuilderX vẫn có hỗ trợ UIQ 2.1. C++ BuilderX hỗ trợ cả quá trình xây dựng ứng dụng mới bằng việc chọn từ menu File->New.

H3.7 IDE C++ BuilderX

3.4.3 Metrowerks CodeWarrior

Metrowerks CodeWarrior là IDE được biết đến nhiều nhất cho việc phát triển

ứng dụng Symbian. Mặc dù nó mới chỉ được sử dụng từ năm 2003 (trước đó chủ

yếu sử dụng các công cụ của Microsoft là IDE VC++ 6.0) nhưng nay nó đã được sử

dụng rộng rãi trong cộng đồng phát triển Symbian. IDE này có 3 bản phân phối khác nhau:

• Personal Edition: - IDE đầy đủ.

- Công cụ biên dịch cho giả lập Emulator và điện thoại. - Kiểm lỗi (debugger) trên Emulator.

• Professional Edition:

- Tất cả các đặc tính của Personal.

- Debug trên điện thoại Symbian (không hỗ trợ cho dòng Series 60). - Hỗ trợ Symbian DevKits (mã cung cấp cho các nhóm thành viên) và tham khảo phần cứng.

KHOA CNTT –

ĐH KHTN

H3.8 IDE Metrowerks CodeWarrior

• OEM Edition:

- Tất cả các đặc tính của Professional - JTAG và Multi-ICE debugging.

- Giải lập Virtio VXPS (Intel XScale) và VPOM (TI OMP).

Thường các lập trình viên tự do chỉ cần sử dụng phiên bản Personal hoặc Professional. Các phiên bản này có thể cài đặt trên Windows NT4 hay từ Windows 2000 trở lên.

CodeWarrior hỗ trợ các bộ SDK sử dụng hệđiều hành từ phiên bản 6.1 trở về

sau, nghĩa là chúng ta không thể dùng nó để phát triển ứng dụng với bộ công cụ

Nokia 9200 Series SDK. Với các bộ công cụ khác, thường có bản phân phối hỗ trợ

riêng cho CodeWarrior như Series 60 SDK 1.2 (hay 2.0) hỗ trợ IDE Metrowerks CodeWarrior, UIQ 2.0 (chỉ sử dụng được với CodeWarrior), UIQ 2.1 hỗ trợ IDE Metrowerks CodeWarrior, Series 90 hỗ trợ IDE Metrowerks CodeWarrior. Bộ

Series 80 SDK chỉ có một bản phân phối dùng chung và không hỗ trợ IDE Metrowerks CodeWarrior. Chúng ta phải chọn đúng bản phân phối để không bị lỗi trong quá trình biên dịch .

KHOA CNTT – ĐH KHTN CHƯƠNG 4 XÂY DNG NG DNG SYMBIAN MI Ứng dụng đồ họa Phân loại Cấu trúc ứng dụng đồ họa Định danh ứng dụng File dự án File định nghĩa dự án (.mmp) File mô tả thành phần bld.inf Xây dựng dự án ứng dụng mới Công cụ

IDE

Quy ước đặt tên trong Symbian Tên lớp

Tên dữ liệu Tên hàm

Dự án mẫu HelloWorld được tạo bằng IDE CodeWarrior Xây dựng dự án ứng dụng HellWorld Cấu trúc các lớp chương trình ứng dụng HelloWorld Mã khởi tạo hoạt động ứng dụng đồ họa Lớp ứng dụng Lớp tài liệu Lớp giao tiếp ứng dụng Lớp cửa sổứng dụng

KHOA CNTT –

ĐH KHTN

4.1 Ứng dụng đồ họa

4.1.1 Phân loại

Trên Symbian, ứng dụng đồ họa được chia thành ứng dụng file (file-based application) như Word hay Contact, Agenda và ứng dụng khác không phải là ứng dụng file (non file-based application) như Calculator, các trò chơi.

• Ứng dụng file là ứng dụng phục vụ cho việc lưu trữ các thông tin, tài liệu dưới dạng các file có cấu trúc riêng. Trên Symbian, ứng dụng file lại được chia làm 2 loại khác nhau:

- Ứng dụng file tài liệu độc lập: là các ứng dụng file mà có thể nạp và lưu trữ

tài liệu dưới dạng các file độc lập như Word hay Record. Khi một file tài liệu được nạp, toàn bộ dữ liệu file sẽđược lưu và xử lý trong RAM và khi lưu file xuống lại

đĩa thì file cũ sẽ bị xóa và được thay thế bằng file mới. Đối với các ứng dụng file dạng này, dữ liệu thật xem nhưở trên RAM, các file chỉ lưu lại các phiên bản khác nhau của tài liệu ứng dụng. Các file tài liệu này có biểu tượng của ứng dụng và chúng có chứa UID của ứng dụng. Đây là cơ sở để xác định tài liệu thuộc ứng dụng nào, chúng không dựa trên phần mở rộng của tên như trên các hệ điều hành khác. Một số file tài liệu dạng này có thể cho phép nhúng một tài liệu của một ứng dụng khác, biến tài liệu tồn tại độc lập này thành một phần tài liệu của nó. Ví dụ: tài liệu hình ảnh có thể nhúng vào một tài liệu danh bạ Contact.

- Ứng dụng file cơ sở dữ liệu: là các ứng dụng file nhưng tài liệu của nó là các file cơ sở dữ liệu như trong ứng dụng Agenda. Tại mỗi thời điểm sử dụng, chúng ta chỉ nạp và lưu các mẫu tin (record) có cấu trúc trên cơ sở dữ liệu qua việc sử dụng các đầu vào tương ứng nhờ các chỉ mục. Đối với các ứng dụng file này, dữ liệu thật lại nằm trên đĩa trong các file cơ sở dữ liệu, còn trên RAM chỉ là các đoạn dữ liệu sao chép từ file cơ sở dữ liệu.

KHOA CNTT –

ĐH KHTN

H4.1 Sơđồ các file tài liệu ứng với các ứng dụng file

•Ứng dụng không phải là ứng dụng file: Các ứng dụng này có thể không hề

thao tác file nhưứng dụng máy tính Calculator hay chỉđọc file để phục vụ cho chức năng của chúng như chơi nhạc. Chúng không được xem là ứng dụng file.

4.1.2 Cấu trúc ứng dụng đồ họa

Giống như cấu trúc ứng dụng đồ họa được lập trình bằng C++ trên Windows, cấu trúc ứng dụng đồ họa Symbian cũng gồm có 4 lớp:

• Lớp ứng dụng (application): lớp ứng dụng định nghĩa các thuộc tính ứng dụng, và tạo ra các tài liệu mới cho ứng dụng. Trong trường hợp đơn giản nhất, nó chỉ bao gồm định danh ứng dụng UID.

• Lớp tài liệu (document): đại diện cho mô hình dữ liệu của ứng dụng. Nếu

ứng dụng là ứng dụng file, các ứng dụng phục vụ chính cho việc tạo các file tài liệu, lớp tài liệu này sẽđảm nhận việc nạp và lưu trữ các file tài liệu cho ứng dụng. Với các ứng dụng không phải là ứng dụng file, lớp tài liệu vẫn tồn tại với mục đích để

nạp phần giao diện ứng dụng.

• Lớp giao diện ứng dụng (AppUI – application user interface): Nhiệm vụ

chính của lớp này là cung cấp sự tương tác giữa ứng dụng với người dùng qua các

đối tượng điều khiển như thanh công cụ hay thực đơn qua hàm HandleCommandL()

đồng thời tạo các cửa sổ hiển thị (view) cho ứng dụng, phần giao tiếp chính giữa

KHOA CNTT –

ĐH KHTN

• Lớp hiển thị (app view): đây thực chất là một điều khiển, mục đích chính của nó là thể hiện các dữ liệu của ứng dụng lên màn hình và cho phép người dùng tương tác với nó. Nó cung cấp các chức năng quản lý sự kiện nhập như bàn phím (OfferKeyEventL()) và con trỏ (HandlePointerEventL()).

AppDllUid() Create- DocumentL() CExample Application Create- AppUiL() CExample Document Handle- CommandL() CExample AppUI Draw() CExample AppView

CEikApplication CEikDocument CEikAppUi CEikonEnv

CApaApplication CApaDocument CCoeAppUi CCoeControl CCoeEnv

APPARC

APPLICATION

UIKON

CONE

H4.2 Sơđồ cấu trúc ứng dụng đồ họa

Đây là cấu trúc chung cho ứng dụng đồ họa Symbian. Trong thực tế, cấu

Một phần của tài liệu TÌM HIỂU và NGHIÊN cứu kỹ THUẬTPHÁT TRIỂN ỨNG DỤNG TRÊN MÔITRƯỜNG SYMBIAN OS (Trang 61)

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

(190 trang)