symbian系统开发教程.doc

上传人:sk****8 文档编号:3534916 上传时间:2019-06-02 格式:DOC 页数:25 大小:373KB
下载 相关 举报
symbian系统开发教程.doc_第1页
第1页 / 共25页
symbian系统开发教程.doc_第2页
第2页 / 共25页
symbian系统开发教程.doc_第3页
第3页 / 共25页
symbian系统开发教程.doc_第4页
第4页 / 共25页
symbian系统开发教程.doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

1、symbian 系统开发教程(一)第一章:Symbian OS 简介作者:谢兴 1.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 应用程序打下

3、一个良好的基础。1.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. 准备工作首先您需要有一台电脑能创建并测试在 Symbi

5、an OS 手机上运行的应用程序。这也就是说电脑要有一个较快的 CPU 处理器(至少 1.5GHz)和相当大的 RAM(512MB 或更大)以及一个大容量硬盘(至少有 2GB 剩余空间) 。该电脑必须能运行 Windows 2000 或 XP 操作系统。然后您需要开发软件来帮助您编写代码并进行编译。这可通过包含编辑程序(editor)、编译程序(compiler) 和链接程序(linker) 的集成开发环境(IDE) 来完成。在这推荐两种适合Symbian OS 程序开发的 IDE。对于开发非商业用途的 Symbian OS 应用程序,Nokia 的Carbide.c+ Express 版本是

6、最理想不过了,它建立在 Eclipse IDE 的基础上,供免费下载。对于使用 Visual Studio.NET 2003 的程序员来说,也可选择 Carbide.vs。这是一套基于Microsoft Visual Studio .NET2003 IDE 的工具,用于开发 S60 和 Series 80 软件。您还需要软件开发包(SDK), 专门用来编写和创建 Symbian OS 应用程序。基于不同手机类型,有不同版本的 SDK 供选择,具体使用哪个 SDK 请见以下几页的说明。如果您还没有决定具体的手机类型或平台而无法确定选择哪个 SDK,我们建议您一开始可使用 S60 和 UIQ SD

