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...
190 trang |
Chia sẻ: hunglv | Lượt xem: 1241 | Lượt tải: 1
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:
- Unlock-0012153.pdf