一 Symbian OS简介
1.1 Symbian操作系统的起源和现状
Symbian成立于1998年,由爱立信、诺基亚、摩托罗拉和Psion共同出资筹建。1999年,松下公司加入Symbian。2000年,世界上第一款采用Symbian操作系统的手机Ericsson R380成功上市,同年,索尼公司和三洋公司获得了Symbian 的授权。 2001年,富士通公司获得了Symbian的授权。诺基亚公司推出了Nokia 7650-基于 Symbian操作系统的2.5G手机. 同时,Nokia 9210开始公开发售。
2002年,西门子公司与索尼-爱立信公司入股Symbian,Sendo公司获得了Symbian的授权。NTT DoCoMo 发布3G FOMA F2051手机。 Symbian发布第一个用于3G系统的手机操作系统Symbian OS v7.0 for 3G mobile phones。2003年,诺基亚成功推出了第一款基于Symbian OS v7.0s的手机。同年,三星公司成为Symbian的股东之一。
2004年,已经发布的采用Symbian OS 的手机包括Panasonic X700, Motorola A1000, Nokia 9500, 7610 和N-Gage QD, Samsung SGH-D710。Arima公司与LG电子获得了Symbian的授权。同时,联想公司决定将Symbian操作系统用于他们最近的手机产品中。
而Symbian随着手机的发展得到了越来越多的市场。在目前手机操作系统的争夺中,Symbian市场占有率达到了70%,是当之无愧的老大,而微软的windows mobile和其他操作系统一共只有30%的份额。
目前,全球主流手机操作系统争夺主要有三种:
1.Symbian操作系统:按持股比例多少,由诺基亚、爱立信、索尼爱立信、松下、三星、西门子共6家厂商顺序组成的Symbian联盟把持。优点是价格适中,对手机要求较低,缺点是开发人员少。
2.windows mobile操作系统:优点在于可以方便地和PC上的windows进行互通,开发人员多,但缺点是授权费最高,对手机要求也高。
3.Linux:全球开放的系统,任何厂家和开发商均可使用,优点是价格最低,对手机要求最低,缺点也很明显,厂家各自为营,手机之间的互通性差。
1.2 Symbian操作系统使用的手机设备
采用Symbian操作系统的智能手机已经推出的包括以下几款:Sony Ericsson P910,Sony Ericsson P900,Sony Ericsson P800, FOMA F900i,FOMA F2051, Nokia 6600,Nokia N-Gage,Nokia 7610,Nokia N-Gage QD,Nokia 3660/3620,FOMA F2102V, Nokia 7650,Nokia 3650/3600,Nokia 9290 Communicator,Nokia 9210 Communicators,Sendo X,Motorola A920,Motorola A925,Siemens SX1。
即将推出的还有:Arima U300 ,Nokia 6670,Nokia 6630 ,Nokia 6260 ,Nokia 9500,Nokia 9300,Nokia 6620,BenQ P30,Samsung SGH-D710,Panasonic X700,Motorola A1000,,FOMA F900iT FOMA F880iES,FOMA F900iC。
1.3 Symbian OS的特点
Symbian OS具有以下6大特点:
1、操作系统是运行在ROM上的
2、系统是运行在电池驱动的设备上的
3、完全是面向对象的
4、基于组件的设计
5、被设计成确保用户的数据不会丢失
6、简单的UI系统
Symbian 是真正的微核操作系统,所谓“微核”,就是说操作系统 只有很小的一部分是运行在最高优先级的,其他的功能都是以Client-Server的方式提供。下面是Symbian系统的内部结构图:
应用层:
Shell, OPL, 及其他应用程序
=================================================================
系统层:
Dialogs, Menu, Toolbar, Icons, Resources, JavaVM, Grid, Rich Text, Edit Control, List Control, Application Framework, Jave Class Libraries. =================================================================
服务层:
Window Server, Process Server, Socket Server, Sound Server, Wireless Server, Database Server, File Server, Alarm Server, Comms Server, 以及无线协议
=================================================================
内核:
euser.dll, ekern.exe, 服务控制(supervisor server), HAL(设备抽象层)
=================================================================
驱动程序层:
包括音频驱动,显示驱动,MMC驱动,键盘驱动,串并口驱动 ,DSP驱动,时钟控制器驱动等等
二.开发环境入门
2.1 安装SDK及VC
Nokia根据手机的屏幕大小和价格高低把手机分成了多个系列,现在使用的系列有:Series 40、Series 60、Series 80 和Series 90。60系列采用Symbian os 6.1,然后又根据手机屏幕的特点对UI做了一些修改,这个被修改了的Symbian就被称为Nokia的60系列平台。使用60系列的手机型号包括: Nokia 6670、 Nokia 6630、 Nokia 6260 、Nokia N-Gage QD™ 、Nokia 7610 、Nokia 6620 、Nokia 3620 、Nokia 3660 、Nokia 6600 、Nokia 3600、Nokia 3650、Nokia 7650、Nokia N-Gage™等。
下面我们就以60系列为例,介绍SDK的安装过程。
2.1.1 安装SDK
第一步,到Nokia论坛注册,下载最新的SDK。Nokia 网站提供的Series 60 SDK for Symbian OS Nokia Edition SDK最新版本是v1.2,Series 60 SDK for Symbian OS的最新版本是v2.1。下载网址:http://www.forum.nokia.com/main/0,6566,034-4,00.html
第二步,到http://www.activestate.com 网站下载最新的Active Perl Script 安装程序。到http://www.java.com/en/download/manual.jsp 下载最新的J2RE。
第三步:安装SDK,推荐为Symbian开发单独建一个目录,例如d:/Symbian而不是使用C:/program files等这样的目录。
第四步:安装Active Perl和J2RE,安装到默认目录即可。
第五步:检查环境变量设定。打开系统环境变量tab,然后看看有没有EPOCROOT,如果有的话,把它手动改成“/” 。改完之后应该是这个样子的:
EPOCROOT = /
然后,在系统PATH中加入 /epoc32/tools目录以及/epoc32/gcc/bin目录就可以了。
实际上,Symbian SDK根本不用安装,直接把epoc32目录拷贝到一个机器上,然后照上述方法设定目录和环境变量就可以了。
2.1.2 配置VC
如果我们使用的是VC 6.0,我们要保证系统至少打了SP3补丁,否则系统会有警告提示。如果我们使用的是VS.NET2003, 我们就只能安装Series 60 SDK for Symbian OS v2.1,因为Series 60 SDK for Symbian OS Nokia Edition SDK v1.2在VS.NET2003无法正确建立工程。
如果要直接在vc6里创建新项目,要把/Symbian.1/Series60/Series60Tools/ Application Wizard目录下的 AvkonAppWiz.awx和AVKONAPPWIZ.HLP文件拷贝到vc6的模板目录C:/Program Files/ Microsoft Visual Studio/ Common/ MSDev98/ Template下。这样我们就可以在VC的新建工程中看到Series 60 AppWizard v 1.9这个选项.
填入Project Name 以后,确认。
一路“Next”,一个最简单的Symbian应用程序就建立好了。
如果要将已经建立好的工程导入到VC6.0中,比如我们将SDK中的例子HelloWorld转换成一个VC6的项目,我们首先进入/ Symbian.1/Series60/Series60Ex/HelloWorld目录。在这里我们可以看到,在Symbian中,一个Project 通常是按inc, src, group等目录组织,group目录里通常放的是项目文件,所以编译时要先到这里。用命令提示符模式进入刚才说的那个目录下,然后执行:
bldmake bldfiles
这个命令会在group目录下生成一个abld.bat的批处理文件,并且会在/Symbian .1/Series60/Epoc32/BUILD下生成/Symbian.1/Series60/Epoc32/BUILD/SYMBIAN.1/ SERIES60/SERIES60EX/HELLOWORLD/GROUP这个目录,并在最底层目录下生成一堆 .make文件。
然后,我们在同一个目录运行刚才生成的abld.bat:
abld makefile vc6
这样就会自动生成vc6的dsw文件,位置在/Symbian.1/Series60/Epoc32/BUILD/ SYMBIAN.1/ SERIES60/SERIES60EX/HELLOWORLD/GROUP/HELLOWORLD/WINS。然后我们就可以在VC6种打开这个 Symbian工程了。
2.2 编译
我们可以直接使用SDK提供的工具编译Symbian 工程,也可以使用VC6提供的集成环境来编译转化过的Symbian 工程。编译的结果存放在/Symbian.1/Series60/Epoc32/ Release/wins/UDEB/Z/SYSTEM/apps目录中。
2.2.1使用SDK提供的工具编译Symbian 工程
我们在上一节的那个位置继续输入:
abld build wins udeb
这个命令会编译我们的程序,最后在/Symbian.1/Series60/Epoc32/Release/wins/UDEB目录下生成我们的helloworld,然后我们可以从开始菜单里运行模拟器的debug版,在模拟其中就可以运行helloworld了。
2.2.2 使用VC6编译Symbian 工程
我们直接打开运行abld makefile vc6后生成的dsw文件,VC自动装载转化过的工程。按F7便可以直接编译工程,编译结果同样放在/Symbian.1/Series60/ Epoc32/Release/ wins/UDEB目录中。然后我们打开模拟器debug 版,就可以看到我们编译好的工程了。
2.3 打包
我们以SDK 1.2提供的HelloWorld为例,制作可以在手机中安装的.SIS文件:
2.3.1.检查程序
首先,在命令行格式下,进入HelloWorld工程mmp文件所在目录,输入bldmake bldfiles和abld build wins udeb,然后打开模拟器,检测程序有无错误。
2.3.2.编译工程
在程序无错误后,在命令行输入abld build armi urel 。执行这个命令之后会在目录d:/symbian.1/series60/epoc32/release/armi/urel生成 HELLOWORLD.APP和HELLOWORLD.RSC两个文件。
2.3.3.建立.pkg文件
在d:/Symbian.1/Series60/Series60Ex/helloworld/sis 用记事本建立或者修改工程的pkg文件,内容如下:
; HelloWorld.pkg
;
;Language - standard language definitions
&EN
; standard SIS file header
#{"HelloWorld"},(0x10005B91),1,0,0
;Supports Series 60 v 1.2
(0x101F8202), 0, 0, 0, {"Series60ProductID"}
;
"d:/symbian.1/series60/epoc32/release/armi/urel/HelloWorld.APP"-"!:/system/apps/HelloWorld/HelloWorld.app"
"d:/symbian.1/series60/epoc32/release/armi/urel/HELLOWORLD.rSC"-"!:/system/apps/HelloWorld/HELLOWORLD.rSC"
其中,前面"d:/symbian.1/series60/epoc32/release/armi/urel/HELLOWORLD.rSC" 是要打包安装的文件,"!:/system/apps/HelloWorld/HELLOWORLD.rSC"是安装的目标位置。在其中要注意的是,我们在目标位置中用“!”代替了实际的盘符。这样做得好处是在用户安装的时候,手机系统会提示用户选择要安装的位置,这就给了用户更大的灵活度。另外,在 Symbian 系统中,安装的应用程序默认位置是“!:/system/apps ”。
编辑好pkg文件后,保存至相应目录。
2.3.4.打包程序
在命令行中,转至pkg文件所在目录,运行命令makesis HelloWorld.pkg。之后我们就在同一目录下得到了打包好的.sis文件。
2.4 手机测试
将打包好地.sis文件上传至手机中,然后在手机的应用程序管理器中就可以看到我们打包好的文件。选择“安装”命令,系统会提示用户要安装的位置,选择安装位置后,我们制作的应用程序就安装到手机中了。
我们回到手机的主菜单,就会发现新安装的HelloWorld 应用程序。打开运行,结果和在模拟器中看到的基本是一样的。