第一章:Symbian OS简介
1.1. Symbian系统简介 当前有很多手机运行Symbian OS,数量甚至超出您的想象。到目前为止已经有超过7500 万、100 多种型号的手机运行Symbian OS。这些电话大部分都形态迥异:有的配有键盘,有的采用笔控输入;有的配备TFT 彩色屏幕,有的则配备黑白LCD 显示屏;有的擅长于音乐播放,有的专注于电子游戏、图像处理甚至电视功能;有的手机面向个人消费者,有的专门针对商务用户;有的是为单手操作设计的,有的是为双手操作设计的——种类繁多不一而足。Symbian OS 手机受到广大消费者的喜爱。仅2005 年就售出3400 万部Symbian OS 手机——这相当于每不到一秒钟就有一部Symbian OS 手机被出售。网络运行商同样青睐Symbian OS 手机。全球有250 多个移动电话网络运行商选择了Symbian OS 手机。所有这些都表明现在市面上有成千上万的手机是基于Symbian OS 的,所以为symbian系统开发的应用程序会得到广泛的应用。现在已经有5400 多种商业性应用软件可供Symbian OS 手机应用。本教程旨在为您提供一些编写Symbian OS 应用程序的入门知识。希望它会对您有所裨益,为开发Symbian OS 应用程序打下一个良好的基础。 1.2. 开发语言 从开发初期起,Symbian OS 就是专门为移动电话而设计的,因此从弹性的电源管理(resilient power-management)到内存资源的谨慎使用,全都是为了满足手机操作系统的特定需求。作为Symbian OS 的开发人员,您将受益于Symbian OS 这样一个专门为移动设备而创立并随着市场一起发展的开发平台。Symbian OS 最“基本”的编程语言是一种改进的C++。Symbian OS C++ 经过特殊设计与优化,以利于降低手机电池能耗和内存使用。比如,为了节约电池耗电,所有Symbian OS 程序都是基于事件(event-based) 的,而当没有任何程序进行事件处理时,CPU 就进入休眠。您在开发软件时也可以使用Java、Python、.NET(使用Visual Basic 和带AppForge’s Crossfire 的C#)、Perl、OPL和Adobe Flash,但是Symbian OS C++ 是最强大(它允许最大限度的利用操作系统提供的所有功能)也是最快捷(因为它直接以编译码运行,而无需在运行时进行解译)的语言。这也就是为什么我们在本书中选择C++ 来向您演示如何进行Symbian OS 开发的原因。好了,闲言少叙,让我们言归正传。 1.3. 准备工作 首先您需要有一台电脑能创建并测试在Symbian OS 手机上运行的应用程序。这也就是说电脑要有一个较快的CPU 处理器(至少1.5GHz)和相当大的RAM(512MB或更大)以及一个大容量硬盘(至少有2GB 剩余空间)。该电脑必须能运行Windows 2000 或XP 操作系统。然后您需要开发软件来帮助您编写代码并进行编译。这可通过包含编辑程序(editor)、编译程序(compiler) 和链接程序(linker) 的集成开发环境(IDE) 来完成。在这推荐两种适合Symbian OS 程序开发的IDE。对于开发非商业用途的Symbian OS 应用程序,Nokia 的Carbide.c++ Express 版本是最理想不过了,它建立在Eclipse IDE 的基础上,供免费下载。对于使用Visual Studio.NET 2003 的程序员来说,也可选择Carbide.vs。这是一套基于Microsoft Visual Studio .NET2003 IDE 的工具,用于开发S60 和Series 80 软件。您还需要软件开发包(SDK), 专门用来编写和创建Symbian OS 应用程序。基于不同手机类型,有不同版本的SDK 供选择,具体使用哪个SDK 请见以下几页的说明。如果您还没有决定具体的手机类型或平台而无法确定选择哪个SDK,我们建议您一开始可使用S60 和UIQ SDK。如果您想为最新款的手机(如Nokia 3250、E60、E61、N71、N80、N91、N73 或N93)编写应用程序,那就选择基于Symbian OS v9 的SDK(UIQ 3 或S60 第三版),要么您就选择更低版本的SDK(UIQ 2.1 或S60 第二版)。 不同版本的Symbian OS 之间有什么区别?主要的分别是,在Symbian OS 9.1 版本之前,为较低版本的Symbian OS编写的软件往往可在较高版本上运行,但9.1 版本与以往的版本截然不同。如要运行在9.1 版的Symbian OS 上,应用程序必须稍加修改并进行再次编译。 接下来您需要下载您所选择的IDE 和SDK。以下章节将向您介绍如何在互联网上找到这些工具。 1.4. S60 平台 S60 平台是一个完整的应用程序包(package),用户接口和构建于Symbian 系统技术的开发工具。S60 用户接口 (UI) 经过精心的设计,方便用户使用,便于单手操作。从用户的角度看来,该平台最大的特点在于它的用户界面:大的彩屏和各种输入键(两个软件键, 五方位的导航键,和几个专用的键)。单手操作和大彩屏的优点能使应用程序开发者提供更有吸引力的内容和提供更方便的导航功能,同时增加用户使用手机时的愉快体验。 目前,s60平台上已经存在各种各样的应用软件. 其中最重要的有:高级智能电话应用程序,个人信息管理应用程序(PIM)(例如, 电话簿,日历, 相册), 短信, 网页浏览, 电子邮件和应用程序安装引擎,它能够让您自由地从电脑上下载软件到您的手机上。 S60 第三版本支持两种不同的外观: Ø QVGA Portrait (240x320) Ø QVGA Landscape (320x240) 1.5. 如何选择SDK 基于Symbian OS 的手机外型各异,用户界面(UI) 也不尽相同。为了给特定的用户界面编写应用程序,您必须选择特定的SDK(尽管应用程序的引擎往往与用户界面无关)。大部分运行Symbian OS 的手机采用的是S60 用户界面并使用键盘操作。S60 已经发布了一系列版本,选择正确的S60 SDK 和相应的Symbian OS 十分重要: S60 第三版– Symbian OS v9.1 S60 第二版功能包3 – Symbian OS v8.1 S60 第二版功能包2 – Symbian OS v8.0a S60 第二版功能包1 – 升级Symbian OS v7.0s S60 第二版– Symbian OS v7.0s S60 第一版– Symbian OS v6.1 您可在以下网站查到每一系列S60 SDK 所包含的手机型号列表: www.symbian.com/developer/sdks/sdks_series60.asp 其它大部分基于Symbian OS 的手机采用笔控输入的UIQ 用户界面。以下网站列出了基于各版本的UIQSDK 的手机机型 www.symbian.com/developer/sdks/sdks_uiq.asp 您可以到以Nokia的网站下载SDK www.forum.nokia.com 1.6.Carbide.c++ 集成开发环境(IDE) 前面已经提到了各种集成开发环境,这里我们主要介绍Carbide.c++的集成开发环境。Carbide.c++的集成开发环境(IDE)基于Eclipse集成开发环境版本3。增添了能使Eclipse处理symbian c++ 源文件和编译Symbian工程的插件。这些插件分为以下几类: Ø C/C++开发工具箱(CDT)。这是一个使得Eclipse管理和编译symbian工程的工具集 Ø Symbian插件。这些插件由symbian开发,使得eclipse能够处理Eclipse C++的概念,同时提供对Symbian操作系统软件开发工具箱和Symbian工具链的支持。 Ø Nokia插件。由Nokia开发,提供对Symbian操作系统工具箱的更多支持。插件实现了C++编译器,symbian系统的调试器,并且加入了Carbide.c++系列产品的商业版本的高级特性。 很明显,因为Carbide.c++是基本的Eclipse集成开发环境,开发者可以进一步定制其它的商业或免费的插件,比如说,一个版本控制系统,一个UML建模系统等。 Carbide.c++有自己的安装程序,所以安装比较简单。在启动这个产品之后,用户看到的集成开发环境和Eclipse开发环境十分类似,如下图所示,因为Carbide.c++是设计用于处理symbian c++应用程序的,所以其集成开发环境的左边显示的是c/c++工程视图,这个视图用于显示构成一个典型symbian c++工程源文件、头文件,资源文件。 关于eclipse平台和插件的相关知识,不是本教程所关心的重点, 有兴趣的读者可参考相关的其他著述。 |
1.8. 文件目录的布局
data (S60) Gfx (S60) Group Images (UIQ) Inc rsrc (UIQ) src Test
在group 目录下面,有两个重要的文件,这两个文件都与创建Symbian工程相关:
// 目标平台 // 从工程中输出的文件 // 工程定义文件 // 工程定义文件(测试代码用) 在上面的例子中, 如PRJ_PLATFORMS 声明所示,默认情况下工程被编译为针对WINSCW平台和 GCC-E平台的执行代码。当您用CodeWarrior为模拟器编译代码的时候,您使用的是WINSCW 平台, WINSCW的来由是,最终的代码运行于Windows, 单线程模式(in a Single process),并用CodeWarrior编译。
|
下面简单地描述每个关键字的作用:
|
1.9.
第一个程序: HellowWorld
1.9.1. 创建工程 运行Carbide 集成开发环境,在菜单栏上选择file->New->Symbian OS C++ project,出现如下图所示的对话框: 我们选择带用户界面设计器的图形用户界面应用程序(Carbide Express 版本不支持用户界面设计的功能)。然后点击“下一步”按钮。出现下面的对话框: 用户选择一个sdk的版本(笔者的机器上安装的是s60_3rd_FP1版本的sdk)。继续下一步: 按下一步,继续: 选择一个空的界面,这样我们可以自由地在上面添加控件。下面的步骤一直按“下一步”,直到完成。 1.9.2. 在模拟器上运行和调试 工程建立完成后,就可以构建(build)工程了。在将程序放到手机上运行之前,我们通常需要先在模拟器上运行、调试程序。模拟器是SDK附带的一个软件,能够模拟真实手机的运行情况。 在工程透视图中,选中工程,点击右键,将活动构建设置为 Emulator Debug(Winscw)。如下图所示: 这样,编译出来的程序版本才是针对模拟器的。设置后,可以构建(build)工程了:在工程透视图中选中工程,点击右键,选择“build Target Only”(只编译模拟器版本,节省时间)。 最后,点击工具栏上的运行按钮 ,选择Run As->1 Run Symbian OS Application Carbide 启动模拟器,这个过程需要持续几十秒到几分种,依赖机器的配置。在模拟器启动后,点击模拟器上的软件键 ,模拟器会出现下面的界面:
|