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) hiện nay được biết đến nhiều dưới dạng điện thoại thông minh (Smartphone). Các thiết bị 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 các 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 di động 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. Ở Việt Nam, số lượng thiết bị di động ngày càng tăng đặc biệt là các loại điện thoại di động đa chức năng. Nhiều người đã coi điện thoại di động như một vật không thể thiếu trong công việc, cuộc sống hàng ngày. 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, em đã thực hiện đề tài : “Tìm hiểu lập trình trên Mobile và xây dựng ứng dụng trên Hệ điều hành Symbian”. Từ đó xây dựng một ứng dụng nhỏ để minh hoạ, từ điển Anh – Viêt, Việt – Anh. Đề 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 và cài đặt chương trình ứng dụng trên thiết bị.
Trang 1MỤC LỤC
TỔNG QUAN VỀ HỆ ĐIỀU HÀNH SYMBIAN 2
KIẾN TRÚC HỆ THỐNG CỦA HỆ ĐIỀU HÀNH SYMBIAN 9
LẬP TRÌNH JAVA TRÊN HỆ ĐIỀU HÀNH SYMBIAN 31
XÂY DỰNG ỨNG DỤNG 49
LỜI NÓI ĐẦU
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) hiện nay được biết đến nhiều dưới dạng điện thoại thông minh (Smartphone) Các thiết bị 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 các 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 di động 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
Ở Việt Nam, số lượng thiết bị di động ngày càng tăng đặc biệt là các loại điện thoại di động đa chức năng Nhiều người đã coi điện thoại di động như một vật không thể thiếu trong công việc, cuộc sống hàng ngày
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, em đã thực hiện đề tài : “Tìm hiểu lập trình trên Mobile và xây dựng ứng dụng trên Hệ điều hành Symbian” Từ đó xây dựng một ứng dụng nhỏ để minh hoạ, từ điển Anh – Viêt, Việt – Anh
Đề 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 và cài đặt chương trình ứng dụng trên thiết bị
Trang 2CHƯƠNG 1
TỔNG QUAN VỀ HỆ ĐIỀU HÀNH SYMBIAN
1.1 CÁC HỆ ĐIỀU HÀNH DÀNH CHO THIẾT BỊ DI ĐỘNG
1.1.1 Hệ điều hành Window Compact Edition (Win CE)
Được phát triển bởi Microsoft và hỗ trợ các công cụ để chuyển các ứng dụngWindows 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ủaWinCE là nó tạo sự quen thuộc cho người dùng thiết bị WID vốn quen dùng ứng dụngWindows 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ìnhviê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ấtnhư Casio, Siemens, Compaq và gần đây là Motorola
1.1.2 Hệ điều hành Palm
Được phát triển bởi 3 Com Palm Computing, vốn được thiết kế cho máy PDA
và 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ềuhành khác là nhân hệ điều hành được tối ưu hoá cho các thiết kế phần cứng riêng chomá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
1.1.3 Hệ điều hành Linux
Tynux là một bản Linux khác được cung cấp bởi PalmPalm dùng trong điệnthoạ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ấpmộ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ướcrất nhỏ, chỉ khoảng 1MB với phần nhân khoảng 100KB
1.1.4 Hệ điều hành Symbian
Symbian được xây dựng riêng cho các thiết bị WID từ hệ điều hành EPOC vốncủ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
Trang 3với khả năng module hoá 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 nhưNokia, Sony Ericsson, Samsung, Panasonic, LG
Từ năm 1991 đến năm 1998, Psion xuất bản hệ điều hành EPOC 16 đưa vào sửdụng trên các máy thế hệ 3, Psion 3, một trong những PDA đầu tiên thay thế các loại
sổ tay, lịch giấy lúc đó và được biết đến với tên gọi SIBO
Năm 1998, Công ty Symbian được thành lập bởi các tập đoàn Nokia, Motorola,Ericsson, Psion nhằm tập trung phát triển các PDA và điện thoại di động thông minh
Năm 1999, EPOC Release 5 được dùng trong các điện thoại Revo, EricssonMC218, Ericsson 380
Năm 2000, phông Unicode được tích hợp vào Ericsson R380 trên nền EPOCR5 Sau đó, EPOC R6 ra đời và đựơc đổi tên thành Symbian v6.0, v6.1 và điện thoạiđầu tiên được cài vào đó hệ điều hành Symbian là Nokia 9210
Năm 2003, Symbian giới thiệu phiên bản Symbian OS v7.0 và v7.0s
Năm 2004, virus điện thoại lần đầu tiên tấn công Symbian OS có tên gọi Cabir
và cũng trong năm này Psion bán cổ phần của mình cho Nokia Phiên bản Symbianv9.0 ra đời nhưng chỉ dùng để thử nghiệm nội bộ
Năm 2005, Symbian OS phiên bản mới nhất v9.1 được công bố Phiên bản nàyđược cải tiến nhiều về các ứng dụng và nội dung, cơ chế bảo vệ tốt hơn tất cả cácphiên bản trước
Tháng 3 năm 2006, Symbian OS phiên bản v9.2 được công bố Hiện tạiSymbian là hãng dẫn đầu với 60% thị phần phần mềm điện thoại thông minh
1.3 CÁC ĐẶC TÍNH CỦA SYMBIAN
1.3.1 Tính bảo mật
Bảo mật trên 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ã hoá
Trang 4-Cài đặt phần mềm (Software install)
-Truyền thông an toàn (Secure comms).
1.3.2 Tính mở của Symbian
Phần lớn các source code đều được cung cấp cho các nhà sản xuất điện thoại sửdụng Symbian OS và một số partner khác trong việc phát triển ứng dụng trênSymbian
Các hàm APIs được công bố rộng rãi để bất cứ ai cũng có thể phát triển phầnmềm cho Symbian so với MobiLinux trong những năm tới
1.4 MỘT SỐ THÀNH PHẦN CỨNG CHÍNH CỦA ĐIỆN THOẠI CÓ HỆ ĐIỀU
HÀNH SYMBIAN
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
+ Bộ xử lý trung tâm (Center Processing Unit – CPU): Hệ điều hành Symbian
được thiết kế cho kiến trúc 32 bit CPU, chạy ở tốc độ thấp hơn so với CPU trên máytính để bàn và trên Server Các hệ thống Symbian hiện tại sử dụng 104Mhz, 122Mhz
và 220 Mhz Strong ARM CPU, với các loại CPU ARM7 và ARM9 Các điện thoạiSymbian tương lai có thể chạy trên các CPU nhanh hơn
+ Bộ nhớ trong (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 khitạo thiết bị Điều này hoàn toàn khác với trên PC, nếu mà ROM chỉ chứa các phần nạpban đầ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ênROM 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ườngkhoả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
Trang 5Dữ liệu trên RAM được phục hồi lại nếu khởi động nóng, trừ phi bị lỗi khi đang khôiphụ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 thiết bị, 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ạiSymbian 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ạiSymbian và các thiết bị khác như PC, Laptop, Palm PDA
- 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ộtthiế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êncá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ênSymbian Ngoài ra với nguồn năng lượng hạn hẹp, Symbian phải được thiết kế đặcbiệt, có thể chạy ổn định ngay cả khi đang sạc pin hay thay pin
1.5 CÁC MÔ HÌNH THIẾT BỊ VÀ CÁC NỀN HỆ THỐNG SỬ DỤNG HĐH
SYMBIAN
1.5.1 Các mô hình thiết bị dùng 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 Điểm độc đáo của Symbian là cung cấp một hệ điềuhành hỗ trợ cho nhiều dòng thiết bị khác nhau vừa đáp ứng được sự sáng tạo riêng củacác nhà sản xuất vừa phục vụ được nhiều mục đích sử dụng khác nhau của ngườidùng Mô hình Communicator theo kiểu dáng máy PDA phục vụ cho khả năng tìmkiếm qua màn hình cảm ứng hay mô hình Commnicator Crystal có dáng dấp mộtlaptop phù hợp cho các chức năng nhập dữ liệu Smartphone có kiểu dáng giống điệnthoại di động với bàn phím số phục vụ cho những khách hàng vốn trung thành vớimobile truyền thống Symbian hỗ trợ 3 mô hình cho hai loại sản phẩm chến lược này:
mô hình Crystal, Quartz cho Communicator và Pearl cho Smartphone
- Mô hình Crystal : một loại communicator bỏ túi với hình dáng một máy
laptop Crystal sử dụng màn hình màu theo chuẩn ½ VGA và bàn phím QWERTY, có
Trang 6Hình 1.1: Máy Nokia 9210
- Mô hình Quartz: 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/4VGA, dùng bút stylus nhập dữ liệuqua tương tác với một màn hình cảm ứng Sản phẩm đầu tiên của mô hình Quartz làSony Ericsson P800
Hình 1.2: Thiết kế Quartz
Trang 7- Mô hình Pearl: 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 dữ liệu, và có thể hỗ trợ cả màn hình cảm ứng Sản phẩmđầu tiên của mô hình Pearl là Nokia 7650
Hình 1.3: Các điện thoại Symbian dùng bàn phím số
Hình 1.4: Các điện thoại Symbian dùng màn hình cảm ứng
1.5.2 Các nền hệ thống sử dụng HĐH Symbian
Trang 8SX1, SendoX,
-UIQ: (theo mô hình Communicator Quartz) có kích thước màn hình 208x320
pixel bao gồm: Sony Ericsson P800, P900, P910, BenQ P30, P31, Motorola A920,A925, A1000, ArimaASP805
-Series 80: (theo mô hình Communicator Crystal) có kích thước màn hình
480x320 pixel bao gồm: Nokia 9210, 9210i, 9300, 9500
-Series 90: đây là thế hệ lai giữa UIQ và Series 80 mà người ta gọi là media
phone với sản phẩm là Nokia 7710 (cải tiến từ sản phẩm trước đó là Nokia 7700)
-Mạng điện thoại NTT Docomo ở Nhật với các dòng máy Fujitsu như FOMA F900i,
FOMA F2102V, FOMA F2051 (chỉ hỗ trợ Java)
Các nền hệ thống này có sự khác biệt nên hầu hết các ứng dụng có giao diệnđều không thể chạy được trên cùng 2 dòng máy Tuy nhiên với những chương trìnhcấp thấp như các server (chương trình file exe) thì điều này là hoàn toàn có thể Khôngnhững vậy giữa những nhà sản xuất cũng tạo sự khác biệt riêng nên đôi khi ứng dụng
sẽ gặp trục trặc khi chạy trên các loại máy khác nhau dùng chung nền hệ thống Mộtđặc điểm nữa là các máy cùng nền hệ thống nhưng dùng phiên bản hệ điều hành khácnhau cũng sẽ có sự khác nhau
1.6 TƯƠNG LAI SYMBIAN
Mặc dù đang chiếm thị phần về OS cao nhất trong các Mobile OS (khoảng 70%), nhưng nhiều chuyên gia về Mobile trên thế giới cho rằng thế mạnh nhất, thịphần mạnh nhất của Mobile OS sẽ thuộc về MobiLinux trong những năm tới
60-Hãng Symbian đã và đang đẩy mạnh những bước cải tiến nhằm tạo điều kiện thuận lợi tối đa cho người dùng về mặt công nghệ, chức năng cực mạnh như truy cập Wi-Fi, Camera, tăng cường khả năng phát triển ứng dụng, phần mềm bảo mật hệ thốngvới mục tiêu củng cố, giữ vững vị trí hàng đầu trên thị trường này
Trang 9CHƯƠNG II KIẾN TRÚC HỆ THỐNG CỦA HỆ ĐIỀU HÀNH SYMBIAN
2.1 KIẾN TRÚC TỔNG QUAN CỦA HỆ ĐIỀU HÀNH SYMBIAN
Symbian là một hệ thống kết hợp nhiều thành phần khác nhau mà có thể ứngdụng cho nhiều dạng thiết kế khác.Những thành phần tạo nên hệ điều hành Symbian:
- Trung tâm của hệ điều hành Symbian được gọi là kernel hay còn gọi là nhân của hệđiều hành
- Bộ tổng hợp các phần trung gian cho việc điều hành gọi là midlleware
- Tập quản lý tài nguyên, gọi là application engines
- Khung làm việc cho việc thiết kế giao diện, User Interface Framework
- Các phương thức đồng bộ với các máy khác, Synchronization Technology
* Trung tâm của hệ điều hành Symbian được gọi là kernel hay còn gọi là
nhân của hệ điều hành Nó bao gồm:
Bộ tổng hợp các điều khiển thiết bị, các bảng dữ liệu, những chương trìnhcho phép người dùng làm việc với phần cứng máy tính Đây là phần trung tâm nhấtcủa Symbian, có trong tất cả thiết bị có hệ điều hành Symbian
Hệ điều hành Symbian là hệ điều hành dựa trên mô hình kernel Chỉ có mộtchương trình chạy và quản lý các dịch vụ cung cấp cho người dùng Chương trình này
và những dữ liệu của nó cần phải nhỏ và hiệu quả Chỉ có những thành phần điều hànhmáy tính cần thiết mới có trong kernel; những chức năng khác đều được đưa ra phầngiữa (middleware) hay ứng dụng Việc thiết kế này làm cho kernel rất chắc chắn vàlàm cho kiến trúc và việc điều hành của Symbian rất uyển chuyển
Symbian là một hệ điều hành 32 bit hỗ trợ làm việc đa nhiệm và đa tiến trình.Cấu trúc tháo lắp của nó hỗ trợ và khuyến khích một lượng lớn các thành phần giaotiếp và hỗ trợ khả năng thêm thành phần giao tiếp trung tâm để thích nghi với các thiết
bị và phương thức mới
* Một bộ tổng hợp các phần trung gian cho việc điều hành, gọi là midlleware.Thành ngữ middleware chỉ những thành phần như thư viện, kho dữ liệu vàchương trình thực hiện dịch vụ hệ thống nhưng không cần nằm trong kernel TrongSymbian nó bao gồm việc thực hiện những dịch vụ như quản lý dữ liệu, giao tiếp, đồhoạ Symbian sử dụng server để thực hiện cộng việc trong middleware Ý tưởng làdùng một máy chủ có thể quản lý một dịch vụ riêng biệt bằng cách chấp nhận yêu cầu
Trang 10Những ứng dụng cấp người dùng trên Symbian cũng có lợi ích từ việc phối hợp
mà middleware cung cấp Việc phối hợp truy cập nguồn tài nguyên không thuộc vềbản chất được thực hiện thông qua application engines Nó định ra những điểm truycập đơn lẻ cho những ứng dụng cấp người dùng khi họ truy cập tài nguyên
Giống như middleware, application engines cũng làm một dạng như server Điểm khác biệt đến từ khu vực quản lý Application engines quản lý dịch vụ và dữ liệuứng dụng, không phải dịch vụ và dữ liệu hướng hệ thống Sự thật là giống như
application engines sẽ tương tác chính nó với máy chủ ở middleware
Application engines bao gồm trong Symbian là:
-The Agenda engine
- The Contacts engine
- The Sheet engine
- The Alarm server and World Time engine
- The Spell engine
- The Help engine
* Một khung làm việc cho việc thiết kế giao diện, User Interface Framework
Từ khi những máy tính sử dụng Symbian là những thiết bị xách tay nhỏ hướngđến người dùng, giao diện càng trở nên quan trọng Nó quan trọng vì giao diện dễ sửdụng, dễ thay đổi, dễ lập trình Hơn nữa, có những thiết bị thiết kế chạy Symbian , do
đó giao diện phải được chuyển đổi Do đó, những người thiết kế Symbian đã chọnkhung làm việc, xây dựng giao diện như một phần của trung tâm hệ điều hành
Bằng cách chọn một khung giao diện đồ họa hơn là một giao diện cụ thể, nhữngngười thiết kế đã đặt nền tảng cho nhiều giao diện khác có thể được xây dựng Trongphiên bản hiện hành của Symbian, có hai giao diện được xây dựng trên khung giaodiện đồ họa Những giao diện này sử dụng thành phần GUI phổ biến, như các điềukhiển và hội thoại
Hiện tại, những thành phần GUI chính là Uikon và Standard Eikon Thư việnchính của Uikon bao gồm thành phần phổ biến rộng rãi Standard Eikon bao gồmnhững mã bắt đầu cho những đoạn chương trình xảy ra trong thiết kế, nhưng nhữnghàm cụ thể phải được thêm vào Ý nghĩa của cấu trúc này là cho phép thêm nhữngđiều khiển như thay đổi giao diện mà không cần làm ảnh hưởng đến các điều khiểnriêng
Trang 11* Các phương thức cho việc đồng bộ với các máy khác, SynchronizationTechnology
Symbian cũng bao gồm việc đồng bộ dữ liệu với những máy khác Công nghệnày là chủ đề của việc kết hợp rộng rãi, phát triển chuẩn và Symbian đã tích hợpnhững điều này vào hệ điều hành Symbian Trên hệ điều hành Symbian, việc đồng bộđược thực hiện ở 3 phần:
- Bộ quản lý kết nối (Connection Manager) là một tiến trình khởi tạo chạy trênthiết bị Symbian và dò tìm khi có một máy khác muốn kết nối
Nó bắt đầu kết nối đồng bộ khi một thiết bị được tìm thấy
- Những máy chủ kết nối (Connectivity Servers) thực hiện nhiều chức năng của việcđồng bộ như: duyệt tập tin đơn giản, đồng bộ tập tin, sao lưu và phục hồi dữ liệu
- Bộ chuyển đổi tập tin (File Converters) chuyển dữ liệu giữa những dạng đặc biệt vànhững ứng dụng Những bộ kết nối này thì khá nhỏ trong việc kết nối của Symbian;hầu hết những chuyển đổi xảy ra trong lúc kết nối Tuy nhiên, bộ kết nối sẽ chuyểndạng văn bản sang HTML và một vài ứng dụng văn phòng của Symbian sang bảntương ứng của nó trên Windows
Cài đặt máy ảo Java nhưng chỉ đơn thuần để cho các ứng dụng Java có thể cài đặt
và chạy được Tầng này bao gồm JVM - máy ảo Java, CL được, và MIDP Hệ điềuhành Symbian cung cấp một môi trường thực thi hàng đầu các ứng dụng Java, một môitrường được xây dựng tối ưu cho các thiết bị di động cũng như các ứng dụng trên cácthiết bị này
Chính vì thế mà HDH Symbian là 1 hệ điều hành tương thích với nhiều môhình khác nhau cũng như tương thích với nhiều thiết kế giao diện người dùng, như tronghình dưới đây :
Trang 12
không dây và ứng dụng chạy trên nó
Quả thật, đây là một hệ điều hành “thống trị” trong lĩnh vực DTDD vì cho đếnngày nay thì Symbian đã được phổ biến và cài đặt trên nhiều DTDD cao cấp của SonyEcrission, Nokia Nseri, Nokia N- Gage, Siemens SX1, Sendo X, Panasonic X700, NTTDoCoMo Fujisu 2102V… BenQ, Motorola, Panasonic, Samsung, Sendo and Siemenscũng đang dùng các giấy phép của HDH Symbian
Ngoài ra Symbian còn cung cấp mạng toàn cầu cho những nhà cung cấp công cụ
hổ trợ và trung tâm huấn luyện Symbian Competence Centers và Symbian TrainingCenters Điều này làm cho các tổ chức và người phát triển phần mềm khác có thể thamgia vào nền kinh tế mới này Thêm vào đó, việc Symbian tin tưởng vào cộng sự trong thịtrường DTDD và tham gia vào các tổ chức như Open Mobile Alliance và JavaCommunity Process, cộng với cái nhìn tốt về công nghệ trong tương lai giúp choHDH Symbian có chỗ đứng vững chắc, xâm nhập vào các hệ thống điện thoại khácnhau , trở thành HDH cho hầu hết các DTDĐ trên thị trường
2.2 KỸ THUẬT CHUNG ĐỂ PHÁT TRIỂN HỆ ĐIỀU HÀNH SYMBIAN
Hệ điều hành Symbian có rất nhiều thiết kế khác nhau Nhưng cho dù với thiết
kế nào thì cũng dùng chung hàm APIs cốt lõi và chung một công nghệ, đó chính làSymbian’s Generic Technology Symbian’s Generic Technology được thiết kế riêngcho các thiết bị truyền tin không dây nên nó phải đảm bảo những yêu cầu về việc sửdụng tài nguyên phải thật hiệu quả, đặc biệt là nguồn RAM và ROM, yêu cầu về việctruy cập tức thời đến dữ liệu của người dùng, tin cậy trong việc lưu trữ dữ liệu ngườidùng Nó phải thích ứng được với phần cứng của thiết bị, phải giao tiếp tốt, tích hợpđược với dữ liệu cá nhân, các ứng dụng trên thiết bị và dữ liệu trên thiết bị khác
Những thành phần của Symbian’s Generic Technology bao gồm có: Base,Framework, Communication, Messaging, Browsing, Connectivity và Java
Hình vẽ:
Trang 13Hình 2.2: Thành phần chính của GT ( Generic Technology )
2.2.1 Base
Base cung cấp hệ thống thời gian chạy nền tảng, các công cụ để xây dựng nó
và bảo mật ở mức độ thấp nhất
Hình 2.3: Thành phần của Base
Thành phần thứ nhất của Base là EPOC kernel EPOC kernel làm việc trên chế
độ độc quyền Nó chiếm hữu tài nguyên như driver ( thiết bị điều khiển thiết bị ), thựcthi việc quản lý nguồn, định vị bộ nhớ hệ thống cho nó và các tiến trình không có độcquyền Kiến trúc microkernel được sử dụng để cho hầu hết code trong hệ thống chạykhông độc quyền Còn EPOC runtime nguyên thuỷ chạy trên bộ sử lý có kiến trúcARM Có 3 giao diện ứng dụng nhị phân được dùng Đầu tiên là ARM4, có tốc độ tốtnhất và thích hợp cho ROMs trên các máy tốc độ cao Còn Thumb, hơi chậm hơnARM4, sử dụng tốt cho ROMs của máy rẻ tiền
Phần thứ hai có trong Base là thư viện người dùng (user library) Thư việnngười dùng hỗ trợ các dịch vụ cho tương ứng người dùng bao gồm:
- Tiến trình, tiểu trình, chương trình và quản lý bộ nhớ
- Báo lỗi và cleanup framework
- Chuỗi các ký tự và vùng đệm chứa dữ liệu nhị phân
Trang 14- Bảo mật bao gồm các thuật toán mã hoá chuẩn và quản lý bản quyền
Base cũng cung cấp các công cụ trên máy PC để hỗ trợ cho các phần mềm và
để phát triển các thiết bị như trong hình sau:
Trong đó, máy giả lập (emulator) là công cụ phát triển phần mềm chính, dùng
để tìm thấy và loại bỏ những sai sót trong chương trình trước khi giới thiệu sản phẩm,chạy dưới HĐH Window NT và 9x
2.2.2 Framework
Phần cốt lõi làm cho HĐH Symbian trở nên mạnh mẽ, đó là nhờ GT cóframework hỗ trợ rất đa dạng Framework bao gồm các hàm APIs cho middlewarescho quản lý dữ liệu, văn bản, clipboard, đồ hoạ, các tập tin nguồn, đa phương tiện,chuẩn hoá quốc tế, và các tiện ích của giao diện người dùng đồ hoạ Hình vẽ minh hoạ:
Phần thứ hai là đồ hoạ, bao gồm hỗ trợ đồ hoạ căn bản, văn bản và ảnh bitmaps trênnhững thiết bị tạo ảnh bitmap
Trang 15Về phần window server có chức năng chia sẻ màn hình, bàn phím và con chuộtgiữa các ứng dụng Còn Control Environment chia sẻ 1 cửa sổ ứng dụng giữa cácthành phần ứng dụng.
Trong khi đó Uikon and Standard Eikon cung cấp GUI components, bao gồmframework cho hộp thoại, các control cụ thể, môi trường GUI, phụ thuộc vào các thiết
kế phần mềm cụ thể
Mặt khác, Eikon server bao gồm giao diện người dùng mức hệ thống tức gồmcác báo động các sự kiện và thanh chỉ trạng thái Standard Eikon là điểm xuất phát choviệc chế tạo ra GUIs cho Quartz và Crystal
Ngoài ra, kiến trúc ứng dụng nhận biết các tập tin bằng UID và loại MIME, giảiphóng và điều khiển các ứng dụng và hỗ trợ các đối tượng kèm theo Còn vùng nhớClipboard hỗ trợ chuyển dữ liệu giữa các ứng dụng
Media server hỗ trợ âm thanh dạng WAV, AU, WVE và những dạng file thôkhác, hỗ trợ hình ảnh dưới dạng JPEG, BMP, MBM, GIF, WBMP và Nokia SmartMessaging ( định dạng hình ảnh )
Mặt khác, Framework của Symbian còn hỗ trợ cho văn bản ở cấp độ cao baogồm text content model and rendering, hỗ trợ định dạng đoạn văn bản và ký tự, đồ hoạkèm theo, những ký tự địa phương trên thế giới… Hỗ trợ phần in ấn, bao gồm đĩa càiđặt máy in cho từng loại máy in thật sự, và các máy tin từ PC nối tới qua SymbianConnect Luân luôn có sẵn chế độ xem trước khi in
Symbian cũng quan tâm đến chuẩn hoá quốc tế để hỗ trợ cho văn bản chuẩn vàfront-end processors (FEPs) cho văn bản được nhập vào bằng cách dùng định dạngchữ viết tay và bàn phím ( đối với các mã chữ Ả rập hay tiếng Hoa…)
Với những gì mà framework của Symbian hỗ trợ thì muốn cài đặt một ứngdụng phải bao gồm các thao tác như: giải nén gói thông tin, kiểm tra điều kiện, tháo gờcài đặt và quản lý chữ ký kĩ thuật số
2.2.3 Communications
Chính thành phần Conmmunications này đã làm kiến trúc GT của Symbian trởnên là sự lựa chọn cho các nhà sản xuất ĐTDĐ
Hình vẽ minh hoạ:
Trang 16Hình 2.5: Communications
Communications- cơ sở hạ tầng dựa trên 3 server cấp thấp:
o The serial comms server, cung cấp APIs cho clients và cung cấp sự thực thi cho ports, IR ports, modems…
o The sockets server, cung cấp sockets API cho clients và cài đặt như TCP/IP,SMS datagrams, IrDA…
o The telephony server, cung cấp telephony API cho clients và generic Hayes landline modem, và những dịch vụ GSM cơ bản
Mỗi server có 1 nhà cung cấp API vì thế những socket hay telephonyimplementations khác đều có thể đươc cung cấp Trong khi đó, wide-areacommunications hổ trợ:
o Networking: dial-up TCP/IP dùng PPP; bảo mật bằng TLS và SSL; ứng dụng bao gồm Telnet và FTP
o Telephony: GSM cho âm thanh, dữ liệu và fax, landline modems cho dữ liệu
và fax
o WAP stack to WAP 1.1 level: WSP, WTP; WTLS; WDP, UDP và SMS bearers supported
Còn Personal-area communications thì hổ trợ:
o IR: IrDA gồm IR tốc độ nhanh đến 4Mbps
o Bluetooth: dựa trên Bluetooth HCI (host controller interface), cung cấp stackcho 1.0 specifications và Generic Access Profile, Serial Port Profile, Headset Profile, Dialup Networking Profile (chỉ dành cho chế độ khởi động) serial: RS232
2.2.4 Messaging
Một phần quả là rất quan trọng đối với những ai dùng DTDD là chuyển thông điệp
Cho nên đây là phần không thể thiếu được trong GT của HDH Symbian
Symbian thiết kế cơ chế này như trong hình vẽ sau:
Trang 17Hình 2.6: Messaging
Theo Symbian, trao đổi thông điệp gồm thư điện tử qua mạng internet, tinnhắn GSM, SMS và fax Nhiều kiểu thông điệp khác nhau được hổ trợ bằng kiến trúcplug-in dựa trên MTMs
Ngoài ra, còn cung cấp cho ta hộp nhận thư và quản lý thư mục Hộp thưchứa thông điệp sẽ gửi thông điệp khi cần thiết
Còn IrOBEX object exchange được hổ trợ qua MTM
2.2.5 Browsing
Với HDH Symbian thì DTDD không đơn giản chỉ để gọi điện hay gửi thôngđiệp mà còn có thể lên mạng Dường như máy PC + fax modem + dây điện thọai đều trởthành quá lớn so với chiếc DTDD mặc dù nhỏ bé nhưng cũng đảm nhiệm cả chức năngnày của 3 thiết bị trên
Đó là do GT của Symbian hổ trợ cho WML và HTML browsers
Hình 2.7: Browsing
Trong đó, WAP 1.1 browser hổ trợ WML và WMLScript
Còn trình duyệt web (web browser) hổ trợ HTML 3.2 gồm frames, các Javaapplets kèm theo; caching, HTTPS, bookmark và danh sách các liên kết cũ.Rendering engine hổ trợ hiển thị MHTML Plug-in viewers được hổ trợ
2.2.6 Application Engines
Nối tiếp với những thành phần trên của kiến trúc GT trong HDH Symbian thìthành phần này cũng không kém phần quan trọng Nó cung cấp engines cho các ứngdụng chuẩn Symbian Trong đó, mỗi thiết kế cung cấp code UI của nó cho các ứng dụng
mà nó làm việc với
Trang 18Kế tiếp là The Agenda engine, có nhiệm vụ duy trì 1 kho dữ liệu của lịch trình
và chức năng nhớ các công việc cần làm Nó cũng được bảo vệ bởi 1 server
Còn spreadsheet engine hổ trợ nhiều worksheets, cách thức định giá và biểu đồ
Và spell checker (kiểm tra lỗi chính tả) gồm 1 từ điển 100,000-word và từ đồng nghĩa.Ngoài ra còn có Context-sensitive help luôn có sẵn, cùng với các công cụ công cộng
Nói chung có thể nói GT như là chứa kho dữ liệu thông tin về các thành phố vàcác nước trên thế giới
2.2.7 Java runtime
The Symbian platform cung cấp cài đặt đầy đủ của Java trong bộ J2ME, baogồm PersonalJava và bản cài đặt đầu tiên JavaPhone trên thiết bị không dây Bản cài đặtPersonalJava rất bao quát, gồm tất cả các đặc tính bắt buộc và tự chọn được định nghĩatrong Personal Java Application Environment 1.1 specification
Hình 2.9: Java Runtime
Được biết các hàm APIs chính của GT, như là telephony (điện thoại),contacts management (quản lý thông tin đồi tác), calendaring (lịch), datagrammessaging (chuyển thông điệp) và power monitoring được cung cấp rộng rãi trongJavaPhone APIs Và Symbian sẽ duy trì khả năng tương thích với các ứng dụng viếtcho các môi trường Java như là MID profile và the KVM
Trang 19Ngoài ra Unicode được hổ trợ qua host interface JVMDI cũng được hổ trợtrong kiến trúc này
Điều đáng lưu ý là bản cài đặt GT của Java được kiểm tra trên GUI Các thiết
kế, như Crystal và Quartz, chạy cài đặt AWT trên mỗi thiết kế, và bằng cách cung cấpcác lớp đặc trưng trong mỗi thiết kế nhằm hổ trơ cho GUI
2.2.8 Connectivity
Thành phần quan trọng cuối cùng phải kể đến trong kiến trúc của GT củaSymbian là Connectivity Thành phần này có mặt đáp ứng cho nhu cầu chuyển đổi dữliệu giữa những thiết bị dùng HDH Symbian - ở đây là DTDD và máy PC thông thường.Theo thiết kế của Symbian, Connectivity bao gồm EPOC-based và PC-basedcomponents:
Hình 2.10: Connectivity
Trong đó, thành phần của khung chương trình của máy EPOC gồm:
o Quản lý kết nối(connection manager) để bảo vệ và nối với máy PC đang chạySymbian connect
o Servers cho bản cài đặt dự phòng, lưu trữ và đồng bộ
o Bộ chuyển đổi giữa EPOC và các định dạng của Microsoft cho các tài liệu văn bản
o EPOC rich text cho HTML converter
o Printer driver cho phép in ấn từ đến 1 máy in nối với máy PC
Về phía PC, Symbian Connect cung cấp bản dự phòng và lưu trữ, nhiều chuyểnđổi định dạng tập tin, cài đặt ứng dụng và chức năng in ấn
2.3 Các hàm APIs của hệ điều hành Symbian
Mặc dù đã nén đủ để để đưa vào bộ nhớ của DTDD, HDH Symbian được thiết
kế bao gồm đầy đủ các chức năng của một hệ điều hành Nó cung cấp rất nhiều các tậplệnh API, hỗ trợ nhiều hàm trước đây không có trong các hệ điều hành cho DTDD trướcđây, được minh họa trong sơ đồ dưới đây:
Trang 20Hình 2.11: Các APIs mà hệ điều hành Symbian cung cấp
2.3.1 Trao đổi thông điệp
HDH Symbian cung cấp các tập hàm API trao đổi thông điệp mở rộng Nhữnghàm này cung cấp cho việc viết các ứng dụng tích hợp các hàm trao đổi thông điệp, màkhông cần can thiệp vào các API cấp thấp
Ví dụ: Các lập trình viên có thể: viết các ứng dụng gửi và nhận email,SMS messages và fax chỉ với số lượng code rất ít Truy cập vào dữ liệu Giao dịchtrong ứng dụng của ta, bằng cách sử dụng các API Contacts database Sử dụnghàm Global Find API để tìm kiếm đoạn text trong văn bản được lưu trữ trong điệnthoại
2.3.2 TCP/IP và sockets API
HDH Symbian còn cung cấp socket API để truy cập đến các giao thức mạng
Nó cho phép viết các ứng dụng nhận và gửi các dữ liệu xác định trên kết nối internet.Symbian OS còn cho phép các giao thức vận chuyển khác nhau được sử dụng chứkhông riêng gì TCP/IP, mà còn có SMS hay hồng ngoại (infrared) Sự lựa chọn giao thứcnào để sử dụng được thực hiện trong quá trình khởi tạo trong mã nguồn của ứng dụng,
và những đoạn code còn lại thì cùng sự lựa chọn đó mà không cần quan tâm
2.3.3 Communication API – các hàm về giao tiếp
Ngoài ra, HDH Symbian cung cấp phần mở rộng cho giao tiếp (communication)
ở tầng ứng dụng (Application) trong mô hình OSI như là trao đổi thông điệp(messaging và sockets APIs) Một vài các đặc tính cao hơn của mà các nhà phát triển
Trang 21tiện để khởi tạo, điều khiển và chấm dứt các cuộc gọi điện thoại
o Truyền các hình ảnh giữa máy camera kỹ thuật số và Symbian OS phonesqua hồng ngoại
o Quản lý cơ sở dữ liệu quan hệ
o Hoạch định, lên danh sách kế hoạch làm việc
o Tiến trình về văn bản
o In ấn và phóng đại
o Hổ trợ cho chuẩn vCard và vCalenda và giao thức IrOBEX
o Hổ trợ vùng đệm
o Các thư viện về chuỗi, mảng động và thư viện về phép toán
o Thư viện đồ họa và các hiệu ứng hoạt họa
o Server đa phương tiện, hổ trợ thu âm thanh và phát âm, chức năng hìnhảnh
o Hổ trợ Unicode và chuẩn hóa quốc tế
2.4 TIẾN TRÌNH VÀ TIỂU TRÌNH TRONG SYMBIAN
2.4.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ầnbảo vệ trong Symbian Mỗi tiến trình có một không gian địa chỉ riêng Địa chỉ ảo củachươ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ácchươ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 trên các chương trình trên ROM là có thể được dùng chung (2 ứng dụng sử dụngmộ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
Trang 22Trong 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ốngtrong 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ó đó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ìnhnull 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 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.4.4 Quản lý vào điều phối tiến trình
Việc quản lý và quản lý tiến trình, tiểu trình sẽ do nhân đảm trách Bộ điềuphố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 caonhấ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ềuhà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ứctạ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 dung do
bộ vi xử lý không mạnh mẽ như trên máy tính và sử dụng tiểu trình cũng không phủ hợpvớ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ặcnhiều active object
2.5 SYMBIAN LÀ HỆ ĐIỀU HÀNH ĐA NHIỆM
Nếu như trong máy PC, Windows vốn tự hào nhất khi đánh bại HĐH DOS là
Trang 23khả năng đa nhiệm của nó thì HDH Symbian cũng đảm bảo được thế mạnh này Thậtvậy, HDH Symbian là một hệ điều hành đa nhiệm đầy đủ Mỗi chương trình chạy nhưmột tiến trình riêng biệt, Symbian OS cho phép các ứng dụng chạy song song Mỗi tiếntrình trong Symbian OS đều bao gồm 1 hay nhiều threads, và bộ điều phối hệ thống cấpquyền sử dụng CPU cho các threads dựa vào sự ưu tiên Có 2 cách để cài đặt làMultithreads và co-operative multitasking với các lời gọi hàm bất đồng bộ
2.5.1 Multithreading
Mỗi tiến trình trong Symbian OS mặc định có 1 thread, có thể thêm các đoạncode vào ứng dụng để tạo thêm các thread khác để tạo một ứng dụng multithread Mỗithread có thể được cấp cho một độ ưu tiên tuyệt đối hoặc tương đối với độ ưu tiên củatiến trình cha, và bộ điều phối hệ thống sẽ dựa vào nó để điều phối
2.5.2 Co-operative multitasking
Tuy nhiên, viết một chương trình multithread thì thường không cần thiết bởi vìSymbian OS cũng cung cấp các lời gọi hàm không đồng bộ cho hầu hết các dịch vụ hệthống Lời gọi không đồng bộ cho phép các ứng dụng cài đặt nhiệm vụ cộng tác, và với
nó thì thường không cần phải sử dụng multithread
Một ứng dụng tạo một lời gọi bất đồng bộ đến server để thi hành một vài cáccông việc, như gửi và nhận dữ liệu qua các kết nối truyền thông, hoặc lấy dữ liệu từ
cơ sở dữ liệu Việc sử dụng lời gọi bất đồng bộ nghĩa là ứng dụng có thể làm việc kháctrong khi chờ server hoàn thành công việc được giao - giống như với multithread
Khi server hoàn thành công việc nó sẽ nhắc ứng dụng Không giống như Multithread, tuy nhiên lời nhắc thì không được ưu tiên trước: nó chuyển đến ứng dụng khi nó kiểm tra thấy rằng công việc đã hoàn thành Vì thế lời gọi bất đồng bộ cung cấp các nhiệm vụ cộng tác (co-operative multitasking) hơn các nhiệm vụ ưu tiên trước (pre-emptive multitasking)
Sử dụng lời gọi bất đồng bộ trong ứng dụng thay cho multithread cho chúng ta 2lợi ích đáng kể Thứ nhất, các lời gọi bất đồng bộ thì dễ lập trình hơn, bởi vì chúngtránh những lập trình phức tạp về đồng bộ hóa giữa các tiểu trình (thread)
Thứ hai, các lời gọi bất đồng bộ tiết kiệm tài nguyên hệ thống bởi vì việc tạomột thread sẽ chịu một gánh nặng về việc chuyển đổi tài nguyên trên kernel Vì thế việc
sử dụng lời gọi bất đồng bộ (asynchronous calls) có nghĩa là vẫn thi hành được nhữngcông việc của mình mà không làm tăng thêm gánh nặng chuyển đổi Các lời gọi bất đồng
bộ (Asynchronous calls) thường được gắn vào mô hình lập trình trong hệ điều hànhSymbian được biết đến như là đối tượng động (active objects) Các đối tượng động được
sử dụng nhiều trong hệ điều hành Symbian khi truy cập đến server hệ thống, server hệthống này cung cấp nhiều các hàm chính yếu của hệ điều hành Ngay cả server cũngdùng active object để cài đặt Các server hệ thống bao gồm file server, window server,
Trang 24- 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.
Hình 2.12 : Bộ nhớ ROM
- Quản lý RAM phức tạp hơn Bộ nhớ RAM được chia thành các trang 4KB bởi MMU
Hình 2.13: 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
Trang 25( ROM và DULL được nạp vào RAM), vùng nhớ tiến trình (hình biểu tượng cho ứngdụ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ănxếp stack rất nhỏ (12K) 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ằngphương thức new hay dùng User::Alloc() Vùng heap mặc định của riêng từng tiểutrì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
Hình2.14: Vùng nhớ cho các tiến trình
Vùng nhớ RAM, được ánh xạ với ổ C, chỉ được truy cập thông qua file server
Ở đây, một trang 4KB được chia nhỏ ra thành các vùng nhỏ hơn gọi là sector có kíchthước 512 byte, phù hợp hơn cho các file có dung lượng nhỏ
Các DDL 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ểmcủa Symbian để phù hợp với bộ nhớ giới hạn Ví dụ: hiện nay bộ nhớ RAM vàokhoả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 60trong tổng số 100 DLL có trong hệ điều hành Symbian 7.0, mỗi DLL chỉ cần một bytecho dữ liệu động (nhưng phải cấp hẳn 1 trang 4KB cho nó) thì ta tổng cộng 4KB * (20tiến trình ứng dụng + 10 tiến trình server) * 60DLL = 7MB, chỉ cho dữ liệu động Trên
Trang 26Danh 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 PCnên tất cả các trang cần để phải lấy từ danh sách 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.7 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ànhSymbian được xây dựng để làm việc hiệu quả trên thiết bị có tốc độ và nguồn nănglượ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ànhphầ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 độngtrở 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ưunhữ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 đề lưu sau mỗi bước thực hiện
2.8 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 chogiả 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ậttoá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,thi khi máy mở trở lại, sau 3 giây nữa chỉ thị mới được thi hành
2.9 CÁC NGÔN NGỮ DÙNG ĐỂ PHÁT TRIỂN ỨNG DỤNG TRÊN HĐH SYMBIAN
2.9.1 Phát triển ứng dùng bằng C++
Mã nguồn cho 1 project viết bằng C++ bao gồm:
o C++ source file( cpp, h)
o Tập tin nguồn cho resource của chương trình ( resource files, bitmap, icons)
o Những tập tin hệ thống của project: tập tin chứa thông tin xây dựng (bld.inf), 1 haynhiều makefile specifications ( mmp)
SDK của cả Quartz và Crystal của Symbian cung cấp các công cụ để xây
Trang 27o Trình biên dịch GNU C++, phiên bản 98r2, thiết kết riêng cho các yêu cầu của EPOC
và xây dựng các chương trình cho các máy hoạt động dựa trên ARM
o Trình biên dịch và chuyển đổi các resources của chương trình (resource files,bitmap, icons)
o Help compiler
2.9.2 Phát triển ứng dụng bằng Java
Mã nguồn cho 1 project viết bằng Java bao gồm:
o Java source file( java)
o Các tập tin cần thiết cho việc xác định ứng dụng sẽ được cài đặt như thế nào (.app, txt)
o Sử dụng JavaDoc cho việc documeting APIs và implemention
SDK của cả Quartz và Crystal của Symbian cung cấp các công cụ để xây dựngchương trình bằng Java:
o Batch files để xây dựng các tập tin JAR cho các máy giả lập o GUI icon vàapplication information file builder
o GUI icon và application information file builder, như trong C++, nhưng có hổ trợriêng cho các yêu cầu của Java
o Tập tin cài đặt từ hệ thống cài đặt của Symbian
Để xây dựng và debug chương trình bằng mày giả lập thì cần phải có môitrường lập trình Java chuẩn Còn để phát triển và debug bằng phương pháp Javanguyên
thủy cần có SDK của Quarzt hay Crystal C++: SDKs cho Java bao gồm phần bổ sungC++ SDKs chứa phần hổ trợ cho build-time của phương phát Java nguyên thủy Tavẫn có thể dùng thư viện của Java mà không cần SDKs của C++
Ngoài ra, SDKs của quarzt và Crystal cung cấp hổ trợ đầy đủ cho việc xâydựng các ứng dụng
2.9.3 Phát triển ứng dụng bằng WAP và HTML.
Cũng có thể nhưng rất hiếm khi dùng 2 ngôn ngữ này để xây dựng phần mềmtrên HDH Symbian.Cách làm cũng giống như C++ và Java:
Trang 28Thường thì người ta phát triển nội dung HTML và Wap bằng server và sau đó biên dịchtrên thiết bị thật Các thiết bị dùng HDH Symbian, và máy giả lập đều có thể nối mạngnội bộ với nhau bằng cách dùng Windows NT Remote Access Services (RAS), đểgiảm bớt giá thành kiểm tra và tăng tốc độ kiểm tra lên
2.10 CÁC CHƯƠNG TRÌNH HOẠT ĐỘNG TRÊN SYMBIAN
2.10.1 File thực thi:
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
- Tệp JAR : Đây là tệp đóng gói ứng dụng Tệp JAR chứa tất cả các tệp tin kê
khai mô tả nội dung của một chương trình ứng dụng Có 3 cách để tải tệp này xuống diđộng:
+ Kết nối cáp dữ liệu từ PC sang cổng dữ liệu điện thoại
+ Cổng hồng ngoại(Infra Red Port)
+ OTA (Over The Air) qua mạng GPRS
Thư viện liên kết động(Dynamic Link Library - DLL) chứa các mã chươngtrình với nhiều điểm đầu vào Có hai loại DLL quan trọng :
- Share 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.Thư viện này được nạp tự động
- 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), ứng dụng đồ hoạ GUI(.app) Thưviên này được nạp bởi chương trình sử dụng nó
2.10.2 Cơ chế quản lý lỗi trên Symbian
Trên môi trường Symbian, các lỗi gây ra trong quá trình một chương trình ứngdụng hoạt động được chia làm hai loại : lỗi lập trình và lỗi môi trường
Trang 29- Lỗi Lập trình : là những lỗi có thể sửa chữa bằng cách viết lại đoạn chương
trình gây ra lỗi khi phát hiện Loại lỗi này chúng ta thường gặp trong suốt quá trìnhphát triển ứng dụng
- Lỗi môi trường: hay còn gọi là lỗi thiếu tài nguyên Những lỗi này không thể
sửa chữa bằng cách lập trình lại được, vì vậy cần dự đoán để bao quát và có hướng xử
lý khi các loại lỗi này xảy ra Khi lỗi môi trường xảy ra, hàm gây ra lỗi sẽ ngưng hoạtđộng, tiến hành quét các chỉ thị, các hàm sẽ được thực this au hàm gây lỗi và chuyểnđến phần xử lý lỗi đầu tiên mà nó tìm thấy trong các hàm này
2.10.3 Quản lý sự kiện
a Quản lý sự kiện trong ứng dụng Symbian:
Như mọi ứng dụng trên các hệ điều hành khác, ứng dụng trên hệ điều hànhSymbian cũng cần nhận sự kiện từ người dùng như khi một phím được nhấn hay khi
có dữ liệu đến các cổng truyền thông
- Sự kiện nhận trực tiếp từ người gửi qua giao diện ứng dụng: hầu như tất cảđều được thực hiện qua CONE Nó phân tích các sự kiện đến rồi gọi một hàm thànhviên phù hợp để xử lý
- Các nguồn sự kiện khác: từ các cổng truyền thông, chúng ta phải tự cài đặtriêng Cách cài đặt để bắt và xử lý các sự kiện này là tạo một lớp chứa một hàm chờnhận sự kiện và hàm khác sẽ đảm nhận việc xử lý sự kiện Trên các hệ điều hành khác,hàm nhận sự kiện và xử lý sự kiện sẽ được thực hiện trong các tiểu trình khác nhau.Đây là cơ chế đa tiến trình được hỗ trợ trên các hệ điều hành máy tính Trên Symbian,
cơ chế này cũng được hỗ trợ nhưng không khuyến khích dùng Symbian định nghĩamột cơ chế khác phù hợp hơn là dùng active object thay cho tiểu trình do khả năng xử
lý của CPU trên điện thoại Symbian không tốt như trên máy tính Symbian cung cấpmột cơ sở là CActive và đối tượng của nó là active object để bắt và xử lý sự kiện
b Quản lý sự kiện với active object:
Active object là một khái niệm mới được Symbian đưa ra để quản lý sự kiện
Nó hoạt động theo cơ chế độc quyền với hàm thực thi RunL()đảm nhiệm việc xử lý sựkiện và các active object được quản lý bởi một bộ điều phối active scheduler của tiểutrình Đây là một thiết kế tối ưu cho hoạt động quản lý sự kiện
2.10.4 Công cụ phát triển ứng dụng.
Mỗi phiên bản Symbian đều có một công cụ hỗ trợ phần mềm SoftwareDevelopment Kit (SDK) khác nhau, mỗi sản phẩm điện thoại của một hãng sản xuấtlại cung cấp một SDK của riêng hãng đó Các bộ công cụ phát triển SDK trên môitrườ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
Trang 30hoạ để có thể biên dịch từ dòng lệnh hay bằng Microsoft Visual C++ 6.0.
+ Application Wizard: có chức năng 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
- Công cụ biên dịch:
+ Biên dịch tài nguyên: Tài nguyên được biên dịch riêng với trình công cụ biên
dịch tài nguyên dòng lệnh với rcomp, epocrc
+ Biên dịch ứng dụng: trong các bộ SDK cung cấp các trình công cụ để biên
dịch ứng dụng từ dòng lệnh
Trang 31CHƯƠNG 3 LẬP TRÌNH JAVA TRÊN HỆ ĐIỀU HÀNH SYMBIAN
3.1 JAVA TRÊN HỆ ĐIỀU HÀNH SYMBIAN
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, nhưng không phải điện thoại Symbian nào cũng hỗ trợ đủ cả hai loại ngôn ngữnày Với mục tiêu xây dựng cho các thiết bị có bộ nhớ thấp và khả năng độc lập môitrường, Java đang dần trở thành ngôn ngữ lập trình hàng đầu trên môi trường điệnthoại di động
3.2 SỰ PHÁT TRIỂN CỦA JAVA TRÊN HỆ ĐIỀU HÀNH SYMBIAN
Bắt đầu bằng JDK 1.1.4 trên Symbian v5, Java đang dần được hỗ trợ tốt hơntrên Symbian
Năm 1999, Sun công bố 3 phiên bản Java cho các loại thiết bị khác nhau:
+ Java 2 Enterprise Edition(J2EE) cho môi trường server + Java 2 Standard Edition(J2SE) cho môi trường máy để bàn
+ Java 2 Micro Edition(J2ME) cho môi trường thiết bị gia dụng điện tử
và thiết bị nhúng
J2ME chia làm các nhóm cấu hình cho các thị trường thiết bị khác nhau trong
đó CLDC(Connected Limited Device Configguration) là cấu hình dùng cho thiết bị diđộng cấp thấp như điện thoại di động và PDA Trên CLDC định nghĩa MIDP(MobileInformation Device Profile) đặc tả các API dùng cho các thiết bị như điện thoại diđộng
Hình 3.1: So sánh giữa các phiên bản Java
Bộ SDK cho Java trên Symbian: với các điện thoại dùng hệ điều hành Symbian6.0 (Nokia 9200 Series) Symbian cung cấp bộ SDK riêng cho Java với các API cho