Luận vă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

Tài liệu Luận vă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: KH OA C NT T – Đ H KH TN TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN MẠNG MÁY TÍNH & VT PHẠM KHẮC HƯNG 0012153 VÕ HỒNG DUYÊN 0012530 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 TP.HCM, 2004 KH OA C NT T – Đ H KH TN TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN MẠNG MÁY TÍNH & VT PHẠM KHẮC HƯNG 0012153 VÕ HỒNG DUYÊN 0012530 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 GIÁO VIÊN HƯỚNG DẪN Thạc sĩ ĐỖ HOÀNG CƯỜNG NIÊN KHÓA 2000 - 2004 KH OA C NT T – Đ H KH TN LỜI CẢM ƠN Chúng con xin tỏ lòng biết ơn sâu sắc đến ba mẹ và gia đình đã nuôi dưỡng, giáo dục và tạo điều kiện tốt nhất cho chúng con thực hiện đề tài này. Chúng em xin chân thành cảm ơn khoa Công nghệ thông tin và quý Thầy, Cô trong khoa, trường Đại học Khoa học Tự nhiên TpHCM đã tạo điều ki...

pdf190 trang | Chia sẻ: hunglv | Lượt xem: 1116 | Lượt tải: 1download
Bạn đang xem trước 20 trang mẫu tài liệu Luận vă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, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
KH OA C NT T – Đ H KH TN TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN MẠNG MÁY TÍNH & VT PHẠM KHẮC HƯNG 0012153 VÕ HỒNG DUYÊN 0012530 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 TP.HCM, 2004 KH OA C NT T – Đ H KH TN TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN MẠNG MÁY TÍNH & VT PHẠM KHẮC HƯNG 0012153 VÕ HỒNG DUYÊN 0012530 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 GIÁO VIÊN HƯỚNG DẪN Thạc sĩ ĐỖ HOÀNG CƯỜNG NIÊN KHÓA 2000 - 2004 KH OA C NT T – Đ H KH TN LỜI CẢM ƠN Chúng con xin tỏ lòng biết ơn sâu sắc đến ba mẹ và gia đình đã nuôi dưỡng, giáo dục và tạo điều kiện tốt nhất cho chúng con thực hiện đề tài này. Chúng em xin chân thành cảm ơn khoa Công nghệ thông tin và quý Thầy, Cô trong khoa, trường Đại học Khoa học Tự nhiên TpHCM đã tạo điều kiện cho chúng em học tập và thực hiện luận văn tốt nghiệp này. Chúng em xin chân thành cảm ơn Thầy Đỗ Hoàng Cường đã tận tình hướng dẫn, chỉ bảo chúng em trong thời gian thực hiện đề tài. Chúng em cũng xin chân thành cảm ơn các anh chị, bạn bè đã động viên, giúp đỡ chúng em vượt qua những khó khăn trong quá trình thực hiện đề tài cũng như trong suốt những năm học vừa qua. Mặc dù chúng em đã cố gắng hoàn thành luận văn với tất cả sự nỗ lực của bản thân, nhưng luận văn chắc chắn không tránh khỏi những thiếu sót nhất định, kính mong sự cảm thông và tận tình chỉ bảo của quý Thầy Cô và các bạn. Tháng 7 / 2004 Khắc Hưng&Hồng Duyên KH OA C NT T – Đ H KH TN MỤC LỤC Trang Danh sách các bảng...........................................................................................7 Danh sách các hình ...........................................................................................7 Tóm tắt ............................................................................................................10 Chương mở đầu ..............................................................................................11 1 Dẫn nhập..................................................................................................11 2 Hướng nghiên cứu và giới hạn đề tài ......................................................12 3 Mục tiêu của đề tài ..................................................................................13 Phần 1 Tổng quan về hệ điều hành Symbian Chương 1 Hệ điều hành Symbian..............................................................15 1.1 Hệ điều hành cho thiết bị WID .............................................................16 1.1.1 Đặc điểm của hệ điều hành cho thiết bị WID ...............................16 1.1.2 Các hệ điều hành cho thiết bị WID...............................................17 1.1.3 Symbian – Hệ điều hành hàng đầu cho thiết bị WID ...................18 1.2 Lịch sử hệ điều hành Symbian .............................................................19 1.3 Các dòng điện thoại Symbian...............................................................22 1.4 Các thành phần phần cứng chính trong điện thoại Symbian................24 1.5 Tương lai Symbian ...............................................................................26 Chương 2 Cấu trúc hệ thống hệ điều hành Symbian .................................28 2.1 Cấu trúc hệ điều hành và phần mềm ứng dụng ....................................29 2.1.1 Nhân và E32..................................................................................31 2.1.2 Hệ thống con và API.....................................................................34 2.2 Cấu trúc truyền thông ...........................................................................36 2.3 Tiến trình và tiểu trình trong Symbian .................................................39 2.3.1 Tiến trình.......................................................................................39 2.3.2 Tiểu trình.......................................................................................39 2.3.3 Tiến trình và tiểu trình nhân..........................................................39 4 KH OA C NT T – Đ H KH TN 2.3.4 Quản lý và điều phối tiến trình .....................................................40 2.4 Chương trình hoạt động trên Symbian..................................................40 2.4.1 File thực thi ...................................................................................40 2.4.2 Nạp chương trình khi thực thi .......................................................42 2.4.3 Thực thi ứng dụng và server .........................................................42 2.5 Quản lý bộ nhớ .....................................................................................43 2.6 Quản lý nguồn năng lượng ...................................................................46 2.7 Quản lý thời gian ..................................................................................46 2.8 An toàn hệ thống ..................................................................................47 Phần 2 Phát triển ứng dụng đồ họa cho hệ điều hành Symbian Chương 3 Công cụ và môi trường phát triển ứng dụng.............................50 3.1 Chọn thiết bị .........................................................................................51 3.1.1 Ngôn ngữ lập trình ........................................................................51 3.1.2 Chọn điện thoại .............................................................................52 3.2 Nền hệ thống và các bộ SDK tương ứng ..............................................57 3.2.1 Hệ thống giao diện người dùng.....................................................57 3.2.2 Nền hệ thống .................................................................................58 3.2.3 Bộ công cụ phát triển Symbian SDK............................................59 3.2.3.1 Symbian SDK ........................................................................59 3.2.3.2 Các bộ SDK ...........................................................................60 3.3 Công cụ phát triển ứng dụng ................................................................62 3.3.1 Công cụ tạo dự án ứng dụng mới..................................................62 3.3.2 Công cụ biên dịch .........................................................................63 3.4 Môi trường phát triển tích hợp .............................................................64 3.4.1 MS Visual C++ 6.0 .......................................................................64 3.4.2 Borland C++ Builder 6.0 Nokia Edition & C++ BuilderX...........64 3.4.3 Metrowerks CodeWarrior .............................................................65 5 KH OA C NT T – Đ H KH TN Chương 4 Xây dựng ứng dụng Symbian mới............................................67 4.1 Ứng dụng đồ họa ..................................................................................68 4.1.1 Phân loại........................................................................................68 4.1.2 Cấu trúc ứng dụng đồ họa .............................................................69 4.1.3 Định danh ứng dụng......................................................................71 4.2 File dự án..............................................................................................73 4.2.1 File định nghĩa dự án .mmp ..........................................................73 4.2.2 File mô tả thành phần bld.inf .......................................................76 4.3 Xây dựng dự án ứng dụng mới.............................................................77 4.3.1 Công cụ .........................................................................................78 4.3.2 IDE ..............................................................................................79 4.4 Dự án mẫu HelloWorld được tạo bằng IDE CodeWarrior ..................82 4.4.1 Xây dựng dự án ứng dụng HelloWorld ........................................82 4.4.2 Cấu trúc các lớp chương trình ứng dụng HelloWorld ..................84 4.4.2.1 Mã khởi tạo hoạt động ứng dụng đồ họa...............................84 4.4.2.2 Lớp ứng dụng.........................................................................85 4.4.2.3 Lớp tài liệu.............................................................................86 4.4.2.4 Lớp giao diện ứng dụng.........................................................86 4.4.2.5 Lớp khung nhìn ứng dụng .....................................................88 Chương 5 Lập trình C++ cho ứng dụng Symbian .....................................90 5.1 Chuỗi và descriptor ..............................................................................91 5.1.1 Các loại descriptor ........................................................................91 5.1.2 Sử dụng descriptor ........................................................................94 5.2 Quản lý lỗi và cơ chế cleanup stack .....................................................95 5.2.1 Lỗi lập trình...................................................................................95 5.2.2 Lỗi môi trường ..............................................................................95 5.2.3 Quản lý bộ nhớ và cơ chế cleanup stack.......................................98 5.3 Quản lý sự kiện...................................................................................104 5.3.1 Quản lý sự kiện trong ứng dụng Symbian ..................................104 6 KH OA C NT T – Đ H KH TN 5.3.2 Quản lý sự kiện với active object................................................105 5.4 Stream và store ...................................................................................106 5.4.1 Stream .........................................................................................106 5.4.2 Store ............................................................................................109 5.5 Lập trình đồ họa .................................................................................112 5.5.1 Kiến trúc đồ họa..........................................................................112 5.5.2 File tài nguyên.............................................................................113 5.5.3 Các điều khiển trong ứng dụng đồ họa .......................................114 5.6 Quy ước đặt tên trong Symbian..........................................................117 5.6.1 Tên lớp ........................................................................................117 5.6.2 Tên dữ liệu ..................................................................................118 5.6.3 Tên hàm.......................................................................................119 5.6.3 Cấu trúc thư mục dự án...............................................................119 5.7 Xây dựng ứng dụng độc lập thiết bị ...................................................119 Chương 6 Kiểm lỗi, biên dịch và triển khai ứng dụng Symbian .............126 6.1 Giả lập điện thoại Symbian trên PC ...................................................127 6.2 Kiểm lỗi ............................................................................................132 6.2.1 Kiểm lỗi trên Emulator................................................................132 6.2.2 Kiểm lỗi trên điện thoại Symbian ...............................................133 6.2.3 Một số mã lỗi thông dụng trong Symbian ..................................135 6.3 Biên dịch chương trình .......................................................................137 6.3.1 Các loại biên dịch........................................................................137 6.3.2 Biên dịch ứng dụng đồ họa .........................................................139 6.3.2.1 File AIF................................................................................139 6.3.2.2 Biên dịch với các công cụ biên dịch....................................142 6.3.2.3 Biên dịch với IDE................................................................145 6.4 Triển khai ứng dụng ...........................................................................146 6.4.1 Cấu trúc file điều khiển đóng gói .pkg........................................147 6.4.2 Quá trình triển khai ứng dụng.....................................................150 7 KH OA C NT T – Đ H KH TN Phần 3 Ứng dụng từ điển Anh-Việt, Việt-Anh trên điện thoại SE P900 Chương 7 Giới thiệu điện thoại, môi trường, công cụ phát triển ............152 7.1 Điện thoại Sony Ericsson P900..........................................................153 7.1.1 Đặc điểm điện thoại Sony Ericsson P900 ...................................154 7.1.2 Cấu trúc bộ nhớ điện thoại Sony Ericsson P900.........................154 7.2 Nền hệ thống UIQ ..............................................................................156 7.2.1 Các đặc tính của UIQ..................................................................156 7.2.2 Hệ thống giao diện UIQ..............................................................157 7.2.3 Các ứng dụng hệ thống ...............................................................160 7.2.4 Bộ SDK UIQ 2.1 WINSCW .......................................................161 7.3 IDE Metrowerks CodeWarrior for Symbian Personal 2.0 .................162 Chương 8 Xây dựng và cài đặt ứng dụng từ điển trên SE P900 ..............163 8.1 Ứng dụng từ điển Anh Việt, Việt Anh ...............................................164 8.2 Xây dựng chương trình.......................................................................164 8.2.1 Sơ đồ UML cho chương trình ứng dụng.....................................164 8.2.2 Các lớp cài đặt.............................................................................165 8.2.2.1 4 Lớp cơ bản .......................................................................165 8.2.2.2 Lớp xử lý tiếng Việt.............................................................168 8.2.2.3 Lớp phát âm.........................................................................168 8.2.3 File cơ sở dữ liệu từ điển và cách truy xuất ................................168 8.3 Biên dịch và cài đặt chương trình.......................................................169 8.3.1 Biên dịch .....................................................................................169 8.3.2 Cài đặt ứng dụng .........................................................................169 Tổng kết ........................................................................................................174 Tài liệu tham khảo ........................................................................................175 Phụ lục A Các thuật ngữ dùng trong luận văn..............................................176 Phụ lục B Lớp, đối tượng và sơ đồ UML trong lập trình Symbian..............179 Phụ lục C Lập trình Java trên Symbian ........................................................182 8 KH OA C NT T – Đ H KH TN DANH SÁCH CÁC BẢNG B1.1 Các phiên bản hệ điều hành Symbian 22 B4.1 Các khai báo trong cấu trúc file .mmp 74 B4.2 Các khai báo trong cấu trúc file bld.inf 77 B5.1 Các khai báo trong file tài nguyên 115 B6.1 Các tham số trong lệnh bó abld 144 DANH SÁCH CÁC HÌNH H1.1 Các thiết bị sử dụng hệ điều hành EPOC 20 H1.2 Các điện thoại Symbian đầu tiên 21 H1.3 Mô hình tham khảo cho Communicator: Quartz và Crystal 24 H1.4 Mô hình tham khảo cho Smartphone: Pearl 24 H2.1 Mô hình các ranh giới 29 H2.2 Mô hình E32 32 H2.3 Mô hình các trình điều khiển thiết bị 33 H2.4 Mô hình các hệ thống con 34 H2.5 Cấu trúc truyền thông 38 H2.6 DLL dùng chung 41 H2.7 Ứng dụng GUI với chương trình nạp Apprun.exe 43 H2.8 Bộ nhớ ROM 43 H2.9 Bộ nhớ RAM 44 H2.10 Vùng nhớ cho các tiến trình 45 H2.11 Kiến trúc bảo mật 48 H3.1 Các điện thoại Symbian dùng bản phím số 54 H3.2 Các điện thoại Symbian dùng màn hình cảm ứng 55 H3.3 Các điện thoại Symbian có bàn phím QWERTY 56 H3.4 Nokia 7700 56 H3.5 Kiến trúc giao diện người dùng trong Symbian 57 9 KH OA C NT T – Đ H KH TN H3.6 IDE VC++ 6.0 64 H3.7 IDE C++ BuilderX 65 H3.8 IDE Metrowerks CodeWarrior 66 H4.1 Sơ đồ các file tài liệu ứng với các ứng dụng file 69 H4.2 Sơ đồ cấu trúc ứng dụng đồ họa 70 H4.3 Tạo dự án mới với MEAD 79 H4.4 Tạo dự án ứng dụng mới với IDE CodeWarrior 80 H4.5 Tạo dự án ứng dụng mới bằng cách import file .mmp 80 H4.6 Tạo dự án mới với IDE C++ BuilderX 81 H4.7 Tạo dự án cho IDE VC++ 6.0 với Nokia Series 60 App Wizard 82 H4.8 Tạo dự án HelloWorld 82 H4.9 Chọn nền hệ thống cho ứng dụng 83 H4.10 Chọn xây dựng ứng dụng HelloWorld 83 H5.1 Mô hình đối tượng TPtrC và TPtr 92 H5.2 Mô hình đối tượng TBufC và TBuf 92 H5.3 Mô hình đối tượng HBufC 93 H5.4 Sơ đồ hệ thống các descriptor 93 H5.5 Sơ đồ active object và các lớp liên hệ 105 H5.6 Sơ đồ các lớp store và các thành phần liên quan 110 H5.7 Cấu trúc store trong file tài liệu độc lập 110 H5.8 Cấu trúc file tài liệu độc lập 111 H5.9 Cấu trúc file tài liệu độc lập cho phép nhúng 111 H5.10 Kiến trúc hệ thống đồ họa 113 H6.1 Emulator cho Nokia 9200 Series 127 H6.2 Emulator cho Series 80 128 H6.3 Emulator cho Series 90 128 H6.4 Emulator cho Series 60 129 H6.5 Emulator cho UIQ 129 H6.6 Sơ đồ biên dịch bằng dòng lệnh 144 10 KH OA C NT T – Đ H KH TN H6.7 Sơ đồ biên dịch ứng dụng cho điện thoại Symbian 145 H6.8 Quá trình tạo file cài đặt .sis 146 H7.1 Sony Ericsson P900 và P800 153 H7.2 P900 khi bản phím số mở, đóng và được tháo ra 154 H7.3 Vùng màn hình điện thoại UIQ 158 H7.4 single-page dialog và multi-page dialog 158 H7.5 Nhập liệu chữ “A” với nhận dạng viết tay và bàn phím ảo 159 H7.6 Application Launcher dạng list và dạng icon 160 H7.7 Installer 161 H7.8 Control Panel 161 H7.9 IDE CodeWarrior Personal 2.0 162 H8.1 Ứng dụng từ điển 164 H8.2 Sơ đồ UML chương trình từ điển TNDic 164 H8.3 Hộp thoại khởi tạo chương trình cài đặt 171 H8.4 Hộp thoại cảnh báo về rủi ro khi cài đặt thiếu chứng thực 172 H8.5 Thông tin ứng dụng sẽ cài đặt 172 H8.6 Ngôn ngữ dùng trong cài đặt 172 H8.7 Ổ đĩa cài đặt chương trình 172 H8.8 Quá trình cài đặt 173 H8.9 Kết thúc cài đặt 174 HB.1 Sơ đồ quan hệ giữa 2 gói API 179 HB.2 Mô hình lớp với UML 180 HB.3 Mô hình quan hệ uses-a với UML 180 HB.4 Mô hình quan hệ has-a với UML 180 HB.5 Mô hình quan hệ is-a với UML 181 HB.6 Mô hình quan hệ implement với UML 181 HB.7 Mô hình quan hệ giới hạn một chiều uses-a với UML 181 HC1 J2ME và các phiên bản của Java 183 HC.2 Sự phát triển Java trên Symbian 184 11 KH OA C NT T – Đ H KH TN TÓM TẮT Sự kết hợp giữa máy trợ giúp cá nhân PDA và điện thoại di động đã tạo ra một thiết bị mới, thiết bị WID (Wireless Information Device) mà hiện nay được biết nhiều dưới dạng điện thoại thông minh (Smartphone). Các thiết bị WID này với khả năng xử lý của máy tính nhỏ và chức năng liên lạc của điện thoại di động có thể giúp chúng ta xử lý công việc dù đang ở đâu với tính năng lưu trữ, xử lý và truy cập vô tuyến. Không chỉ phục vụ cho công việc, các thiết bị WID còn là công cụ giải trí tuyệt vời với chức năng xem phim, nghe nhạc và chơi game. Đó là lý do tại sao thị trường của các thiết bị này ngày càng mở rộng và phát triển không ngừng. Sự ra đời của WID mang lại một sức sống mới cho thị trường điện thoại di động nói riêng và các thiết bị cầm tay nói chung và mở ra một hướng phát triển ứng dụng mới đầy tiềm năng cho công ty phần mềm và các lập trình viên. Với các hệ điều hành mở trên các thiết bị WID, họ đang có cơ hội được thử thách mình trên một môi trường ứng dụng mới. Nhưng những hạn chế về tài nguyên thiết bị và những khác biệt về cơ chế hoạt động của WID đã tạo ra những khó khăn cho các lập trình viên vốn quen phát triển ứng dụng trên môi trường máy tính, nhất là khi họ phải phát triển ứng dụng cho môi trường trên thiết bị WID từ môi trường giả lập trên máy tính thay vì trên chính thiết bị đích là WID. Với mong muốn cung cấp những thông tin cần thiết, những cách thức để phát triển ứng dụng cho hệ điều hành Symbian, hệ điều hành phổ biến nhất hiện nay trên WID, chúng tôi đã thực hiện đề tài: "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 ". Đề tài được thực hiện theo quy trình phát triển ứng dụng trên hệ điều hành Symbian từ chọn thiết bị dùng Symbian, chọn bộ công cụ SDK, môi trường phát triển IDE cho đến biên dịch, kiểm lỗi và cài đặt chương trình ứng dụng trên thiết bị. Và từ đó chúng tôi đã xây dựng một ứng dụng nhỏ để minh họa, từ điển Anh- Việt, Việt-Anh trên điện thoại Sony Ericsson P900, một thiết bị WID hàng đầu dùng Symbian. 12 KH OA C NT T – Đ H KH TN CHƯƠNG MỞ ĐẦU 1. Dẫn nhập Ra đời từ cuối những năm 90 của thế kỷ trước, các thiết bị thông tin vô tuyến WID ngày càng chứng tỏ sự ảnh hưởng của nó đối với cuộc sống con người với hàng triệu chiếc được bán ra và nhiều thế hệ mới liên tiếp ra đời. Những chiếc điện thoại di động với chỉ các chức năng liên lạc vô tuyến đã và đang được thay thế bằng các thiết bị WID với nhiều tính năng vượt trội được biết dưới tên gọi điện thoại thông minh (Smartphone). Sự phát triển nhanh chóng của thiết bị WID đã mở ra một môi trường lập trình mới đầy tiềm năng cho các lập trình viên nhất là khi các nhà sản xuất đã sử dụng những hệ điều hành mở và cung cấp sẵn phần lớn các gói API và công cụ lập trình cho các lập trình viên. Symbian, WindowCE và Palm là 3 hệ điều hành mở phổ biến nhất hiện nay trên WID. Trong đó với sự tích hợp mạnh mẽ giữa các tính năng máy tính và liên lạc vô tuyến, lại được xây dựng để phục vụ cho riêng thiết bị WID (các hệ điều hành khác được sửa từ các hệ điều hành vốn phục vụ cho máy tính để phù hợp với WID), Symbian trở thành hệ điều hành thông dụng nhất trên thiết bị thông tin vô tuyến WID. Hơn nữa, với các công cụ hỗ trợ đầy đủ và nhiều bộ SDK sẵn dùng cho các dòng thiết bị WID khác nhau, Symbian trở thành môi trường lý tưởng cho các lập trình viên muốn phát triển ứng dụng trên WID. Việc hiểu rõ cơ chế hoạt động, các công cụ hỗ trợ và cách thức lập trình để phát triển ứng dụng cho các thiết bị WID là rất quan trọng cho các lập trình viên, những người muốn gia nhập vào lĩnh vực phát triển phần mềm đầy mới mẻ này. Đó là lý do chúng tôi chọn thực hiện đề tài: "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". Với đề tài nghiên cứu này, chúng tôi mong muốn cung cấp một cái nhìn khái quát và các kỹ thuật cụ thể để phát triển ứng dụng trên hệ điều hành Symbian cho các dòng thiết bị khác nhau, sử dụng các bộ công cụ phát triển SDK khác nhau. 13 KH OA C NT T – Đ H KH TN 2. Hướng nghiên cứu và giới hạn đề tài 2.1 Hướng nghiên cứu Symbian được xây dựng để phục vụ cho hai nhóm thiết bị WID là Communicator (máy PDA có tích hợp chức năng điện thoại di động) và Smartphone (điện thoại di động tích hợp thêm chức năng PDA). Do đó trong đề tài, chúng tôi xem xét trên cả Communicator và Smartphone và gọi chung là điện thoại Symbian. Trong đề tài này, chúng tôi trình bày toàn bộ quy trình phát triển ứng dụng từ sơ khởi nhưng khá thiết yếu là lựa chọn thiết bị, chọn môi trường phát triển, cho đến xây dựng chương trình, biên dịch rồi cài đặt trên thiết bị đích là các thiết bị WID dùng hệ điều hành Symbian. 2.2 Giới hạn đề tài 2.2.1 Môi trường lập trình Đề tài chỉ nghiên cứu việc phát triển ứng dụng Symbian trên máy tính để bàn PC sử dụng hệ điều hành Windows. Đề tài không nghiên cứu phát triển với hệ điều hành Linux hay các hệ điều hành khác. 2.2.2 Ngôn ngữ Hệ điều hành Symbian hỗ trợ hai ngôn ngữ phát triển ứng dụng chính là C++ và Java. Symbian được viết bằng C++ và phần lớn thư viện hỗ trợ đều phục vụ cho việc phát triển ứng dụng với ngôn ngữ C++ nên C++ là ngôn ngữ chính thống để phát triển ứng dụng trên Symbian. Vì vậy, trong đề tài này, chúng tôi chỉ quan tâm đến việc phát triển ứng dụng bằng ngôn ngữ C++. Với ngôn ngữ Java chúng tôi sẽ bàn đến những vấn đề cơ bản trong phần phụ lục C. 2.2.3 Loại chương trình ứng dụng phát triển Có nhiều loại chương trình ứng dụng cho điện thoại Symbian: chương trình console, ứng dụng giao diện đồ họa, các server hay các trình điều khiển thiết bị (device driver). Đề tài chỉ nghiên cứu phần ứng dụng đồ họa. 14 KH OA C NT T – Đ H KH TN 3. Mục tiêu của đề tài Symbian ra đời từ giữa năm 1998 nhưng phát triển ứng dụng chạy trên hệ điều hành Symbian là một lĩnh vực còn khá mới mẻ. Các tài liệu cho lập trình phát triển ứng dụng trên Symbian đếm trên đầu ngón tay và chưa có một tài liệu tiếng Việt nào về Symbian ngoại trừ các luận văn nghiên cứu về các lĩnh vực riêng để tạo nên các sản phẩm cụ thể. Với đề tài này, chúng tôi muốn cung cấp một quy trình cụ thể cho việc phát triển ứng dụng trên Symbian cho các lập trình viên, nhất là những người mới bắt đầu làm quen với việc phát triển ứng dụng trên Symbian Bộ công cụ phát triển SDK Æ Môi trường phát triển tích hợp IDE Ç È Điện thoại Symbian Xây dựng chương trình ứng dụng Ç È Cài đặt ứng dụng Å Kiểm lỗi, biên dịch trên giả lập Emulator 15 KH OA C NT T – Đ H KH TN PHẦN 1 TỔNG QUAN VỀ HỆ ĐIỀU HÀNH SYMBIAN 16 KH OA C NT T – Đ H KH TN CHƯƠNG 1 HỆ ĐIỀU HÀNH SYMBIAN VÀ CÁC DÒNG THIẾT BỊ SYMBIAN Hệ điều hành cho thiết bị WID Đặc điểm của hệ điều hành cho thiết bị WID Các hệ điều hành cho thiết bị WID Symbian – Hệ điều hành hàng đầu cho thiết bị WID Lịch sử hệ điều hành Symbian Các phiên bản hệ điều hành Symbian Các dòng điện thoại Symbian Mô hình Crystal Mô hình Quartz Mô hình Pearl Các thành phần phần cứng chính trong điện thoại Symbian Bộ xử lý trung tâm CPU Bộ nhớ trong ROM Bộ nhớ RAM Các thiết bị nhập xuất (Input/Output -I/O) Nguồn năng lượng Tương lai Symbian 17 KH OA C NT T – Đ H KH TN 1.1 Hệ điều hành cho thiết bị WID 1.1.1 Đặc điểm của hệ điều hành cho thiết bị WID Một hệ điều hành cho các thiết bị vô tuyến nói chung và WID nói riêng có một số những yêu cầu cơ bản riêng khiến nó khác với các hệ điều hành cho thiết bị khác: - Hệ điều hành cho các thiết bị WID đòi hỏi phải luôn sẵn dùng, xử lý ngay lập tức và không được treo máy hay phải khởi động lại như hệ điều hành cho máy tính để bàn. - Một đòi hỏi khác là tính module hóa, cho phép giảm thiểu dung lượng phần mềm trên thiết bị bởi lẽ bộ nhớ trên các thiết bị WID rất hạn chế, không phong phú như trên máy tính để bàn. - Hệ thống phải quản lý hiệu quả việc cấp phát và gỡ bỏ các thành phần hệ thống và phần mềm, nạp lại chúng khi cần để tối thiểu hóa việc sử dụng bộ nhớ. Hỗ trợ các CPU sử dụng năng lượng thấp cũng là một yêu cầu cơ bản của hệ điều hành trên WID bởi các thiết bị này hoạt động dựa trên nguồn năng lượng hạn chế là pin. - Yêu cầu tiếp theo là hệ điều hành trên WID nên thiết kế để hỗ trợ khả năng tắt-mở. Khi không sử dụng, các bộ phận sẽ được đưa vào trạng thái tạm nghỉ để giảm thiếu hao hụt năng lượng pin, kể cả hệ điều hành. Do đó tốt nhất, hệ điều hành nên được lưu trữ trên bộ nhớ được bảo vệ, chẳng hạn như ROM. - Cuối cùng là các yêu cầu cho 2 chức năng chính của thiết bị WID: liên lạc và các ứng dụng. Liên lạc là một trong những đặc điểm chính của các thiết bị WID, nên hệ điều hành cho các thiết bị này phải hỗ trợ tốt khả năng liên lạc vô tuyến và các kết nối vô tuyến dễ dàng, ổn định với các thiết bị khác qua mạng vô tuyến. Các thiết bị WID được sản xuất từ các nhà sản xuất khác nhau sẽ có kiểu dáng và phong cách sử dụng khác nhau nên các hệ điều hành phải độc lập với sự khác biệt này. Hơn nữa, các hệ điều hành này phải là mở, hỗ trợ các ứng dụng phát triển từ các nhà phát triển thứ 3 với các ngôn ngữ lập trình chuẩn như C++ hay Java. Một hệ điều hành tồn tại trong một bộ nhớ nhỏ bé với một nguồn tài nguyên giới hạn mà phải đáp ứng đầy đủ những yêu cầu trên quả không dễ dàng. Những hệ điều hành phổ biến hiện nay cho các thiết bị WID đáp ứng phần lớn các yêu cầu này 18 KH OA C NT T – Đ H KH TN là Symbian, WindowCE, Linux và gần đây là Palm, vốn trước đây phát triển hệ điều hành cho PDA. 1.1.2 Các hệ điều hành cho thiết bị WID - Hệ điều hành Windows Compact Edition (WinCE) được phát triển bởi Microsoft là một phần con được thiết kế cẩn thận từ hệ điều hành Windows NT. Nó thoả mãn các yêu cầu của hệ điều hành cho thiết bị WID. Microsoft hỗ trợ các công cụ để chuyển các ứng dụng Windows trên máy tính cá nhân thành các ứng dụng chạy trên WinCE. Lợi thế của WinCE là nó tạo sự quen thuộc cho các người dùng thiết bị WID vốn quen dùng ứng dụng Windows trên máy tính cá nhân. Sự quen thuộc này cũng rất có ích cho các lập trình viên, những người muốn phát triển ứng dụng trên WID dùng hệ điều hành WinCE. WinCE được sử dụng trong các điện thoại Smartphone của các nhà sản xuất như Casio, Siemens, Compaq và gần đây là Motorola. - Hệ điều hành Palm được phát triển bởi 3Com Palm Computing, vốn được thiết kế cho các máy PDA. Những tính năng cho máy PDA tạo sự mạnh mẽ cho các thiết bị WID dùng hệ điều hành Palm. Sau này Palm được bổ sung các phần thiết kế linh hoạt cho các ứng dụng liên lạc vô tuyến. Sự khác biệt lớn nhất giữa Palm và các hệ điều hành khác là nhân hệ điều hành Palm được tối ưu hóa cho các thiết kế phần cứng riêng cho máy Palm. Do đó, các nhà sản xuất dùng Palm phải sử dụng CPU, màn hình, các chip điều khiển đặc thù. Palm được các nhà sản xuất Qualcomm, Sony, Handspring, IBM, Motorola, Nokia và Symbol sử dụng để xây dựng các thiết bị PDA và WID. - Linux cũng có một số bản phân phối chạy trên PDA và các thiết bị WID như pSOS và VxWorks bởi WindRiver. Tynux là một bản Linux khác được cung cấp bởi PalmPalm dùng trong điện thoại thông minh. Đặc điểm nổi bật của Linux dùng trong các thiết bị WID là cung cấp một hệ điều hành linh hoạt, hỗ trợ mạnh các ứng dụng nguồn mở nhưng có kích thước rất nhỏ, chỉ khoảng 1MB với phần nhân khoảng 100KB. 19 KH OA C NT T – Đ H KH TN - Symbian được xây dựng riêng cho các thiết bị WID từ hệ điều hành EPOC vốn của Psion dùng cho các sản phẩm Communicator, Oganizer và Subnotebook. Symbian được thiết kế đặc biệt đáp ứng đầy đủ các yêu cầu mà một hệ điều hành cho WID cần với khả năng module hóa tối đa trong các xử lý liên quan đến quản lý năng lượng, bộ nhớ, cơ chế bắt sự kiện và đa nhiệm. Hầu hết các nhà sản xuất thiết bị WID hàng đầu đều sử dụng Symbian là hệ điều hành chính như Nokia, Sony Ericsson, Samsung, Panasonic, Siemens, LG,... Symbian không chỉ hỗ trợ mạnh các tính năng vốn có của một điện thoại di động và của PDA, mà thường xuyên cập nhật và hỗ trợ tốt các tính năng và các kỹ thuật mới như J2ME, Bluetooth, MMS, SynML, IPv6 và WCDMA. Symbian còn là một hệ điều hành mở hỗ trợ khá đầy đủ việc phát triển ứng dụng bằng C++, Java với những SDK, sách, tài liệu, các nhóm hỗ trợ phát triển ứng dụng và các khóa huấn luyện. Và kết quả những tiện ích, những ứng dụng mới làm phong phú thêm khả năng của WID và ngày càng khẳng định sức mạnh của Symbian trên thiết bị WID. Ngoài ra giải pháp Java như là một hệ điều hành nhúng được Javasoft phát triển cũng được dùng cho một số thiết bị WID. Tuy tính năng không phong phú và mạnh mẽ như các hệ điều hành cho WID khác nhưng ưu điểm độc lập nền hệ thống tạo lợi thế cho hệ điều hành nhúng Java. Một phiên bản của Java là J2ME đang là một giải pháp trên thiết bị WID và được khá nhiều hệ điều hành khác hỗ trợ. 1.1.3 Symbian – Hệ điều hành hàng đầu cho thiết bị WID Được xây dựng để phục vụ riêng cho WID dựa trên giải pháp cho PDA của Psion và các chức năng liên lạc vô tuyến từ các nhà sản xuất di động hàng đầu như Nokia hay Ericsson, với thiết kế hướng đối tượng hoàn chỉnh, Symbian là sự lựa chọn hàng đầu cho hệ điều hành trên WID. Một trong những nhược điểm của Symbian là chưa quen thuộc với người phát triển nhưng điều này sẽ nhanh chóng được xóa bỏ với những tài liệu kỹ thuật được cập nhật thường xuyên, các khóa huấn luyện và các bộ công cụ phát triển đầy đủ với thư viện dồi dào. Minh chứng cho sự thành công của Symbian là ngày càng có nhiều nhà sản xuất chọn Symbian là hệ điều hành chính cho điện thoại thông minh của họ. 20 KH OA C NT T – Đ H KH TN 1.2 Lịch sử hệ điều hành Symbian Nguồn gốc của hệ điều hành Symbian có từ buổi đầu của những thiết bị cầm tay. David Potter, một giảng viên vật lý cùng các cộng sự thành lập công ty Psion chuyên nghiên cứu và phát triển các thiết bị có dung lượng bộ nhớ thấp và hệ điều hành cho chúng. Thế hệ thứ 3, hệ điều hành có tên SIBO (SIxteen Bit Organizer) được công bố năm 1988 đã mang lại những thành công nhất định cho công ty Psion. Thiết bị đầu tiên sử dụng SIBO là MC Laptop. Năm 1991, Psion sản xuất Series 3, một máy tính bỏ túi. Các sản phẩm tiếp theo của Psion sử dụng SIBO là Series 3c (1996) , Sienna (năm 1996)và Series 3mx (năm 1998). Những thành công của các thiết bị này chủ yếu từ 3 lý do: SIBO có một cơ chế quản lý mạnh mẽ, các ứng dụng nhanh nhẹn, ấn tượng, và tương tác dễ dàng với các loại máy tính khác như PC hay các thiết bị cầm tay khác. SIBO cũng cung cấp những công cụ cho những người phát triển ứng dụng: lập trình dựa trên C, có hỗ trợ hướng đối tượng, và sử dụng các engine, một phần nòng cốt trong việc phát triển Symbian sau này. Năm 1997, Psion công bố hệ điều hành thế hệ thứ tư, EPOC (Electronic Pocket Communication), với phiên bản EPOC Release 1(ER1) được sử dụng trên thiết bị mới Series 5. Tuy kế thừa từ SIBO, nhưng khi phát triển EPOC, Psion phải viết lại gần như toàn bộ bởi những hạn chế của SIBO: kiến trúc 16 bit, dùng ngôn ngữ C, và gắn chặt với kiến trúc CPU x86 của Intel. SIBO được sử dụng trong gần 10 năm với những thành công nhất định đã nhường chỗ cho thế hệ mới, EPOC, được phát triển cho kỷ nguyên mới. EPOC là hệ điều hành 32 bit được viết dựa trên những đặc tính nền tảng của SIBO, nhưng bổ sung rất nhiều tính năng mới như hỗ trợ các thiết bị sử dụng màn hình cảm ứng, hỗ trợ đa phương tiện, tăng khả năng truyền thông và dễ dàng tương tích với những kiến trúc hệ thống và thiết kế giao diện của các thiết bị khác nhau. EPOC được phát triển bằng C++ và hướng đối tượng hoàn toàn. Nó hoạt động theo hướng sử dụng các engine kế thừa từ SIBO và mở rộng thành một nhóm các server phối hợp truy cập các dịch vụ hệ thống và các thiết bị ngoại vi. EPOC đã được phát triển thêm 2 phiên bản là EPOC Release 3 (ER3) và EPOC Release 5 (ER5), chạy trên thiết bị Series 7. 21 KH OA C NT T – Đ H KH TN Psion Series 5mx Psion Revo - Revo Plus Psion 618C-618S Psion Series 7 - netBook H1.1 Các thiết bị sử dụng hệ điều hành EPOC Ngay khi đang phát triển EPOC, Psion đã chú ý đến sự tương thích cho EPOC với các thiết bị phần cứng khác nhau. Vì vậy, từ điện thoại di động, cho đến các thiết bị Internet đều có thể chạy tốt với EPOC. Và cơ hội phát triển của Psion đã đến khi các nhà sản xuất điện thoại di động đang tìm một hệ điều hành cao cấp, chuẩn và mạnh mẽ cho thế hệ thiết bị di động vô tuyến mới là WID, thường được biết nhiều dưới tên gọi là điện thoại thông minh. Tận dụng cơ hội này, Psion đã cùng với các nhà sản xuất điện thoại di động hàng đầu thế giới như Nokia, Ericsson và Motorola thành lập một công ty mới chuyên phát triển hệ điều hành cho WID, công ty Symbian. Symbian thành lập vào tháng 6 năm 1998 dựa trên nhóm phát triển phần mềm của Psion và các nhóm phát triển ứng dụng của các công ty sản xuất điện thoại di động thành viên, trụ sở chính đặt tại London (Anh) và có các chi nhánh ở Ronneby (Thụy Điển), Tokyo (Nhật) và thung lũng Silicon (Mỹ). Hệ điều hành Symbian được phát triển dựa trên phần nhân của EPOC và phát triển theo hướng phục vụ tốt nhất cho các thiết bị WID. Hệ điều hành Symbian đủ linh hoạt để đáp ứng những yêu cầu công nghiệp trong việc phát triển các thiết bị WID cao cấp trong khi vẫn cho phép các nhà sản xuất xây dựng riêng cho mình những chủng loại khác nhau. Thiết bị WID đầu tiên chạy hệ điều hành Symbian là Ericsson R380, ra đời năm 2000 nhưng Nokia 9210 Communicator, ra đời vào giữa năm 2001 mới là thiết bị WID đầu tiên sử dụng hệ điều hành mở Symbian, cung cấp đầy đủ các công cụ để phát triển ứng dụng cho các lập trình viên. Sự thành công của hệ điều hành Symbian đã được khẳng định khi có hàng loạt công ty sản xuất điện 22 KH OA C NT T – Đ H KH TN thoại di động mua cổ phần sở hữu Symbian như Matsushita (Panasonic) (1999), Siemens (2002), Samsung (2003) và chọn hệ điều hành Symbian là hệ điều hành chính cho điện thoại thông minh của họ ngoài các công ty sở hữu Symbian như Sanyo (2000), Fujitsu (2001), BenQ (2003), Sendo (2003), Mitsubishi (2003), Amira (2004) và LG Electronics (2004). Symbian ngày càng chứng tỏ là hệ điều hành hàng đầu cho các thiết bị WID. Ericsson R380e Nokia 9210 H1.2 Các điện thoại Symbian đầu tiên • Các phiên bản của hệ điều hành Symbian Nếu tính từ phiên bản đầu tiên Symbian OS v3 (ER3) được phát triển từ EPOC đến phiên bản hiện tại Symbian OS v8.0 đã có tất cả 8 phiên bản ra đời. Phiên bản 8.0 được công bố tháng 2 năm 2004, chưa có sản phẩm sử dụng, cải tiến hỗ trợ rất nhiều về phần cứng và Java. Khi phát triển các phiên bản mới, Symbian đã cố gắng để duy trì sự tương tích ngược mã nguồn (các chương trình viết trên các phiên bản trước có thể chạy trên phiên bản mới hơn khi được biên dịch lại) để những người phát triển ứng dụng có thể viết chương trình chạy được trên nhiều phiên bản khác nhau của hệ điều hành Symbian. Những thông tin về sự tương thích được cung cấp trong các phần tài liệu của thư viện phát triển ứng dụng. Symbian cũng cố gắng duy trì sự tương thích ngược mã nhị phân ( cho phép mã nhị phân ở phiên bản hệ điều hành trước chạy được trên hệ điều hành mới mà không cần biên dịch lại), mặc dù điều này không phải lúc nào cũng làm được khi các chức năng mới được giới thiệu. Lỗi lớn nhất của sự tương thích ngược mã nhị 23 KH OA C NT T – Đ H KH TN phân xảy ra khi phiên bản 5.1 ra đời, sử dụng Unicode gây ra các lỗi đối với chuỗi trong Symbian. Phiên bản Phần đổi mới Sản phẩm Symbian OS v3. Eikon UI, Agenda và các ứng dụng văn phòng Psion Series 5 Symbian OS v5. Ứng dụng Contacts, Media Server, Messaging, Java (JDK 1.1.4), Telephony Psion Series 5mx, Revo, Netbook/Series 7 Symbian OS v5.1 Tầng Uikon UI, Unicode Ericsson R380 Symbian OS v6.0 Tăng cường GSM telephony, PersonalJava và JavaPhone, Quartz và Crystal UIs, WAP Nokia 9200 Series Symbian OS v6.1 Bluetooth, GPRS Nokia 7650, 3650, Siemens SX1 Symbian OS v7.0 và v7.0s IPv6, hỗ trợ Metrowerks CodeWarrior , MIDP Java 1.0 và 2.0, Multimedia Messaging, Multimode Telephony, Opera Browser, SyncML Nokia 6600, Sony Ericsson P800, P900 Symbian OS v8.0 Tăng cường khả năng tích hợp phần cứng cho đa phương tiện, Java MIDP 2.0 (JSR118), CLDC1.1 (JSR139), MobileMedia (JSR135), đồ họa 3D (JSR184), JTWI 1.0 compliance (JSR185) và CLDC HI 1.1 Java VM Chưa có B1.1 Các phiên bản hệ điều hành Symbian 1.3 Các dòng điện thoại Symbian Hệ điều hành Symbian được thiết kế cho 2 loại thiết bị WID chiến lược là Communicator và Smartphone. Communicator là các máy PDA với khả năng liên lạc vô tuyến của điện thoại di động. Smartphone là điện thoại di động với các tính năng PDA bổ sung. Với 2 loại thiết bị chiến lược này, Symbian đã công bố một số mô hình thiết kế tham khảo cho các dòng thiết bị Symbian (DFRD-Device Family Reference Design). Mô hình tham khảo là mô hình chung cho các sản phẩm về bề mặt bên ngoài như kích thước màn hình, độ phân giải, màu, giao diện đồ họa và đặc biệt là cơ chế nhập xuất dữ liệu hoạt động bên trong. Hệ điều hành Symbian sẽ đảm 24 KH OA C NT T – Đ H KH TN nhận cung cấp các dịch vụ, khung ứng dụng và phần xử lý giao tiếp lõi, còn các phần xử lý liên quan đến giao diện bên ngoài và giao tiếp với người dùng tùy theo mô hình sẽ khác nhau và được cung cấp bởi các đối tác của Symbian hay do các nhà sản xuất cung cấp dựa trên chuẩn của từng mô hình. Điều này vừa giúp cho các nhà sản xuất có thể theo đuổi các dòng sản phẩm với các phong cách riêng của mình mà vẫn có thể dùng được hoàn hảo các tính năng mà Symbian mang lại. Do đó tuy là sử dụng cùng hệ điều hành Symbian nhưng dưới các mô hình thiết kế khác nhau sẽ có nền hệ thống khác nhau nên không phải ứng dụng nào chạy trên thiết bị thuộc mô hình này thì có thể hoạt động trên thiết bị thuộc mô hình kia. Cho đến hiện tại, Symbian hỗ trợ 3 mô hình DFRD cho 2 loại sản phẩm chiến lược là Communicator và Smartphone: mô hình Crystal và Quartz cho Communicator và Pearl cho Smartphone. Tuy các khái niệm này đã được bỏ từ phiên bản Symbian v7.0 nhưng để dễ phân loại và hiểu rõ các dòng điện thoại Symbian, chúng tôi vẫn giới thiệu chúng. • Mô hình Crystal Mô hình tham khảo Crystal định nghĩa một loại Communicator bỏ túi với hình dáng của một máy laptop. Crystal sử dụng màn hình màu theo chuẩn 1/2 VGA và một bàn phím QWERTY, có thể hỗ trợ màn hình cảm ứng để nhập liệu với bút stylus. Ngoài ra Crystal còn có 4 phím đặc biệt được đặt dọc theo ở phía phải bên ngoài màn hình. Crystal được thiết kế để sử dụng bằng 2 tay hoặc đặt trên bàn. Sản phẩm đầu tiên của mô hình Crystal là Nokia 9210 Communicator. • Mô hình Quartz Mô hình thiết kế tham khảo Quartz định nghĩa một loại Communicator với hình dáng của một máy pocket PC. Quartz sử dụng màn hình màu theo chuẩn 1/4 VGA, là một thiết bị WID dùng bút stylus nhập liệu qua tương tác với một màn hình cảm ứng. Vì vậy, không hề có một bàn phím vật lý nào trong mô hình Quartz, việc nhập liệu được thực hiện qua nhận dạng viết tay và một bàn phím ảo. Quartz 25 KH OA C NT T – Đ H KH TN cũng được thiết kế để sử dụng bằng cả 2 tay. Sản phẩm đầu tiên của mô hình Quartz là Sony Ericsson P800. H1.3 Mô hình tham khảo cho Communicator: Quartz và Crystal Ghi chú: Để tiện dùng cho các chức năng thoại, một số điện thoại thuộc mô hình Crystal và Quartz có bổ sung thêm một bản phím số. • Mô hình Pearl Mô hình tham khảo Pearl định nghĩa một loại Smartphone với hình dáng của một điện thoại di động thông thường. Pearl hỗ trợ màn hình màu với nhiều kích thước khác nhau, sử dụng bản phím số cho nhập liệu, và có thể hỗ trợ cả màn hình cảm ứng. Pearl được thiết kế để sử dụng một tay. Sản phẩm đầu tiên của mô hình Pearl là Nokia 7650. H1.4 Mô hình tham khảo cho Smartphone: Pearl 1.4 Các thành phần phần cứng chính trong điện thoại Symbian Hệ điều hành Symbian được xây dựng để chạy trên các điện thoại Symbian. Do đó các đặc tính phần cứng của điện thoại có tác động sâu sắc đến hệ điều hành. Vì vậy để hiểu rõ Symbian, chúng ta cần tìm hiểu các thành phần quan trọng cấu thành điện thoại Symbian đó là CPU, ROM, RAM , các thiết bị nhập xuất (I/O) và nguồn năng lượng. 26 KH OA C NT T – Đ H KH TN • Bộ xử lý trung tâm (Center Proccessing Unit-CPU): Hệ điều hành Symbian được thiết kế cho kiến trúc CPU 32 bit, chạy ở tốc độ thấp hơn so với CPU trên máy tính để bàn và trên server. Các hệ thống chạy Symbian hiện tại sử dụng 190MHz và 206MHz StrongARM CPU, với các loại CPU ARM7 và ARM9. Các điện thoại Symbian tương lai có thể chạy trên các CPU nhanh hơn. • Bộ nhớ trong ROM (Read Only Memory): ROM chứa hệ điều hành và tất cả các ứng dụng và phần mềm trung gian (middleware) có sẵn được nhà sản xuất đưa vào khi tạo thiết bị. Điều bày hoàn toàn khác với trên PC, nơi mà ROM chỉ chứa các phần nạp ban đầu và BIOS, còn hệ điều hành và ứng dụng lưu trên đĩa cứng. Bộ nhớ ROM trên điện thoại Symbian được gán nhãn là ổ đĩa Z. Tất cả mọi thứ trong ROM đều có thể truy cập như là file trên ổ đĩa Z. Vì vậy các chương trình được chạy trực tiếp trên ROM thay vì nạp vào RAM như trên PC. Bộ nhớ ROM thường rất giới hạn, thường là 8MB hoặc 16MB. • Bộ nhớ RAM (Random Access Memory): bộ nhớ RAM được sử dụng bởi các ứng dụng đang thực thi và nhân hệ thống. Một phần RAM được gán là ổ đĩa C dùng để chứa các chương trình, các file tài liệu ứng dụng,... Dung lượng RAM thường khoảng 8MB hoặc 16MB và ổ C thường chiếm 50% dung lượng RAM, nên có thể sẽ xảy ra lỗi khi bị tràn bộ nhớ. Khi khởi động nguội máy, nội dung trên RAM sẽ bị xóa. Dữ liệu trên RAM được phục hồi lại nếu khởi động nóng, trừ khi bị lỗi khi đang khôi phục. • Các thiết bị nhập xuất (Input/Output -I/O): bao gồm - Màn hình: có kích thước khác nhau tùy theo mô hình như đã nêu ở phần trên, có thể là màn hình cảm ứng với khả năng tương tác bằng viết. - Một bàn phím: có thể chỉ là bản phím số hay qwerty. - Một khe cắm thêm thẻ nhớ (memory card): đây là bộ nhớ ngoài của điện thoại Symbian và được gán nhãn ổ D. - Một cổng tuần tự RS232: để giao tiếp với PC. - Một cổng hồng ngoại và Bluetooth cho các truyền thông vô tuyến giữa điện thoại Symbian và các thiết bị khác như laptop, Palm PDA,.. 27 KH OA C NT T – Đ H KH TN • Nguồn năng lượng: bao gồm các pin đặc thù và các nguồn điện phụ, thông qua một thiết bị phù hợp. Symbian cũng sử dụng những kỹ thuật như hệ điều hành trên máy tính để bàn: nó sử dụng một kiến trúc trình điều khiển thiết bị và cung cấp các API để lập trình điều khiển các thiết bị ngoại vi này. Nhưng Symbian có những đặc điểm rất khác so với hệ điều hành trên máy tính để bàn do tài nguyên trên điện thoại Symbian là khá giới hạn, không có đĩa cứng nên cách quản trị bộ nhớ dùng bộ nhớ ảo và xử lý theo trang là không thể thực hiện trên Symbian. Ngoài ra với nguồn năng lượng hạn hẹp, Symbian phải được thiết kế đặc biệt, có thể chạy ổn định ngay cả khi đang sạc hay thay pin. 1.5 Tương lai Symbian Tại CTIA Wireless, Atlanta, Georgia – ngày 22 tháng 3 năm 2004 Symbian đã công bố một bản báo cáo về các nhà sản xuất mới sử dụng Symbian, các điện thoại Symbian và các giải pháp cho điện thoại di động với các con số thống kê đáng chú ý như sau: - Symbian vừa được Lenovo (nhà sản xuất điện thoại di động hàng đầu TQ) chọn là hệ điều hành cho điện thoại của mình vào tháng 3 năm 2004 sau LG Electronics và Arima tăng số nhà sản xuất dùng Symbian lên con số 14 đưa Symbian trở thành hệ điều hành hàng đầu cho điện thoại thông minh với 85% số điện thoại thông minh bán ra trên toàn thế giới dùng Symbian. - Năm 2003 hơn 6,67 triệu điện thoại Symbian được đưa ra bởi năm nhà sản xuất. Tổng số điện thoại Symbian đã bán trên toàn thế giới lên con số 10 triệu. - Các ứng dụng chạy trên Symbian được download và bán ra tăng trung bình 20% một tháng. Các thống kê này đã đưa Symbian trở thành giải pháp hệ điều hành thiết bị WID có thị trường rộng lớn nhất thế giới. 28 KH OA C NT T – Đ H KH TN Tập trung vào phục vụ các chức năng như trên máy tính và truyền thông, nâng cao khả năng truy cập Internet, Symbian ngày càng trở nên mạnh mẽ và được ưa chuộng. Hiện nay Symbian được sở hữu bởi Nokia (32,2%), Psion (31,1% - Nokia đã mua cổ phần này của Psion), Ericsson (17,5%), Panasonic (7,9%), Samsung (5%) Siemens (4,8%) và Sony Ericsson(1,5%), những công ty sản xuất điện thoại di động hàng đầu thế giới. Nhưng việc ra đi của Motorola (2003), nhà sản xuất điện thoại đứng hàng thứ hai trên thế giới sau Nokia đã khiến Symbian gần như là của Nokia (63,3 %). Nokia có “tiếng nói” quyết định đến sự phát triển Symbian, và có thể xem như Nokia vừa làm phần mềm - HĐH, vừa bán phần cứng - ĐTDĐ. Đây có thể là thuận lợi cho Nokia nhưng cũng là nguy cơ ngăn cản sự phát triển của Symbian. (Giống như trường Apple trong lĩnh vực PC, vừa bán máy tính Macintosh vừa làm HĐH Mac OS). Không những thế Motorola sau khi rời Symbian đã bắt tay với Microsoft để phát triển điện thoại di động sử dụng hệ điều hành do Microsoft viết với tên gọi là HĐH MS Smartphone 2002 dựa trên Window CE, phiên bản mới nhất là Windows Mobile 2003. Đây là đối thủ tiềm tàng của Symbian. Mới đây công ty Radixs Private (Singapore) đã tung ra hệ điều hành MXI cho phép các ứng dụng Windows, Linux và Java có thể chạy trên các thiết bị di động, mà cụ thể ở đây là máy tính cầm tay, thiết bị hỗ trợ cá nhân kỹ thuật số (PDA), điện thoại di động... Tuy đang còn thử nghiệm nhưng đây thật sự là một bước ngoặt tạo ra một giai đoạn cạnh tranh mới cho Symbian và các hệ điều hành cho thiết bị WID khác. 29 KH OA C NT T – Đ H KH TN CHƯƠNG 2 CẤU TRÚC HỆ THỐNG HỆ ĐIỀU HÀNH SYMBIAN Cấu trúc hệ điều hành và phần mềm ứng dụng Nhân và E32 Hệ thống con và API Cấu trúc truyền thông trong Symbian Serial comms server Telephony server Socket server Comms database server Truyền thông hồng ngoại Truyền thông Bluetooth Tiến trình và tiểu trình trong Symbian Tiến trình Tiểu trình Tiến trình và tiểu trình trong nhân Quản lý và điều phối tiến trình Chương trình hoạt động trên Symbian File thực thi Nạp chương trình khi thực thi Thực thi ứng dụng và server Quản lý bộ nhớ Quản lý nguồn năng lượng Quản lý thời gian An toàn hệ thống 30 KH OA C NT T – Đ H KH TN 2.1 Cấu trúc hệ điều hành và phần mềm ứng dụng Hệ điều hành Symbian và các ứng dụng chạy trên nó có thể chia vào các loại thành phần khác nhau với các ranh giới giữa chúng như hình H2.1: H2.1 Mô hình các ranh giới Nhân (kernel) quản lý các tài nguyên phần cứng như RAM và các thiết bị phần cứng khác. Nó cung cấp và điều khiển cách thức mà tất cả các thành phần phần mềm khác dùng để truy cập các tài nguyên hệ thống. Nhân sử dụng đặc quyền hỗ trợ phần cứng của mình để truy cập đến các tài nguyên, CPU sẽ thực hiện các chỉ thị đặc quyền (privileged instruction) này cho nhân. CPU cũng thực thi một loại chương trình khác, gọi là chương trình ở chế độ người dùng hay chương trình người dùng (user-mode program) không có đặc quyền. Các chương trình này chỉ có thể truy cập tài nguyên hệ thống thông qua các hàm API do nhân cung cấp. Ranh giới giữa nhân và tất cả các thành phần khác là ranh giới đặc quyền. Ứng dụng (application) là một chương trình có giao diện người dùng. Mỗi ứng dụng chạy trong một tiến trình riêng với một vùng địa chỉ được cấp cho riêng nó. Ranh giới giữa ứng dụng này với ứng dụng khác là ranh giới tiến trình. Một ứng dụng không thể ngẫu nhiên ghi đè lên dữ liệu của một ứng dụng khác vì khoảng địa chỉ của mỗi tiến trình là hoàn toàn độc lập. Server là chương trình không có giao diện người dùng. Một server đảm trách quản lý một hoặc nhiều tài nguyên. Nó cung cấp các hàm API để các chương trình khác có thể truy cập đến các dịch vụ do nó cung cấp. Đối tượng phục vụ của nó là ứng dụng hay các server khác. Mỗi một server thường chạy trong một tiến trình 31 KH OA C NT T – Đ H KH TN riêng, ranh giới giữa một server và các server, ứng dụng khác là ranh giới tiến trình. Điều này đảm bảo sự toàn vẹn cho hoạt động của server. Tuy nhiên, hiện nay để tăng hiệu suất sử dụng, giảm chi phí chuyển đổi ngữ cảnh giữa các tiến trình, các server có quan hệ mật thiết với nhau có thể chạy trên cùng một tiến trình. Sự độc lập giữa server và các chương trình mà nó phục vụ cũng giống như sự độc lập giữa nhân và các chương trình ở chế độ người dùng, nhưng server dễ lập trình và sử dụng hơn nhân. Hệ điều hành Symbian sử dụng các server để cung cấp các dịch vụ mà ở trên các hệ điều hành khác chúng được cung cấp từ nhân và các trình điều khiển thiết bị. Truy cập các tính năng hệ thống qua các server thay vì sử dụng trực tiếp là một trong những đặc điểm nổi bật của Symbian. Nó không những tăng tính module hóa mà còn giúp cho việc sử dụng hiệu quả nhờ sự chia sẻ giữa các client. Các server chính trên Symbian: - File server: phục vụ chia sẻ tài nguyên liên quan file, server quan trọng nhất. - Window server: phục vụ các tài nguyên liên quan giao tiếp người dùng như bàn phím, màn hình (bao gồm cả nhập và xuất). - Font và bitmap server: quản lý các tài nguyên dùng chung cũng như riêng cho hệ thống về font chữ và hình ảnh bitmap. - Database server: phục vụ các hoạt động liên quan cơ sở dữ liệu. - Serial communication server: phục vụ tài nguyên và cung cấp giao thức liên quan giao tiếp tuần tự. - Socket server: phục vụ các truyền thông socket. Engine là phần của ứng dụng chỉ chú trọng đến thao tác xử lý dữ liệu bên dưới mà hầu như không quan tâm đến giao diện người dùng đồ họa (GUI-Graphic User Interface). Thông thường chúng ta có thể chia một ứng dụng thành 2 phần: Engine và GUI. Các engine có thể là một đoạn mã nguồn (source module) độc lập trong một chương trình ứng dụng phụ trách thực hiện một nhiệm vụ nào đó hay là một thư viện liên kết động độc lập (DLL-Dinamic Link Library) hoặc một nhóm DLL riêng. Các ứng dụng sẽ dùng chung các engine này để phục vụ cho hoạt động của mình. 32 KH OA C NT T – Đ H KH TN Ranh giới giữa engine và ứng dụng là ranh giới module hay DLL với mục đích chính là để nâng cao cấu trúc thiết kế phần mềm, tăng tính module hóa, trong khi ranh giới tiến trình và ranh giới đặc quyền nhằm mục đích ngăn chặn những truy cập không cần thiết. Như vậy, chúng ta có 4 loại thành phần chính trong cấu trúc hệ điều hành và ứng dụng của Symbian: nhân, ứng dụng, server và engine, và có 3 loại ranh giới. Ranh giới module hoặc ranh giới DLL là rất dễ vượt qua, chúng chỉ nhằm mục đích nâng cao sự toàn vẹn hệ thống với module hóa và đóng gói. Ranh giới đặc quyền khó vượt qua hơn, chúng nâng cao tính toàn vẹn hệ thống bằng các che giấu nhân và thiết bị khi ở chế độ người dùng. Ranh giới tiến trình là khó vượt qua nhất, nó bảo vệ sự toàn vẹn bằng cách phân các vùng RAM riêng biệt cho các chương trình. 2.1.1 Nhân và E32 Thành phần cơ bản nhất của hệ điều hành Symbian là E32, bao gồm nhân và thư viện người dùng. Nhân thì hoàn toàn đặc quyền, trong khi thư viện người dùng, euser.dll thì nằm ở cấp độ thấp nhất phần chế độ người dùng. Thư viện euser.dll cung cấp các thư viện chức năng cho các chương trình chế độ người dùng khác và điều khiển việc truy cập nhân. Nhân bao gồm 2 bộ phận: - Bộ phận điều hành nhân (kernel executive): chạy các mã đặc quyền trong ngữ cảnh một tiểu trình được thực thi ở chế độ người dùng. Do đó các mã thực thi này có thể bị chiếm quyền thực thi bởi một tiểu trình ở chế độ người dùng có độ ưu tiên cao hơn hoặc bởi tiểu trình bộ phận phục vụ nhân. - Bộ phận phục vụ nhân (kernel server): tiến trình bộ phận phục vụ nhân có một tiểu trình chính và luôn luôn chạy đặc quyền. Đây là tiểu trình có độ ưu tiên cao nhất trong hệ thống. Nó cấp phát và giải phóng tài nguyên cho các server và ứng dụng. Nó là một tiểu trình đơn giản, quản lý các yêu cầu người dùng thành chuỗi, không ưu tiên. 33 KH OA C NT T – Đ H KH TN H2.2 Mô hình E32 • Thư viện euser.dll cung cấp 3 loại hàm chức năng khác nhau: - Các chức năng thực thi toàn bộ ở phía người dùng, như các chức năng về chuỗi và lớp descriptor (là dạng lớp string trong Symbian), danh sách liên kết, mảng, thao tác văn bản, bắt lỗi, v.v... - Các chức năng đòi hỏi đặc quyền, sẽ được kết nối với bộ phận điều hành nhân, như đặt lại cấu hình về thời gian, vị trí, cấp phát heap, tiểu trình, v.v... - Các chức năng đòi hỏi được cung cấp từ bộ phận phục vụ nhân, từ thư viện thông qua bộ phận thi hành đến bộ phận phục vụ nhân. • Trình điều khiển thiết bị Các thiết bị hệ thống như màn hình, bàn phím, màn hình cảm ứng số hóa (digitizer), thiết bị âm thanh, đèn trạng thái, bộ cảm biến điện, cổng tuần tự,... được điều khiển bởi các trình điều khiển thiết bị cấp thấp. Có thể gắn thêm thiết bị và viết 34 KH OA C NT T – Đ H KH TN trình điều khiển cho chúng. Một trình điều khiển thiết bị được cài đặt trong một số phần như hình vẽ: H2.3 Mô hình các trình điều khiển thiết bị Bộ phận điều hành nhân chứa các hỗ trợ cho điều khiển thiết bị để một chương trình người dùng có thể yêu cầu mã điều khiển thiết bị chạy dưới phần nhân, ở bộ phận điều hành nhân hay bộ phận phục vụ nhân. Các trình điều khiển xử lý ngắt (interrupt) thiết bị rồi báo cho chương trình người dùng (hay ở phần nhân) yêu cầu đã hoàn thành. Quản lý ngắt làm việc ở 2 cấp: - Cấp thứ nhất được thực hiện bởi vòng dịch vụ ngắt (interrupt service routine- ISR). Các ISR này ngắn và không thực hiện nhiều bởi vì có thể chúng xuất hiện tại bất cứ thời điểm nào, ngay cả ở giữa các hoạt động của bộ phận phục vụ nhân. Thường chúng đơn giản chỉ báo xác nhận thiết bị gây ngắt và đặt cờ yêu cầu nhân chạy một cuộc gọi hàm trì hoãn (delayed function call-DFC) cho các xử lý ở cấp thứ hai. - Bộ phận điều hành nhân gọi DFC khi nó ở trạng thái thuận tiện, chẳng hạn thực thi ngay lập tức nếu ngắt xảy ra khi đang thực thi ứng dụng ở chế độ người dùng. Ngược lại, xảy ra ngắt khi bộ phận điều hành nhân đang hoạt động thì DFC sẽ được gọi khi có một sự chuyển đổi thực thi từ phần nhân sang phần chế độ người 35 KH OA C NT T – Đ H KH TN dùng. Các DFC có thể dùng hầu hết các hàm API của nhân. Thường các DFC này chỉ thực hiện một xử lý nhỏ rồi gởi đến một tiểu trình người dùng để xác nhận yêu cầu I/O đã hoàn tất. Hầu hết các lập trình viên đều chỉ có thể lập trình ở phần người dùng nhờ các API cung cấp từ các SDK. Nếu muốn lập trình sâu xuống phần nhân hay lập trình các trình điều khiển thiết bị chuyên dụng, họ phải là thành viên của Symbian Platinium, phải mua một gói chứa các hàm API riêng của Symbian. Nói các khác Symbian chỉ mở 95% chứ không phải hoàn toàn 100% cho các lập trình viên tự do. 2.1.2 Hệ thống con và API Hệ điều hành Sybian là một hệ thống lớn, chứa hàng trăm lớp và hơn ngàn hàm chức năng. Giống như các hệ thống phức tạp khác, Symbian được chia thành các phần nhỏ hơn gọi là các hệ thống con. Mỗi nhóm chứa các API phục vụ cho một nhóm chức năng có quan hệ với nhau. H2.4 Mô hình các hệ thống con • Nhóm cơ sở (base): gồm nhân, thư viện người dùng, các trình điều khiển thiết bị, file server. Các API này gồm các lớp như quản lý chuỗi, mảng, danh sách, quản lý lỗi, và ngay cả các kiểu cơ bản dùng cho số nguyên (integer) và số thực (real). Đối với các lập trình viên hệ thống, những người cần thao tác các phần nền 36 KH OA C NT T – Đ H KH TN tảng của hệ thống như tiểu trình, tiến trình, bộ nhớ, ... nhóm cơ sở sẽ cung cấp cho họ các API cần thiết. Nhưng như đã nói ở trên, phần lớn những API này cung cấp rất hạn chế cho các lập trình viên tự do ngoài Symbian Platinium. • Nhóm bảo mật (Security): gồm các thành phần cung cấp các thuật toán mã hóa, quản lý xác nhận và trình cài đặt ứng dụng có chứa các đặc tính bảo mật. • Nhóm đồ họa (Graphic): gồm các API phục vụ cho vẽ trên các loại thiết bị như màn hình hay máy in, các đối tượng ảnh nhúng và quản lý font, ảnh bitmap. Nhóm này cũng chứa các API của window server ở phía người dùng, cung cấp các chức năng vẽ trên window và nhận các sự kiện trên window và các API phục vụ hoạt họa cho phép chạy chúng trong các tiểu trình có độ ưu tiên cao. • Trình công cụ và tiện ích (Engine và Utility): gồm Contact, Agenda, ứng dụng văn phòng, SyncML, quản trị dữ liệu, trình duyệt, ... Các nhóm này kết hợp với nhóm đồ họa tạo thành phần trung gian (Middleware). - Nhóm khung ứng dụng (application framework): bao gồm các API xác định cấu trúc và quản lý giao diện người dùng. Nó bao gồm các API cho việc quản lý trình bày văn bản, điều khiển giao tiếp với người dùng, và các cơ chế khác như nhận dạng viết tay... - Nhóm công cụ ứng dụng (application engine): Các nhóm API này cung cấp cách truy cập dữ liệu của các ứng dụng lõi. Việc này giúp cho các ứng dụng mới có thể tích hợp với các ứng dụng lõi, như các ứng dụng truyền thông có thể thao tác và đọc dữ liệu của Contact và Agenda. - Nhóm đa phương tiện (multimedia): cung cấp các API cho thao tác âm thanh, hình ảnh. - Nhóm dịch vụ ứng dụng (application service): cung cấp một nhóm các dịch vụ tiện ích cho ứng dụng, từ các thông tin hệ thống đến quản lý vCard và vCalendar. - Nhóm giao thức ứng dụng (application protocol): cung cấp các API cho phần kết nối chuẩn, SyncML (đồng bộ), giao thức Web HTTP. • Truyền thông (Communication): 37 KH OA C NT T – Đ H KH TN - Nhóm cơ sở hạ tầng truyền thông ( Comms Infrastructure): cung cấp các API liên quan đến các dịch vụ hệ thống tổ chức cho truyền thông và kết nối mạng. Các API này phục vụ cho các nhóm trên như giao tiếp hồng ngoại (Infrared), Bluetooth, và truyền thông tuần tự (serial). Liên kết mạng cũng được xây dựng trên nhóm này, cung cấp ngăn giao thức TCP/IP, kết nối theo kiểu dial-up. - Nhóm hệ thống điện thoại (Telephony): cung cấp truy cập ứng dụng đến các chức năng điện thoại và một cơ cấu tổ chức để xây dựng các trình điều khiển cho phần cứng liên quan chức năng thoại. - Nhóm giao thức băng tần hẹp (Narrow Band Protocol) cung cấp các API cho việc quản lý tin nhắn (message) SMS. - Ở cấp cao hơn, nhóm Messaging cung cấp một cơ cấu cho nhiều giao thức nhắn tin (SMS, MMS). - Ngăn WAP (Wireless Application Protocol) cung cấp các API phục vụ truy cập các giao thức WAP và trình duyệt WAP (WAP Browser) hỗ trợ cho WAP Push. • Hệ thống ngôn ngữ: cung cấp các API cho lập trình Java qua các nhóm Java, JavaPhone, và MIDP. 2.2 Cấu trúc truyền thông Chức năng truyền thông, liên lạc vô tuyến là một trong những trọng tâm trong thiết kế của các hệ điều hành cho WID và với Symbian, điều này cũng không ngoại lệ. Nhìn vào cấu trúc hệ điều hành và phần mềm của Symbian ở phần trên, ta có thể dễ dàng nhận ra các hệ thống con phục vụ cho truyền thông, liên lạc vô tuyến chiếm hơn một nữa. Trong phần này chúng ta sẽ tìm hiểu về các server phục vụ cho truyền thông và các phương thức truyền thông vô tuyến quan trọng. • Serial comms server Serial comms server cung cấp các hàm API truy cập các cổng tuần tự cho các client. Nó cũng đặc tả một giao tiếp cho phép một số giao thức tựa tuần tự như là 38 KH OA C NT T – Đ H KH TN các cổng tuần tự. Symbian sử dụng đặc tính này để truy cập cả truyền thông tuần tự thật qua cổng giao tiếp RS232 và truyền thông hồng ngoại IrCOMM qua cổng hồng ngoại. • Telephony server Telephony server cung cấp các API chuẩn để các client có thể khởi tạo, điều khiển và ngắt các cuộc gọi, truyền dữ liệu, fax. Symbian cung cấp các module chung, chuẩn cho các điện thoại GSM và truyền thông mặt đất dùng các tập lệnh AT. Bên trong telephony chứa một server khác là fax server chuyên thực hiện các giao thức truyền fax, hỗ trợ truyền và nhận thô, và cung cấp cho các client các API cho phiên truyền thông fax. • Socket server Socket server cung cấp các socket API tựa BSD cho các client. Nó cũng đặc tả một giao tiếp cho phép socket được thực hiện với nhiều giao thức khác nhau. Symbian cung cấp giao thức chuẩn là Internet và hồng ngoại, cùng với giao thức kết nối PLP dùng cho kết nối với máy tính cá nhân PC. • Comms database server Cơ sở dữ liệu truyền thông được thực hiện nhờ DBMS server của Symbian. Đây là nơi lưu trữ tất cả các thông tin về cuộc gọi, modem, giao thức, số điện thoại truy cập mạng, địa chỉ Internet và các định vị vật lý, cùng với chi tiết của các trình điều khiển thiết bị sẵn dùng cho các server hệ thống và nhân. Control Panel thường được dùng để tạo và cập nhật cho cơ sở dữ liệu này. Cơ sở dữ liệu này sẽ cung cấp các thông tin cần cho các thao tác liên quan đến truyền thông. 39 KH OA C NT T – Đ H KH TN H2.5 Cấu trúc truyền thông • Truyền thông hồng ngoại Truyền thông hồng ngoại là một trong 2 giao thức truyền thông dữ liệu chuẩn trên Symbian qua các thiết bị hồng ngoại tuần tự (Serial Infrared-SIR) gắn liền trên các điện thoại Symbian. Một ngăn truyền thông hồng ngoại được Symbian cung cấp: socket server cung cấp IrLAP, IrLMP, IrTinyTP, IrObex và IrMUX, IrCOMM được cung cấp bởi dịch vụ tuần tự. • Truyền thông Bluetooth Truyền thông Bluetooth là một chuẩn trong truyền thông vô tuyến dùng các sóng radio ngắn được Symbian hỗ trợ. Bluetooth vốn được Ericsson, một thành viên sáng lập Symbian nghiên cứu phát triển. Hiện nay chuẩn Bluetooth được quản lý bởi Special Interest Group (SIG), một nhóm gồm các công ty hàng đầu như Ericsson, 3Com, IBM, Intel, Microsoft, Motorola và Nokia. Bluetooth hoạt động ở băng tầng 2.4 GHz và có ảnh hưởng trong phạm vi 10m. 40 KH OA C NT T – Đ H KH TN 2.3 Tiến trình và tiểu trình trong Symbian 2.3.1 Tiến trình Giống như trong các hệ điều hành khác, tiến trình (process) là đơn vị cơ sở cần bảo vệ trong Symbian. Mỗi tiến trình có một không gian địa chỉ riêng. Địa chỉ ảo của chương trình khi thực thi sẽ được ánh xạ thành các địa chỉ vật lý trên ROM (với các chương trình thực hiện trực tiếp trên ROM) và trên RAM (chứa mã chương trình, dữ liệu động và các thành phần khác cần cho hoạt động của chương trình) tạo không gian bộ nhớ cho tiến trình. Công việc ánh xạ này được thực hiện bởi đơn vị quản lý bộ nhớ (Memory Management Unit-MMU). Do địa chỉ mã chương trình trên ROM luôn cố định nên các chương trình trên ROM là có thể được dùng chung (2 ứng dụng sử dụng một DLL lưu trên ROM). Còn trên RAM, mỗi tiến trình có một vùng nhớ riêng, không được truy xuất lẫn nhau. 2.3.2 Tiểu trình Cũng như các hệ điều hành khác, tiểu trình (thread) là đơn vị cơ sở thực thi chương trình trên Symbian. Một tiến trình sẽ bao gồm nhiều tiểu trình và các tiểu trình này sử dụng cùng một vùng nhớ được cung cấp cho tiến trình đó. Thông thường trên Symbian, một tiến trình chỉ chứa một tiểu trình. 2.3.3 Tiến trình và tiểu trình nhân Trong nhân, chỉ có duy nhất một tiến trình hoạt động: tiến trình nhân. Nó hoạt động ở chế độ đặc quyền. Có 2 tiểu trình hoạt động phục vụ cho nhân: tiểu trình phục vụ nhân (kernel server) và tiểu trình rỗng (null). Tiểu trình phục vụ nhân là tiểu trình có độ ưu tiên cao nhất trong hệ thống. Bất cứ khi nào có yêu cầu sử dụng các dịch vụ hệ thống trong nhân là tiểu trình này hoạt động ngay lập tức. Ngược lại, tiểu trình null là tiểu trình có độ ưu tiên thấp nhất trong hệ thống. Tuy vậy, nó lại đóng vai trò rất quan trọng trong hệ thống. Khi điện thoại Symbian khởi động, hệ điều hành bắt đầu hoạt động thì tiểu trình null là tiểu trình chạy đầu tiên với nhiệm vụ là nạp file server. Khi hệ thống đang hoạt động, tiểu trình null sẽ không bao giờ được gọi do độ ưu tiên thấp nhất. Nhưng khi hệ thống không còn phục vụ cho một ứng dụng nào nữa, tiểu trình null sẽ được thực hiện. Nhiệm vụ của nó lúc này là gọi 41 KH OA C NT T – Đ H KH TN phần quản lý năng lượng để đưa hệ thống vào trạng thái “ngủ” để giảm thiểu hao hụt năng lượng. 2.3.4 Quản lý và điều phối tiến trình Việc điều phối và quản lý tiến trình, tiểu trình sẽ do nhân đảm trách. Bộ điều phối tiến trình hoạt động theo cơ chế độ ưu tiên với nguyên lý không độc quyền sử dụng thuật toán điều phối Round Rubin: trong một chu kỳ, tiểu trình có độ ưu tiên cao nhất sẽ được chạy trước tiên, các tiểu trình khác ở trạng thái tạm hoãn (suspend). Nhân hệ thống kiểm tra độ ưu tiên của các tiểu trình tại đầu chu kỳ và sẽ phục hồi hoạt động (resume) cho tiểu trình nếu tiểu trình này có độ ưu tiên lớn hơn tiểu trình đang hoạt động. Thông thường, để xây dựng cơ chế quản lý sự kiện cho các tiến trình, các hệ điều hành sử dụng cơ chế đa tiểu trình (multi thread): ví dụ một tác vụ tính toán lâu và phức tạp được xử lý bởi một tiểu trình trong khi một tiểu trình khác tiếp tục chờ xử lý các sự kiện nhập của người dùng. Cơ chế này Symbian có hỗ trợ nhưng hiếm khi được dùng do bộ vi xử lý không mạnh mẽ như trên máy tính và sử dụng nhiều tiểu trình cũng không phù hợp với mô hình sử dụng server trên Symbian. Do đó Symbian đã sử dụng một cơ chế tối ưu hơn cho hoạt động của ứng dụng và các server: Đó là mọi vấn đề quản lý sự kiện và xử lý tác vụ đồng thời đều được thực hiện nhờ một đối tượng đặc biệt trong Symbian, active object. Mỗi một tiểu trình trên hệ điều hành Symbian có một bộ điều phối active scheduler đảm trách việc quản lý sự kiện thông qua việc quản lý điều phối một hoặc nhiều active object. 2.4 Chương trình hoạt động trên Symbian 2.4.1 File thực thi Như chúng ta đã biết, chương trình C++ chỉ là một chuỗi chỉ thị được quản lý trong một file thực thi được. Trên Symbian hỗ trợ 2 hệ thống chương trình ứng với các kiểu file khác nhau. • Chương trình .exe: được lưu trữ trong các file thực thi có phần mở rộng là exe. Đây là chương trình với một đầu vào chính từ hàm E32Main(). Khi hệ thống 42 KH OA C NT T – Đ H KH TN nạp một chương trình .exe mới, đầu tiên nó tạo một tiến trình mới. Trong tiểu trình chính của tiến trình này, điểm vào sẽ được gọi để thực thi chương trình đó. Thông thường đây là các server hay các ứng dụng console. • Thư viện liên kết động (Dynamic link library-DLL): một thư viện chứa các mã chương trình với nhiều điểm đầu vào. Hệ thống sẽ nạp một DLL vào trong ngữ cảnh hoạt động của tiểu trình. Có 2 loại DLL quan trọng: - Thư viện DLL dùng chung (shared DLL): cung cấp một nhóm API nhất định cho một hay nhiều chương trình sử dụng. Hầu hết các thư viện này nằm trong các file có phần mở rộng là .dll. Một chương trình thực thi sẽ được nối với thư viện dùng chung mà nó yêu cầu và khi hệ thống nạp chương trình thực thi, thư viện dùng chung cần cho chương trình này sẽ được nạp tự động. Các chương trình thực thi sẽ tham khảo các hàm thư viện DLL dùng chung qua một file giao tiếp của thư viện DLL có phần mở rộng là .lib. H2.6 DLL dùng chung - Thư viện DLL đa hình (polymorphic DLL): cung cấp một nhóm hàm API được lưu trữ trong các file có phần mở rộng khác nhau phục vụ cho các chức năng riêng như điều khiển máy in (.prn), giao thức socket (.prt), hay đó là một ứng dụng đồ họa GUI (.app). Trong hệ điều hành Symbian, các thư viện đa hình này thường chỉ có một điểm vào, nó khai báo và khởi tạo một lớp dẫn xuất từ các lớp cơ bản trong DLL này. Thư viện DLL loại này được nạp bởi chương trình sử dụng nó. 43 KH OA C NT T – Đ H KH TN Hệ điều hành Symbian quản lý chương trình .exe và DLL khác nhau: chương trình .exe là không thể chia sẻ trong khi DLL thì hoàn toàn có thể. 2.4.2 Nạp chương trình khi thực thi Các file thực thi chứa 3 loại dữ liệu nhị phân: mã chỉ thị, dữ liệu chỉ đọc (hằng) và dữ liệu động (thay đổi được). • Chương trình .exe: Khi chương trình .exe được nạp vào RAM từ file .exe được lưu trên RAM (đĩa C) hoặc từ thẻ nhớ (đĩa D), thì nó được cấp một vùng nhớ riêng cho mã, dữ liệu chỉ đọc, dữ liệu động. Nếu một phiên bản thứ 2 của chương trình được nạp vào RAM thì một vùng nhớ mới sẽ được cấp cho nó. Với file chương trình .exe chứa trong ROM (ổ đĩa Z) thì chỉ có dữ liệu động được nạp vào RAM, mã chỉ thị và dữ liệu chỉ đọc được đọc trực tiếp từ ROM. • Thư viện DLL: Khi một thư viện DLL lần đầu tiên được nạp vào RAM, nó được cấp một vùng nhớ riêng, khi được yêu cầu sử dụng lần thứ hai, nó không nạp tiếp DLL này vào RAM mà đơn giản chỉ gắn địa chỉ nó trên RAM cho tiểu trình yêu cầu. Hệ điều hành Symbian kiểm tra số lượng tiểu trình tham khảo DLL này và giải phóng nó khi không còn tiểu trình nào sử dụng nó nữa. Với các DLL chứa trên ROM thì nó không cần nạp vào RAM nữa mà được sử dụng trực tiếp trên ROM. Việc các ứng dụng lưu trữ trên ROM không cần nạp vào RAM khi thực thi là đặc điểm của Symbian để phù hợp với tài nguyên bộ nhớ giới hạn của điện thoại. Ngoài ra để tối ưu hóa kích thước chương trình, hệ điều hành Symbian sử dụng điểm vào của DLL là một số thứ tự, trên các hệ điều hành khác có thể dùng số thứ tự hay tên. Do đó khi nâng cấp DLL thì số thứ tự phải giống như phiên bản trước. 2.4.3 Thực thi ứng dụng và server • Các server được lưu trữ trong các file .exe, như ewsrv.exe là window server, hay efsrv.exe là file server. Để giảm chi phí chuyển đổi ngữ cảnh các server có cùng nhóm chức năng được dùng chung một tiến trình. Một server chính sẽ tạo tiến trình và các server khác sẽ thực thi tiểu trình của nó với tiểu trình của server chính. 44 KH OA C NT T – Đ H KH TN • Ứng dụng console (không có giao diện đồ họa) được thực thi qua file chương trình .exe. Các ứng dụng dạng này phải tạo một console riêng để tương tác với người dùng. • Các ứng dụng có giao diện đồ họa (GUI) là những thư viện DLL đa hình với phần mở rộng là .app. Điểm vào của ứng dụng này là NewApplication() tạo và trả về một đối tượng dẫn xuất từ lớp CEikApplication (Series 80/9200Series/Series90) hay các lớp dẫn xuất từ CEikApplication phù hợp theo từng dòng điện thoại Symbian như CQikApplication (UIQ), CAknApplication (Series 60). Tiến trình ứng dụng được tạo bởi một chương trình nhỏ .exe, apprun.exe, và tên của file chương trình ứng dụng .app được chuyển làm tham số cho apprun.exe. H2.7 Ứng dụng GUI với chương trình nạp Apprun.exe 2.5 Quản lý bộ nhớ Bộ nhớ hệ thống được quản lý bằng đơn vị quản lý bộ nhớ (MMU). • Quản lý ROM khá đơn giản. ROM bao gồm toàn bộ các file trong một cây thư mục trên ổ Z, được gắn với địa chỉ cố định để dữ liệu có thể được đọc trực tiếp dễ dàng, không cần thông qua file server. Chương trình được thực thi trực tiếp tại ROM và hình ảnh, font được dùng ngay trên ROM cho hiển thị màn hình thay vì phải nạp qua RAM. Z: H2.8 Bộ nhớ ROM 45 KH OA C NT T – Đ H KH TN • Quản lý RAM phức tạp hơn. Bộ nhớ RAM được chia thành các trang 4KB bởi MMU. H2.9 Bộ nhớ RAM Mỗi trang có thể được cấp cho: - Vùng địa chỉ ảo cho một tiến trình người dùng hay tiến trình phục vụ nhân. Khoảng địa chỉ của tiến trình bao gồm các vùng địa chỉ cho: vùng nhớ hệ thống (ROM và DLL được nạp vào RAM), vùng nhớ tiến trình (hình biểu tượng cho ứng dụng (image) và các dữ liệu động) và vùng nhớ cho mỗi tiểu trình bao gồm một ngăn xếp stack rất nhỏ (12KB) và một vùng heap. Do đó cần tránh dùng các biến cục bộ chiếm nhiều bộ nhớ, có thể làm tràn stack, nên đưa các biến này vào heap bằng phương thức new hay dùng User::Alloc(). Vùng heap mặc định của riêng từng tiểu tình là không thể chia sẻ, các tiểu trình có thể dùng heap chung của tiến trình cha. Vùng heap chung toàn cục có thể được sử dụng bởi nhiều tiến trình khác nhau nhưng ít khi sử dụng. 46 KH OA C NT T – Đ H KH TN H2.10 Vùng nhớ cho các tiến trình - Vùng đĩa RAM, được ánh xạ với ổ C, chỉ được truy cập thông qua file server. Ở đây, một trang 4 KB được chia nhỏ ra thành các vùng nhỏ hơn gọi là sector có kích thước 512 byte, phù hợp hơn cho các file có dung lượng nhỏ. - Các DLL nạp từ các bộ nhớ khác ROM. Sau khi nạp, vùng nhớ này của DLL được đánh dấu là vùng nhớ chỉ đọc. Bởi vì DLL trong hệ điều hành Symbian được quy định chỉ hỗ trợ mã chương trình và dữ liệu chỉ đọc. Đây là một trong những đặc điểm của Symbian để phù hợp với bộ nhớ giới hạn. Ví dụ: hiện nay bộ nhớ RAM vào khoảng 8MB-16MB, thử tưởng tượng chúng ta có 20 ứng dụng chạy đồng thời, và 10 server chạy dưới các ứng dụng này, và mỗi ứng dụng hay server sử dụng khoảng 60 trong tổng số 100 DLL có trong hệ điều hành Symbian 7.0, mỗi DLL chỉ cần một byte cho dữ liệu động (nhưng phải cấp hẳn 1 trang 4KB cho nó) thì ta có tổng cộng 4KB*(20 tiến trình ứng dụng + 10 tiến trình server)*60 DLL = 7MB, chỉ cho dữ liệu động. Trên PC thì 7MB không là gì nhưng đối với trên RAM 16MB thì đây là vấn đề rất đáng quan tâm. Để giải quyết vấn đề cần dữ liệu động cho DLL, hệ điều hành Symbian cung cấp từ nhớ TLS (Thread-local storage) như là 47 KH OA C NT T – Đ H KH TN một phần nối thêm cho dữ liệu động của các DLL. Lúc này, với ví dụ trên khi dùng TLS chỉ cần 1.8 KB. - Vùng nhớ cho các bảng dịch địa chỉ cho MMU: MMU được thiết kế cẩn thận để tối ưu hóa kích thước cho các bảng này. - Danh sách các trang trống chưa cấp. Do không có vùng nhớ ảo bằng cách thay thế trang trên đĩa cứng như trên PC nên tất cả các trang cần để phải lấy từ danh sách các trang trống. Khi không còn trang trống nào mà lại có yêu cầu về bộ nhớ thì lỗi tràn bộ nhớ hoặc đĩa đầy sẽ xuất hiện. 2.6 Quản lý nguồn năng lượng Do đời sống pin dùng cho điện thoại Symbian khá ngắn nên hệ điều hành Symbian được xây dựng để làm việc hiệu quả trên thiết bị có tốc độ và nguồn năng lượng thấp. Khi không được sử dụng, phần lớn hệ thống sẽ được tắt. Bởi vì các thành phần phần cứng quản lý nguồn năng lượng riêng, khi không cần hoạt động chúng được đưa vào trạng thái tắt. Ví dụ, bộ điều phối nhân sẽ tắt CPU nếu tất cả các tiểu trình đều ở trạng thái chờ sự kiện. Khi có cuộc gọi hay tin nhắn đến, hệ thống sẽ được hoạt động trở lại. Đặc biệt, khi tất cả các nguồn năng lượng bị mất đột ngột, hệ thống vẫn lưu những thông tin cần để sau này chỉ cần khởi động nóng thay vì khởi động nguội do hệ thống đều lưu sau mỗi bước thực hiện. 2.7 Quản lý thời gian Nhân cung cấp một ngắt thời gian ứng với 64Hz trên CPU ARM và 10Hz cho giả lập trên PC. Ngắt này được dùng để điều khiển bộ điều phối tiến trình với thuật toán điều phối Round Rubin. Ngắt thời gian sẽ ngừng hoạt động khi máy tắt. Ví dụ, khi muốn thực thi một chỉ thị sau 5 giây nhưng mới được 2 giây trôi qua, ta tắt máy, thì khi máy mở trở lại, sau 3 giây nữa chỉ thị mới được thi hành. 48 KH OA C NT T – Đ H KH TN 2.8 An toàn hệ thống Bảo mật trên hệ điều hành Symbian cho phép bảo vệ, xác nhận sự toàn vẹn của dữ liệu và tăng cường cơ chế cài đặt an toàn. Nó cung cấp các API cho các thuật toán mã hóa chuẩn, phát sinh khóa băm (hash key), phát sinh số ngẫu nhiên và quản lý xác nhận. Kiến trúc bảo mật nền tảng của hệ điều hành Symbian gồm 2 thành phần: • Quản lý xác nhận (Certificate management-certman). • Mã hóa (Cryptography-cryptalg). Đồng thời những phần này tổ chức hoạt động một số thành phần cơ bản khác cấp cao hơn: • Thanh điều khiển quản lý xác nhận (certman control panel): giao tiếp với trình quản lý xác nhận cho phép điều khiển các xác nhận gốc. • Cài đặt phần mềm (software install): thẩm định quyền (authentification) hay chữ ký điện tử (digital signature) • Truyền thông an toàn (secure comms): các chức năng SSL/TLS, WTLS, IPSec,... Hình vẽ H2.11 sẽ cho thấy rõ hơn kiến trúc bảo mật trong Symbian - PKIXCert: DLL cài đặt phê chuẩn xác nhận (validation certificate). Nó cung cấp các giao tiếp chính để quản lý xác nhận. Nó cung cấp 2 lớp chính : CPKIXCertChain (thực thi việc phê chuẩn xác nhận) và CPKIXValidationResult (đóng gói kết quả của hoạt động phê chuẩn). - X500 và X509: đại diện dữ liệu mà PKIXCert thao tác, đây là các đầu vào cho việc phê chuẩn xác nhận. Cấu trúc của chúng được định nghĩa trong ASN.1 (Abstract Syntax Notation 1). - Certstore: DLL (certstore.dll) chứa các xác nhận gốc. Đây là những xác nhận được sử dụng trực tiếp bởi người dùng và được dùng để hoàn tất các chuỗi xác nhận, được định nghĩa qua 2 lớp CCertStore (cung cấp giao tiếp) và CCertStoreEntry (cung cấp thông tin ứng dụng xác nhận). DLL được lưu trữ trên ROM. 49 KH OA C NT T – Đ H KH TN - Crypto: DLL (crypto.dll) cung cấp các giao tiếp chung cho quản lý xác nhận. Nó cài đặt các đặc tả xác nhận cho X509 hay WTLS. Nó cũng giúp phân tách giao tiếp giữa quản lý xác nhận và các thuật toán mã hóa. H2.11 Kiến trúc bảo mật 50 KH OA C NT T – Đ H KH TN PHẦN 2 PHÁT TRIỂN ỨNG DỤNG ĐỒ HỌA CHO HỆ ĐIỀU HÀNH SYMBIAN 51 KH OA C NT T – Đ H KH TN CHƯƠNG 3 CÔNG CỤ VÀ MÔI TRƯỜNG PHÁT TRIỂN ỨNG DỤNG Chọn thiết bị Ngôn ngữ lập trình Chọn điện thoại Điện thoại thông minh Symbian với bản phím số Điện thoại Symbian giao tiếp bằng bút qua màn hình cảm ứng Điện thoại Symbian có bàn phím QWERTY Nền hệ thống phần mềm và các bộ SDK tương ứng Hệ thống giao tiếp người dùng Nền hệ thống Series 60 UIQ Nokia 9200 Series và Series 80 Series 90 Bộ công cụ phát triển Symbian SDK Symbian SDK Các bộ SDK Công cụ phát triển ứng dụng Công cụ tạo dự án ứng dụng mới Công cụ biên dịch Môi trường phát triển tích hợp MS Visual C++ 6.0 Borland C++ Builder 6.0 Nokia Edition và C++ BuilderX Metrowerks CodeWarrior 52 KH OA C NT T – Đ H KH TN 3.1 Chọn thiết bị Các điện thoại Symbian được tạo ra cho các mục đích sử dụng khác nhau nên có cơ chế nhập và các đặc điểm hình dạng cũng khác nhau. Với điện thoại màn hình nhỏ và một bản phím số theo mô hình thiết kế Pearl, mục đích chính là phục vụ chức năng điện thoại. Với các điện thoại giao tiếp bằng bút qua màn hình cảm ứng theo mô hình Quartz, tìm kiếm là rất tiện lợi nhưng nhập dữ liệu thì khó khăn. Các điện thoại có bàn phím QWERTY theo mô hình Crystal thì rõ ràng là để dùng cho các chức năng nhập liệu lớn. Những khác biệt này đưa đến sự khác nhau về giao tiếp với người dùng, chúng được phát triển cho các thị trường riêng. Để đáp ứng sự khác biệt này, hệ điều hành Symbian chỉ cung cấp các dịch vụ và khung ứng dụng lõi, còn các phần liên quan đến hệ thống giao tiếp người dùng và giao diện thì do các nhà sản xuất đảm nhận. Sự kết hợp của Symbian bên dưới và hệ thống giao diện GUI bên trên khác nhau tạo thành các nền hệ thống khác nhau. Vì vậy không phải một ứng dụng chạy tốt trên điện thoại này là có thể chạy được trên điện thoại khác. Do đó việc đầu tiên để phát triển ứng dụng trên Symbian là phải xem ứng dụng mình phát triển phù hợp trên dòng điện thoại nào và chọn đúng điện thoại mà mình cần. Nhưng trước hết chúng ta hãy xét đến các ngôn ngữ lập trình mà Symbian hỗ trợ, một công việc không kém phần quan trọng. 3.1.1 Ngôn ngữ lập trình Có thể lập trình trên Symbian bằng các ngôn ngữ sau: • C++: Symbian được viết bằng C++, nên đây được xem là ngôn ngữ lập trình chính, thư viện hỗ trợ nhiều nhất, có thể lập trình các server hay điều khiển thiết bị. Đề tài này cũng được nghiên cứu để phát triển ứng dụng trên Symbian bằng C++. • Java: PersonalJava và JavaPhone được hỗ trợ trên Symbian 6.0, 6.1 nhưng không còn được hỗ trợ trên Symbian 7.0. Trên Symbian 7.0 sử dụng J2ME, cụ thể là MIDP (Mobile Information Device Profile), cung cấp các Java API cho lập trình Java, nó chạy trên CLDC (Connected Limited Device Configuration) và sử dụng KVM (Kilobyte Virtual Machine), một máy ảo Java cho các thiết bị nhỏ. Phiên bản hiện tại là MIDP 2.0. 53 KH OA C NT T – Đ H KH TN • Asembler: thường được sử dụng để xây dựng các chương trình cấp rất thấp chẳng hạn bộ điều phối active scheduler, thường không hỗ trợ cho lập trình viên tự do. • C: không còn được sử dụng để viết chương trình trên Symbian nhưng Symbian vẫn hỗ trợ để chuyển đổi các ứng dụng trước kia viết bằng C để có thể chạy trên hệ điều hành Symbian. • OPL: là ngôn ngữ tựa Basic, hiện nay trên Symbian 7.0 không còn hỗ trợ nữa. Muốn sử dụng các ứng dụng viết bằng OPL trên Symbian 7.0 và các phiên bản về sau phải sử dụng một chương trình nền gọi là Booster. • Các ngôn ngữ hỗ trợ lập trình Web hay theo các giao thức không dây như JavaScript hay WMLScript. Đối với các lập trình viên tự do, chủ yếu họ sử dụng C++ hay Java để phát triển ứng dụng trên Symbian và thường các điện thoại cũng chỉ hỗ trợ cho họ 2 ngôn ngữ này. 3.1.2 Chọn điện thoại Hiện trên thị trường đã có rất nhiều loại điện thoại Symbian, phổ biến nhất vẫn là các điện thoại có giao diện truyền thống của điện thoại di động với bản phím số theo mô hình Pearl. Có hai điểm lưu ý trước khi chọn điện thoại để phát triển ứng dụng: - Ngôn ngữ: Không phải điện thoại Symbian nào cũng hỗ trợ đủ 2 ngôn ngữ là C++ và Java, nhất là các điện thoại phát triển trên thị trường Nhật thường chỉ hỗ trợ Java. - Hệ điều hành: Các điện thoại sử dụng các phiên bản hệ điều hành khác nhau, không phải cứ phát triển sau thì nhất định sẽ sử dụng hệ điều hành phiên bản mới hơn. Ví dụ Siemens SX1 vừa phát hành nhưng lại dùng hệ điều hành phiên bản 6.1 thay vì 7.0 hay 7.0s. Phải nắm rõ đặc điểm này mới tránh được những lỗi do thiếu hỗ trợ từ các phiên bản trước gây ra. 54 KH OA C NT T – Đ H KH TN Hiện thời các điện thoại vẫn được thiết kế theo các mô hình tham khảo của Symbian: • Điện thoại thông minh Symbian với bản phím số (keypad): Dựa trên thiết kế của các điện thoại di động thông thường theo mô hình Pearl, nhập liệu qua bản phím số. Dòng này chiếm số lượng lớn nhất trên thị trường. Các lập trình viên có thể phát triển ứng dụng cho các điện thoại thông minh dạng này dùng hệ điều hành Symbian trên nền hệ thống Series 60 do Nokia phát triển hỗ trợ đầy đủ C++ và Java: Nokia 7650 , 3650/3600, 3660/3620, N-Gage, 6600, 7610, 6620 hay Panasonic X700, Samsung SGH-D710, Siemens SX1, Sendo X. Ngoài ra còn có các điện thoại không thuộc Series 60 chỉ hỗ trợ Java như FOMA F900i, FOMA F2102V, FOMA F2051 của Fujitsu cho thị trường Nhật trong mạng NTT Docomo. Nokia 7650 Symbian OS v6.1 Series 60 1.0 Nokia 3650/3600 Symbian OS v6.1 Series 60 1.0 Nokia N-Gage Symbian OS v6.1 Series 60 1.0 Nokia 3660/3620 Symbian OS v6.1 Series 60 1.0 Nokia 6600 Symbian OS v7.0 Series 60 2.0 Nokia 7610 Symbian OS v7.0 Series 60 2.0 Nokia 6620 Symbian OS v7.0 Series 60 2.0 55 KH OA C NT T – Đ H KH TN Siemens SX1 Symbian OS v6.1 Series 60 1.0 Samsung SGH-D710 Symbian OS v7.0 Series 60 2.0 Panasonic X700 Symbian OS v7.0 Series 60 2.0 Sendo X Symbian OS v6.1 Series 60 1.0 FOMA F900i Symbian OS v6.1 FOMA 2051 Symbian OS v6.1 FOMA F2102V Symbian OS v6.1 H3.1 Các điện thoại Symbian dùng bản phím số • Điện thoại Symbian giao tiếp bằng bút qua màn hình cảm ứng: Được thiết kế theo mô hình Quartz. Các điện thoại này phục vụ chủ yếu cho lấy dữ liệu hơn là nhập dữ liệu. Tuy vậy việc nhập liệu có thể thực hiện thông qua nhận dạng chữ viết tay hoặc bàn phím ảo. Đây là dòng đặc thù chỉ do một số ít nhà sản xuất cung cấp như Sony Ericsson, Motorola, BenQ hay Arima sử dụng nền hệ thống UIQ như Sony Ericsson P800, P900, BenQ P30, Motorola A920, A925, A1000, Arima ASP805. Các điện thoại này có thể có cả bản phím số để phục vụ thuận tiện cho các chức năng điện thoại. 56 KH OA C NT T – Đ H KH TN Sony Ericsson P800 Symbian OS v7.0 UIQ 2.0 Sony Ericsson P900 Symbian OS v7.0 UIQ 2.1 BenQ P30 Symbian OS v7.0 UIQ 2.1 Motorola A920 Symbian OS v7.0 UIQ 2.0 Motorola A925 Symbian OS v7.0 UIQ 2.0 Motorola A1000 Symbian OS v7.0 UIQ 2.1 H3.2 Các điện thoại Symbian dùng màn hình cảm ứng • Điện thoại Symbian có bàn phím QWERTY: Được thiết kế theo mô hình Crystal. Ngoài ra các điện thoại dòng này còn có 4 phím chức năng CBA (Command Button Aray) nằm dọc theo cạnh màn hình bên phải. Hiện thời Nokia là nhà cung cấp duy nhất loại này với các điện thoại thuộc Nokia 9200 Series Communicator như Nokia 9210, 9210i, 9210c (cho thị trường Trung Quốc), 9290 sử dụng nền hệ thống Nokia 9200 Series. Một sản phẩm mới của Nokia là Nokia 9500 sử dụng nền hệ thống Nokia Series 80. 57 KH OA C NT T – Đ H KH TN Nokia 9210,9210i Symbian OS v6.0 Nokia 9200 Series Nokia 9210c Symbian OS v6.0 Nokia 9200 Series Nokia 9290 Symbian OS v6.0 Nokia 9200 Series Nokia 9500 Symbian OS v7.0 Series 80 H3.3 Các điện thoại Symbian có bàn phím QWERTY • Hiện nay Nokia đang phát triển một loại thiết bị WID mới cơ chế giao tiếp theo mô hình Crystal nhưng bề ngoài thì khác. Nó được phát triển dưới tên gọi là media device nhắm đến thị trường thiết bị giải trí. Các thiết bị này hoạt động trên nền hệ thống Series 90, giao tiếp qua màn hình cảm ứng. Thiết bị đầu tiên và duy nhất là điện thoại Nokia 7700. Tuy Nokia đã hoãn phát hành Nokia 7700 nhưng dòng thiết bị này vẫn đang rất được quan tâm. H3.4 Nokia 7700 Ghi chú: các điện thoại in đậm là đã có tại Việt Nam. 58 KH OA C NT T – Đ H KH TN 3.2 Nền hệ thống và các bộ SDK tương ứng Mỗi dòng điện thoại theo các mô hình thiết kế tham khảo sẽ chạy trên các nền hệ thống khác nhau dựa trên hệ điều hành Symbian phù hợp với các hướng giao tiếp người dùng khác nhau. Các nền hệ thống sử dụng chung nhân, chức năng truyền thông, quản trị cơ sở dữ liệu và các chức năng đồ họa độc lập thiết bị được cung cấp bởi hệ điều hành Symbian. Phần chung giữa các nền hệ thống này thường chiếm 80%. 20% còn lại được thiết kế phù hợp với giao tiếp phần cứng theo thiết kế của mô hình tham khảo và phần thiết kế riêng của từng nhà sản xuất. Và do đó các dòng điện thoại này cũng được cung cấp các bộ công cụ phát triển SDK khác nhau. Vì vậy các lập trình viên phải chọn đúng bộ SDK cho điện thoại Symbian mà họ đã chọn ở trên. Nhưng trước tiên chúng ta hãy xem xét phần giao diện người dùng. 3.2.1 Hệ thống giao diện người dùng (User Interface) Tuy phần liên quan giao diện người dùng, Symbian phó thác cho các nhà sản xuất, nhưng những phần giao diện cơ bản thì Symbian vẫn cung cấp, như Uikon. Sơ đồ sau sẽ thể hiện rõ hơn kiến trúc giao diện trong Symbian. H3.5 Kiến trúc giao diện người dùng trong Symbian Hai thành phần nòng cốt trong kiến trúc này là Uikon, cung cấp phần lõi giao diện, có trong mọi điện thoại Symbian và ProductUI, thư viện phát triển cho riêng từng điện thoại hay từng dòng điện thoại do nhà sản xuất cung cấp gọi chung là x- 59 KH OA C NT T – Đ H KH TN kon hay Portiko. Ví dụ Avkon cho dòng điện thoại theo mô hình Pearl, Qikon cho dòng Quartz hay Ckon cho dòng Crystal. Thư viện LAF (Product Look And Feel ) cài đặt các thuộc tính giao diện như màu, kích thước và các thành phần điều khiển dựa trên Uikon chung và Product UI đặc thù. Các thành phần này được đặt trên khung điều khiển giao diện (UI Control Framework) định nghĩa các khái niệm giao diện ở mức cơ bản (gọi là CONE), và kiến trúc ứng dụng (Application Architecture- APPARC) định nghĩa khung cấu trúc ứng dụng. Tóm lại mỗi điện thoại Symbian chạy trong nền hệ thống gồm hệ điều hành Symbian chạy bên dưới (gồm nhân, các dịch vụ cơ sở và phần giao tiếp chung Uikon) và hệ thống giao diện người dùng đồ họa GUI ở bên trên ( gồm ProductUI và LAF phù hợp cho riêng từng dòng điện thoại). Hiện thời có 5 hệ thống GUI khác nhau cho các dòng điện thoại Symbian: Series 60 cho điện thoại dòng Pearl, Nokia 9200 Series và Series 80 cho điện thoại dòng Crystal, UIQ cho điện thoại dòng Quartz và Series 90 cho điện thoại media thế hệ mới. Cấu trúc Series 90 tương tự như Seris 80 và Nokia 9200 Series nhưng có những bổ sung phù hợp hơn cho khả năng nhập liệu bằng bút qua màn hình cảm ứng và các chức năng liên quan multimedia. 3.2.2 Nền hệ thống (platform) Hiện thời có 5 hệ thống GUI khác nhau được xây dựng cho 3 dòng điện thoại Symbian truyền thống và dòng điện thoại media mới. Sự khác nhau giữa các hệ thống GUI tạo sự khác nhau giữa các nền hệ thống trong các dòng điện thoại. Do đó tên của các hệ thống GUI được dùng để gọi chung cho cả nền hệ thống. Series 60 Nokia phát triển Series 60 cho dòng điện thoại theo mô hình Pearl với bản phím số và độ phân giải màn hình 176x208 pixel. Ứng với nền hệ thống Series 60, Nokia cung cấp 2 phiên bản nền hệ thống tương thích với 2 phiên bản hệ điều hành Symbian 6.1 và 7.0: Series 60 v1.2 và Series 60 v2.0. 60 KH OA C NT T – Đ H KH TN UIQ Nền hệ thống UIQ dựa trên hệ điều hành Symbian được phát triển cho dòng điện thoại theo mô hình Quazt dùng màn hình cảm ứng có độ phân giải 208x320 pixel. Hiện có 2 phiên bản cho nền hệ thống UIQ là UIQ 2.0 và UIQ 2.1. Nokia 9200 Communicator Series và Series 80 Nokia cung cấp 9200 Communicator Series để phục vụ cho các điện thoại Symbian 92xx communicator theo mô hình Crystal như 9210, 9210i,9210c, 9290 có bàn phím đầy đủ với màn hình lớn có độ phân giải 640x200 pixel. Phiên bản hiện tại là 1.2 dựa trên hệ điều hành Symbian 6.0. Nokia cung cấp Series 80 dựa trên Nokia 9200 Series nhưng dùng phiên bản hệ điều hành Symbian 7.0. Nokia 9500 là điện thoại Symbian chạy trên nền hệ thống Series 80. Series 90 Nokia cung cấp Series 90 cho dòng điện thoại với màn hình cảm ứng có 65536 màu với màn hình 640x320 pixel. Series 90 cũng được phát triển dựa trên Nokia 9200 Series. Ngoài hỗ trợ cho phát triển C++, Series 90 hỗ trợ rất mạnh cho phát triển Java với Java™ 2 platform, Micro Edition (J2ME™) with MIDP 2.0, CLDC1.0, Wireless Messaging API, Mobile Media API và Java™ APIs cho Bluetooth. Phiên bản hiện tại là Series 90 1.0. 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. 61 KH OA C NT T – Đ H KH TN - 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 . 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). 62 KH OA C NT T – Đ H KH TN + 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. 63 KH OA C NT T – Đ H KH TN 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, 64 KH OA C NT T – Đ H KH TN 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

Các file đính kèm theo tài liệu này:

  • pdfUnlock-0012153.pdf
Tài liệu liên quan