7、K。如果您想为最新款的手机(如 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 上,应用程序必须稍加修改并进行再次编译。

8、接下来您需要下载您所选择的 IDE 和 SDK。以下章节将向您介绍如何在互联网上找到这些工具。1.4. S60 平台S60 平台是一个完整的应用程序包(package) ,用户接口和构建于 Symbian 系统技术的开发工具。S60 用户接口 (UI) 经过精心的设计,方便用户使用,便于单手操作。从用户的角度看来,该平台最大的特点在于它的用户界面:大的彩屏和各种输入键(两个软件键, 五方位的导航键,和几个专用的键)。 单手操作和大彩屏的优点能使应用程序开发者提供更有吸引力的内容和提供更方便的导航功能,同时增加用户使用手机时的愉快体验。目前,s60 平台上已经存在各种各样的应用软件 . 其中最重

9、要的有:高级智能电话应用程序,个人信息管理应用程序(PIM)(例如, 电话簿,日历, 相册), 短信, 网页浏览, 电子邮件和应用程序安装引擎,它能够让您自由地从电脑上下载软件到您的手机上。 S60 第三版本支持两种不同的外观: QVGA Portrait (240x320) QVGA Landscape (320x240)1.5. 如何选择 SDK基于 Symbian OS 的手机外型各异,用户界面(UI) 也不尽相同。为了给特定的用户界面编写应用程序,您必须选择特定的 SDK(尽管应用程序的引擎往往与用户界面无关) 。大部分运行 Symbian OS 的手机采用的是 S60 用户界面并使用

10、键盘操作。S60 已经发布了一系列版本,选择正确的 S60 SDK 和相应的 Symbian OS 十分重要:S60 第三版 Symbian OS v9.1S60 第二版功能包 3 Symbian OS v8.1S60 第二版功能包 2 Symbian OS v8.0aS60 第二版功能包 1 升级 Symbian OS v7.0sS60 第二版 Symbian OS v7.0sS60 第一版 Symbian OS v6.1您可在以下网站查到每一系列 S60 SDK 所包含的手机型号列表: Symbian OS 的手机采用笔控输入的 UIQ 用户界面。以下网站列出了基于各版本的 UIQSDK

11、的手机机型 Nokia 的网站下载 SDK 1.6.Carbide.c+ 集成开发环境( IDE) 前面已经提到了各种集成开发环境,这里我们主要介绍 Carbide.c+的集成开发环境。Carbide.c+的集成开发环境 (IDE)基于 Eclipse 集成开发环境版本 3。增添了能使 Eclipse 处理symbian c+ 源文件和编译 Symbian 工程的插件。这些插件分为以下几类: C/C+开发工具箱( CDT) 。这是一个使得 Eclipse 管理和编译 symbian 工程的工具集 Symbian 插件。这些插件由 symbian 开发,使得 eclipse 能够处理 Ecli

12、pse C+的概念,同时提供对 Symbian 操作系统软件开发工具箱和 Symbian 工具链的支持。 Nokia 插件。由 Nokia 开发,提供对 Symbian 操作系统工具箱的更多支持。插件实现了 C+编译器,symbian 系统的调试器,并且加入了 Carbide.c+系列产品的商业版本的高级特性。很明显,因为 Carbide.c+是基本的 Eclipse 集成开发环境,开发者可以进一步定制其它的商业或免费的插件,比如说,一个版本控制系统,一个 UML 建模系统等。Carbide.c+有自己的安装程序,所以安装比较简单。在启动这个产品之后,用户看到的集成开发环境和 Eclipse

13、开发环境十分类似,如下图所示,因为 Carbide.c+是设计用于处理 symbian c+应用程序的,所以其集成开发环境的左边显示的是 c/c+工程视图,这个视图用于显示构成一个典型 symbian c+工程源文件、头文件,资源文件。关于 eclipse 平台和插件的相关知识,不是本教程所关心的重点, 有兴趣的读者可参考相关的其他著述。1.7. 开发环境的构建 第一步:安装 JDK5.0 第二步:安装 ActivePerl(需要 5.6.1 以上版本) 第三步:安装 Symbian sdk 第三步:安装 Carbide.c+1.2 版本。 Carbide 有不同的版本。 其中 Express

14、 版本是免费安装的,但不支持 UI 设计功能,也不支持在手机上调试的功能。注意:这几个文件需要放在一个目录下面。否则,在编译程序的过程中,可能会出现难以预料的错误。1.8. 文件目录的布局在动手写代码之前,我们有必要了解工程的文件组织结构。如果您看过 SDK 中的例子工程,或是用 IDE 的工程向导创建一个 UI 应用程序,您就会了解一个典型的工程文件结构布局是怎样的。当工程增长到一定程度的时候,好的文件目录布局将有助于帮助跟踪代码的变更。工程中包含了各种不同类型的文件,包括源文件和其他类型的文件,我们通常将这些文件分开来存放,下面我们简短地介绍这些文件。资源文件, 例如 .bmp 或 .wa

15、v 文件, 通常被单独地存放在一个目录下面。 测试代码也会和产品代码分开来存放。所以,一个典型的 UI 应用程序会有如下这样一些目录结构和文件。 文件目录 存放文件类型 data (S60) 存放资源规格文件(.rss) Gfx (S60) 应用程序资源文件,例如图片和声音文件。 Group 该目录存放工程文件 (例如 .mmp 和 bld.inf) Images (UIQ) 应用程序资源文件,例如图片。 Inc 该目录存放头文件 (typically .h, .hrh 和 .inl) rsrc (UIQ) 存放资源规格文件 (.rss, .ra) src 该目录存放 .CPP 文件 Test

16、 存放测试代码 在 group 目录下面,有两个重要的文件,这两个文件都与创建 Symbian 工程相关:如果,需要在命令行编译工程,必须创建如下两个工程文件: 工程定义文件 (.mmp file),这个文件对要编译的工程进行描述,并定义要构建的资源文件。该文件是环境无关的,编译工具用它来生成针对各种目标环境下的 make files文件。 组件描述文件(bld.inf), 这个文件列出了一组相关的工程, 并包含一些编译指令. CodeWarrior 和 Carbide.c+ 都能够导入工程定义文件,并用它来在 IDE 环境下创建工程。下面详细描述这些文件的格式。 组件(component)描

17、述文件: bld.inf Bld.inf 是一个文本文件。它的内容非常繁琐,主要包括工程定义文件 mmp 和其他的任何编译工具所需要的文件。该文件分为多个节,其中,mmp 文件列表在 PRJ_MMPFILES 节中。即使一个工程文件只包含一个 mmp 文件,bld 文件仍然是必须的。下面是一个典型的bld.inf 文件。 / 目标平台 PRJ_PLATFORMS WINSCW GCCE/ 从工程中输出的文件 PRJ_EXPORTS / None/ 工程定义文件PRJ_MMPFILES filebrowseapp.mmp/ 工程定义文件(测试代码用)PRJ_TESTMMPFILES .testF

18、ileBrowseTest.mmp 在上面的例子中, 如 PRJ_PLATFORMS 声明所示,默认情况下工程被编译为针对 WINSCW平台和 GCC-E 平台的执行代码。 当您用 CodeWarrior 为模拟器编译代码的时候,您使用的是 WINSCW 平台, WINSCW 的来由是,最终的代码运行于 Windows, 单线程模式(in a Single process),并用 CodeWarrior 编译。 平台的名称用来标识最终的可执行代码所运行的那个平台。 所以, 当上面的代码被编译完后,可执行程序被放在 epoc32releasewinscw 目录下面(根据是调试(debug)版本还

19、是释放(release)版本,被放在 udeb 或 urel 子目录下面 )。 如果代码是针对手机硬件的,需要选用 GCCE 平台。这时,最终的可执行代码被放到epoc32releasegcce目录下面。 工程描述文件 (mmp) mmp 文件中的每个语句都以一个关键字开头。下面是一个典型的 mmp 文件的例子。/ filebrowseapp.mmpTARGET filebrowseapp.exeTARGETTYPE exeUID 0x100039CE 0xE80000A6VENDORID 0#ifdef _WINSCW_CAPABILITY AllFiles / AllFiles on em

20、ulator since no signing is required #elseCAPABILITY NONE / No capabilities on hardware - otherwise SIS file signing is required#endifSOURCEPATH .srcSOURCE FileBrowseAppUi.cppSOURCE FileBrowseDocument.cppSOURCE FileBrowseApplication.cppSOURCE FileBrowseBaseView.cppSOURCE RFsEngine.cppSYSTEMINCLUDE ep

21、oc32includeUSERINCLUDE .incSOURCEPATH .dataSTART RESOURCE filebrowseapp.rssTARGETPATH resourceappsHEADERENDSTART RESOURCE filebrowseapp_reg.rssTARGETPATH private10003A3FappsENDSTART RESOURCE filebrowseapp_loc.rssTARGETPATH resourceappsLANG SCHEADERENDSTART BITMAP filebrowseapp.mbmTARGETPATH resource

22、appsHEADERSOURCEPATH .gfxSOURCE C16 folder.bmpSOURCE C16 file.bmpSOURCE 8 mask.bmpENDLIBRARY euser.lib efsrv.lib cone.lib eikcore.lib eikcoctl.lib eikdlg.lib egul.lib eikctl.lib apparc.libLIBRARY bafl.libLIBRARY avkon.lib CommonEngine.lib 下面简单地描述每个关键字的作用: TARGET 该关键字指明了目标文件(exe 或 dll 文件)的名称。 TARGETT

23、YPE 该关键字指明了工程所产生的目标文件的类型,在上面的例子中,我们生成了一个可执行文件。在大多数情况下,目标文件的类型为 dll,exe 或是其他的插件(plugin) 。 UID 目标(通常指可以执行的.exe 或.dll 文件)具有三个 UID,这些 UID 用来标识组件,第一个UID 是无须指定的。因为它是编译工具根据目标的类型自动分配的。所以这里所指定的实际上是 UID2,这个值进一步指明了目标的类型,上面例子中,值(0x100039CE)指明了目标文件是一个应用程序,Symbian 系统使用这个值来标识所有的应用程序。下一个指定的 UID 对每个应用程序来说都是唯一的。它标识了这

24、个应用程序的注册资源文件和该程序的安装包文件.pkg。所以为了保证这个值的唯一性, 您必须要向 Symbian 申请这个 UID,由他们负责从数据库中为您的应用程序分配一个 UID。可到 Symbian 的网站上了解更多的相关信息。有一些 UID 的值是用来测试的,例如 SDK 中的例子:文件系统浏览应用程序( filesystem browser)所使用的 UID 为 0xE80000A6, 您也可以在测试您的应用程序的时候使用这个值,但注意,不要在您的最终产品中使用它。 SECUREID 这是个可选的关键了,上面的例子中没有出现。该关键字为应用程序定义了安全标示符,用来指明这个程序可以访问

25、哪个私有的目录。如果该关键字没有使用,用 UID3 来代替该关键字。 VENDORID 该关键字是在 Symbian OS v9.1 版本新增的。用来指定软件提供商的 ID 号。该关键字不是必须的,可省略。 CAPABILITY 这是 Symbian OS 9.1 新增加的关键字。该关键字指明了应用程序的权限(或称作能力,如:查看系统目录) 。大上面的例子中,应用程序在模拟器上和在手机上被分配了不同的能力(capability) 。在模器上,该程序被赋予了 AllFiles 的权限, 比在手机上运行时,能看到更多的私有文件系统的区域。没有被赋予 AllFiles 能力的程序不能看到Sym 目录下的内容。应用程序只有在经过认证(certificate)以后才能获得 AllFiles 的能力。关于认证和签名的内容,我们在这一章的后面会讲到。 SOURCEPATH 和 SOURCE SOURCE 关键字指明了有哪些源文件和资源文件需要编译,而 SOURCEPATH 关键字指明

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 实用文档资料库 > 策划方案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。