没有合适的资源?快使用搜索试试~ 我知道了~
详细的描述,symbian与vc++的配置过程,非常的好,希望大家看一下 。。。。。。。。
资源详情
资源评论
资源推荐
第一章:Symbian OS 简介
作者:谢兴 enigma19971@hotmail.com
---转载需注明出处
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.7. 开发环境的构建
Ø 第一步:安装 JDK5.0
Ø 第二步:安装 ActivePerl(需要 5.6.1 以上版本)
Ø 第三步:安装 Symbian sdk
Ø 第三步:安装 Carbide.c++1.2 版本。 Carbide 有不同的版本。 其中 Express 版本是免
费安装的,但不支持 UI 设计功能,也不支持在手机上调试的功能。
注意:这几个文件需要放在一个目录下面。否则,在编译程序的过程中,可能会出现难以
预料的错误。
1.8. 文件目录的布局
在动手写代码之前,我们有必要了解工程的文件组织结构。如果您看过 SDK 中的例子工
程,或是用 IDE 的工程向导创建一个 UI 应用程序,您就会了解一个典型的工程文件结构布
局是怎样的。
当工程增长到一定程度的时候,好的文件目录布局将有助于帮助跟踪代码的变更。工程
中包含了各种不同类型的文件,包括源文件和其他类型的文件,我们通常将这些文件分开
来存放,下面我们简短地介绍这些文件。
资源文件, 例如 .bmp 或 .wav 文件, 通常被单独地存放在一个目录下面。 测试代码也会和
产品代码分开来存放。所以,一个典型的 UI 应用程序会有如下这样一些目录结构和文件。
文件目录
存放文件类型
data (S60)
存放资源规格文件(.rss)
Gfx (S60)
应用程序资源文件,例如图片和声音文件。
Group
该目录存放工程文件 (例如 .mmp 和 bld.inf)
Images (UIQ)
应用程序资源文件,例如图片。
Inc
该目录存放头文件 (typically .h, .hrh 和 .inl)
rsrc (UIQ)
存放资源规格文件 (.rss, .ra)
src
该目录存放 .CPP 文件
Test
存放测试代码
在 group 目录下面,有两个重要的文件,这两个文件都与创建 Symbian 工程相关:
如果,需要在命令行编译工程,必须创建如下两个工程文件:
· 工程定义文件 (.mmp file),这个文件对要编译的工程进行描述,并定义要构建的资源
文件。该文件是环境无关的,编译工具用它来生成针对各种目标环境下的 make files 文件。
· 组件描述文件(bld.inf), 这个文件列出了一组相关的工程, 并包含一些编译指令.
CodeWarrior 和 Carbide.c++ 都能够导入工程定义文件,并用它来在 IDE 环境下创建工程。
下面详细描述这些文件的格式。
Ø 组件(component)描述文件: 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
..\test\FileBrowseTest.mmp
在上面的例子中, 如 PRJ_PLATFORMS 声明所示,默认情况下工程被编译为针对 WINSCW
平台和 GCC-E 平台的执行代码。 当您用 CodeWarrior 为模拟器编译代码的时候,您使用的
是 WINSCW 平台, WINSCW 的来由是,最终的代码运行于 Windows, 单线程模式(in a
Single process),并用 CodeWarrior 编译。
平台的名称用来标识最终的可执行代码所运行的那个平台。 所以, 当上面的代码被编译
完后,可执行程序被放在 \epoc32\release\winscw 目录下面(根据是调试(debug)版本还是
释放(release)版本,被放在 \udeb 或 \urel 子目录下面)。
如果代码是针对手机硬件的,需要选用 GCCE 平台。这时,最终的可执行代码被放到\
epoc32\release\gcce\目录下面。
Ø 工程描述文件 (mmp)
mmp 文件中的每个语句都以一个关键字开头。下面是一个典型的 mmp 文件的例子。
// filebrowseapp.mmp
TARGETfilebrowseapp.exe
TARGETTYPEexe
UID0x100039CE 0xE80000A6
VENDORID0
#ifdef __WINSCW__
CAPABILITYAllFiles//AllFiles on emulator since no signing is required
#else
CAPABILITYNONE//No capabilities on hardware - otherwise SIS file signing is required
#endif
SOURCEPATH..\src
SOURCEFileBrowseAppUi.cpp
SOURCEFileBrowseDocument.cpp
SOURCEFileBrowseApplication.cpp
SOURCEFileBrowseBaseView.cpp
SOURCERFsEngine.cpp
SYSTEMINCLUDE\epoc32\include
USERINCLUDE..\inc
SOURCEPATH..\data
START RESOURCEfilebrowseapp.rss
TARGETPATH\resource\apps
HEADER
END
START RESOURCEfilebrowseapp_reg.rss
TARGETPATH\private\10003A3F\apps
END
START RESOURCEfilebrowseapp_loc.rss
TARGETPATH\resource\apps
LANGSC
HEADER
剩余30页未读,继续阅读
jioiu
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0