【手机软件】symbian系统开发教程888.docx
《【手机软件】symbian系统开发教程888.docx》由会员分享,可在线阅读,更多相关《【手机软件】symbian系统开发教程888.docx(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、symbian系统开发教程(一)第一章:Symbian OS简介作者:谢兴 enigma199711.1. Symbian系统简介 当前有很多手机运行Symbian OS,数量甚至超出您的想象。到目前为止已经有超过7500 万、100 多种型号的手机运行Symbian OS。这些电话大部分都形态迥异:有的配有键盘,有的采用笔控输入;有的配备TFT 彩色屏幕,有的则配备黑白LCD 显示屏;有的擅长于音乐播放,有的专注于电子游戏、图像处理甚至电视功能;有的手机面向个人消费者,有的专门针对商务用户;有的是为单手操作设计的,有的是为双手操作设计的种类繁多不一而足。Symbian OS 手机受到广大消费
2、者的喜爱。仅2005 年就售出3400 万部Symbian OS 手机这相当于每不到一秒钟就有一部Symbian OS 手机被出售。网络运行商同样青睐Symbian OS 手机。全球有250 多个移动电话网络运行商选择了Symbian OS 手机。所有这些都表明现在市面上有成千上万的手机是基于Symbian OS 的,所以为symbian系统开发的应用程序会得到广泛的应用。现在已经有5400 多种商业性应用软件可供Symbian OS 手机应用。本教程旨在为您提供一些编写Symbian OS 应用程序的入门知识。希望它会对您有所裨益,为开发Symbian OS 应用程序打下一个良好的基础。1.
3、2. 开发语言 从开发初期起,Symbian OS 就是专门为移动电话而设计的,因此从弹性的电源管理(resilient power-management)到内存资源的谨慎使用,全都是为了满足手机操作系统的特定需求。作为Symbian OS 的开发人员,您将受益于Symbian OS 这样一个专门为移动设备而创立并随着市场一起发展的开发平台。Symbian OS 最“基本”的编程语言是一种改进的C+。Symbian OS C+ 经过特殊设计与优化,以利于降低手机电池能耗和内存使用。比如,为了节约电池耗电,所有Symbian OS 程序都是基于事件(event-based) 的,而当没有任何程序
4、进行事件处理时,CPU 就进入休眠。您在开发软件时也可以使用Java、Python、.NET(使用Visual Basic 和带AppForges Crossfire 的C#)、Perl、OPL和Adobe Flash,但是Symbian OS C+ 是最强大(它允许最大限度的利用操作系统提供的所有功能)也是最快捷(因为它直接以编译码运行,而无需在运行时进行解译)的语言。这也就是为什么我们在本书中选择C+ 来向您演示如何进行Symbian OS 开发的原因。好了,闲言少叙,让我们言归正传。 1.3. 准备工作 首先您需要有一台电脑能创建并测试在Symbian OS 手机上运行的应用程序。这也就
5、是说电脑要有一个较快的CPU 处理器(至少1.5GHz)和相当大的RAM(512MB或更大)以及一个大容量硬盘(至少有2GB 剩余空间)。该电脑必须能运行Windows 2000 或XP 操作系统。然后您需要开发软件来帮助您编写代码并进行编译。这可通过包含编辑程序(editor)、编译程序(compiler) 和链接程序(linker) 的集成开发环境(IDE) 来完成。在这推荐两种适合Symbian OS 程序开发的IDE。对于开发非商业用途的Symbian OS 应用程序,Nokia 的Carbide.c+ Express 版本是最理想不过了,它建立在Eclipse IDE 的基础上,供免
6、费下载。对于使用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
7、、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 平台
8、S60 平台是一个完整的应用程序包(package),用户接口和构建于Symbian 系统技术的开发工具。S60 用户接口 (UI) 经过精心的设计,方便用户使用,便于单手操作。从用户的角度看来,该平台最大的特点在于它的用户界面:大的彩屏和各种输入键(两个软件键, 五方位的导航键,和几个专用的键)。 单手操作和大彩屏的优点能使应用程序开发者提供更有吸引力的内容和提供更方便的导航功能,同时增加用户使用手机时的愉快体验。 目前,s60平台上已经存在各种各样的应用软件. 其中最重要的有:高级智能电话应用程序,个人信息管理应用程序(PIM)(例如, 电话簿,日历, 相册), 短信, 网页浏览, 电子邮
9、件和应用程序安装引擎,它能够让您自由地从电脑上下载软件到您的手机上。 S60 第三版本支持两种不同的外观: QVGA Portrait (240x320) QVGA Landscape (320x240)1.5. 如何选择SDK 基于Symbian OS 的手机外型各异,用户界面(UI) 也不尽相同。为了给特定的用户界面编写应用程序,您必须选择特定的SDK(尽管应用程序的引擎往往与用户界面无关)。大部分运行Symbian OS 的手机采用的是S60 用户界面并使用键盘操作。S60 已经发布了一系列版本,选择正确的S60 SDK 和相应的Symbian OS 十分重要: S60 第三版 Symb
10、ian 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 所包含的手机型号列表: 其它大部分基于Symbian OS 的手机采用笔控输入的UIQ 用户界面。以下网站列出了基于各版本的UIQSDK 的手机机型 您可以到以Nokia的网站下载SDK 1.6.Carbide.c+ 集成开发环境(IDE) 前面已经提到了各种集
11、成开发环境,这里我们主要介绍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操作系统工具
12、箱的更多支持。插件实现了C+编译器,symbian系统的调试器,并且加入了Carbide.c+系列产品的商业版本的高级特性。 很明显,因为Carbide.c+是基本的Eclipse集成开发环境,开发者可以进一步定制其它的商业或免费的插件,比如说,一个版本控制系统,一个UML建模系统等。 Carbide.c+有自己的安装程序,所以安装比较简单。在启动这个产品之后,用户看到的集成开发环境和Eclipse开发环境十分类似,如下图所示,因为Carbide.c+是设计用于处理symbian c+应用程序的,所以其集成开发环境的左边显示的是c/c+工程视图,这个视图用于显示构成一个典型symbian c+
13、工程源文件、头文件,资源文件。关于eclipse平台和插件的相关知识,不是本教程所关心的重点, 有兴趣的读者可参考相关的其他著述。1.7. 开发环境的构建 第一步:安装JDK5.0 第二步:安装ActivePerl(需要5.6.1以上版本) 第三步:安装Symbian sdk 第三步:安装Carbide.c+1.2 版本。 Carbide有不同的版本。 其中Express版本是免费安装的,但不支持UI设计功能,也不支持在手机上调试的功能。 注意:这几个文件需要放在一个目录下面。否则,在编译程序的过程中,可能会出现难以预料的错误。 1.8. 文件目录的布局 在动手写代码之前,我们有必要了解工程的
14、文件组织结构。如果您看过SDK中的例子工程,或是用IDE的工程向导创建一个UI应用程序,您就会了解一个典型的工程文件结构布局是怎样的。 当工程增长到一定程度的时候,好的文件目录布局将有助于帮助跟踪代码的变更。工程中包含了各种不同类型的文件,包括源文件和其他类型的文件,我们通常将这些文件分开来存放,下面我们简短地介绍这些文件。 资源文件, 例如 .bmp 或 .wav 文件, 通常被单独地存放在一个目录下面。 测试代码也会和产品代码分开来存放。所以,一个典型的UI 应用程序会有如下这样一些目录结构和文件。 文件目录 存放文件类型 data (S60) 存放资源规格文件(.rss) Gfx (S6
15、0) 应用程序资源文件,例如图片和声音文件。 Group 该目录存放工程文件 (例如 .mmp 和 bld.inf) Images (UIQ) 应用程序资源文件,例如图片。 Inc 该目录存放头文件 (typically .h, .hrh 和 .inl) rsrc (UIQ) 存放资源规格文件 (.rss, .ra) src 该目录存放 .CPP 文件 Test 存放测试代码 在group 目录下面,有两个重要的文件,这两个文件都与创建Symbian工程相关:如果,需要在命令行编译工程,必须创建如下两个工程文件: 工程定义文件 (.mmp file),这个文件对要编译的工程进行描述,并定义要构
16、建的资源文件。该文件是环境无关的,编译工具用它来生成针对各种目标环境下的make files文件。 组件描述文件(bld.inf), 这个文件列出了一组相关的工程, 并包含一些编译指令. CodeWarrior 和 Carbide.c+ 都能够导入工程定义文件,并用它来在IDE环境下创建工程。下面详细描述这些文件的格式。 组件(component)描述文件: bld.inf Bld.inf 是一个文本文件。它的内容非常繁琐,主要包括工程定义文件mmp和其他的任何编译工具所需要的文件。该文件分为多个节,其中,mmp文件列表在PRJ_MMPFILES节中。即使一个工程文件只包含一个mmp文件,bl
17、d文件仍然是必须的。下面是一个典型的bld.inf文件。 / 目标平台 PRJ_PLATFORMS WINSCW GCCE/ 从工程中输出的文件 PRJ_EXPORTS / None/ 工程定义文件PRJ_MMPFILES filebrowseapp.mmp/ 工程定义文件(测试代码用)PRJ_TESTMMPFILES .testFileBrowseTest.mmp 在上面的例子中, 如PRJ_PLATFORMS 声明所示,默认情况下工程被编译为针对WINSCW平台和 GCC-E平台的执行代码。 当您用CodeWarrior为模拟器编译代码的时候,您使用的是WINSCW 平台, WINSCW的
18、来由是,最终的代码运行于Windows, 单线程模式(in a Single process),并用CodeWarrior编译。 平台的名称用来标识最终的可执行代码所运行的那个平台。 所以, 当上面的代码被编译完后,可执行程序被放在 epoc32releasewinscw 目录下面(根据是调试(debug)版本还是释放(release)版本,被放在 udeb 或 urel 子目录下面)。 如果代码是针对手机硬件的,需要选用GCCE平台。这时,最终的可执行代码被放到epoc32releasegcce目录下面。 工程描述文件 (mmp) mmp 文件中的每个语句都以一个关键字开头。下面是一个典型的
19、mmp 文件的例子。/ filebrowseapp.mmpTARGET filebrowseapp.exeTARGETTYPE exeUID 0x100039CE 0xE80000A6 VENDORID 0#ifdef _WINSCW_CAPABILITY AllFiles / AllFiles on emulator since no signing is required #elseCAPABILITY NONE / No capabilities on hardware - otherwise SIS file signing is required#endifSOURCEPATH .s
20、rcSOURCE FileBrowseAppUi.cppSOURCE FileBrowseDocument.cppSOURCE FileBrowseApplication.cppSOURCE FileBrowseBaseView.cppSOURCE RFsEngine.cppSYSTEMINCLUDE epoc32includeUSERINCLUDE .incSOURCEPATH .dataSTART RESOURCE filebrowseapp.rssTARGETPATH resourceappsHEADERENDSTART RESOURCE filebrowseapp_reg.rssTAR
21、GETPATH private10003A3FappsENDSTART RESOURCE filebrowseapp_loc.rssTARGETPATH resourceappsLANG SCHEADERENDSTART BITMAP filebrowseapp.mbmTARGETPATH resourceappsHEADERSOURCEPATH .gfxSOURCE C16 folder.bmpSOURCE C16 file.bmpSOURCE 8 mask.bmpENDLIBRARY euser.lib efsrv.lib cone.lib eikcore.lib eikcoctl.lib
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 手机软件 symbian 系统 开发 教程 888
限制150内