Symbian和C++ SDK开发入门之概述

来源:百度文库 编辑:神马文学网 时间:2024/05/03 03:54:45
Symbian和C++ SDK开发入门之概述2005.07.27  来自:天极网
本文介绍建立、部署和运行拥有图形用户界面(GUI)的Series 60示例应用程序的过程。
我们假定你已经安装了Series 60软件开发工具包(SDK),并安装了自己选择的集成开发环境(IDE)。这两项安装都非常容易。
本文的主题包括:
开发过程概述——在模拟器或目标设备上定义、建立和运行Series 60项目过程的详细说明,还有很多IDE的指南,以及开发者可以使用的编译选项。
Series 60模拟器——Series 60模拟器的特性和布局,同时包含了调试版本和发放版本。它包含了模拟器和真实的Series 60设备之间的相似性和不同点。
在模拟器上建立程序——如何使用不同厂商的IDE和PC命令提示符为模拟器建立HelloWorld项目。
运行模拟器-——启动模拟器的多种方法,以及如何定位和运行示例HelloWorld应用程序。
在目标设备上建立程序——如何为Series 60设备建立HelloWorld示例应用程序,把它编译为ARM二进制可执行文件。
在目标设备上部署程序——如何把应用程序的多个组件打包,选择某种方法把它传输到Series 60设备上,接下来如何定位并执行它。
开发过程的一步一步的概述将为你演示基本的步骤。这是使用Series 60 C++程序建立工具和多种IDE的快速指导。你会看到如何为Series 60模拟器建立和运行“Hello World”应用程序,以及如何在目标设备上建立、部署和运行该应用程序。本文提供了建立和运行HelloWorld示例的所有信息。
Series 60 C++软件开发工具包(SDK)
Symbian OS广泛地应用于智能电话平台,例如Series 60、Series 80和Series 90就是三种来自Nokia和UIQ(UIQ技术公司的UI平台)的UI平台。
Series 60 SDK建立在Symbian公司发布的Symbian OS C++ SDK的某种版本之上。SDK包含了大量的工具、API、类库和文档,它允许你开发新的应用程序。
作为开发人员,你可能需要使用Series 60 SDK的多个版本的(甚至来自于不同的Symbian OS UI平台的SDK)。最重要的问题是为你选择的Series 60产品选择正确的SDK版本。
Nokia或Series 60获得许可发布了用于Series 60平台特定版本开发的SDK。也就是说,每个Series 60产品都是基于特定平台版本的,SDK版本被定制成在某个平台版本上开发。特定的SDK版本也可能适合前面版本的平台。这种“向后兼容性”依赖于用作版本基础的Symbian OS版本、应用程序开发者使用的API、以及不同的平台版本之间的API所发生的改变。特殊的获得许可者也可能引入的产品专用的API,以允许开发者访问它们的Series 60与其它的产品不同的特性。例如,Siemens SX1智能电话包含了FM收音机,因此相应的SDK可以包含“附加的”API来维护收音机。为了最大化不同产品之间的兼容性,你可能希望避免使用这类产品专用的API。你甚至会选择限制对通用API的使用,只使用某种平台版本的选定范围的通用的、不会发生变化的API。
使用多个SDK
使用一个Symbian OS SDK非常容易,而且安装过程会使它立即可用。但是,开发者通常需要使用Series 60的多个不同版本的SDK,甚至于不同用户界面平台的SDK。你可以把多个SDK安装在开发的PC上,对于在哪儿安装它们、如何选择使用作出一些限制。
开发过程概述
SDK提供了基于PC平台的模拟器,因此大多数开发和测试操作都可以在没有目标硬件设备的情况下完成。我们可以为模拟器和目标硬件设备建立不同的调试(debug)或发布(release)版本的Series 60项目可执行文件(尽管目前目标设备上的调试版本还有一些限制)。此外,为目标设备进行编译的时候,还可以建立不同二进制格式(例如ARMI、ARM4和Thumb)的可执行代码。编译和链接的过程可以使用命令行工具或在多种IDE中进行。本文谈论到的IDE包括微软Visual C++ 6、Metrowerks CodeWarrior、Borland C++Builder 6移动版和Borland C++BuilderX移动版。
Symbian设计了一种用平台无关的(platform-neutral)方式描述开发项目的方法。在Symbian中会建立两个全局文件(projectname.mmp和bld.inf),其中projectname是将要开发的组件或应用程序的名称(示例项目中是HelloWorld)。这两个文件可以作为任何建立应用程序选项、IDE和平台的出发点。
bld.inf指定了将要建立的所有项目组件的名称,并且每个组件都在自己的.mmp文件中说明。这两个文件都是纯文本的,通常你只拥有一个.mmp文件,它定义了将要建立的应用程序。如果项目包含多个组件,例如包含应用程序本身和特定的函数库,那么每个组件都将拥有自己的.mmp文件。每个程序库和应用程序都有一个.mmp文件,并且每个文件名都列举在项目的bld.inf文件中。
在HelloWorld例子中有两个项目说明文件:bld.inf和helloworld.mmp。使用这两个文件可以建立我们所需要的任何特定平台的项目和命令文件。
典型情况下,你使用一个叫做bldmake的Symbian工具,把项目的两个说明文件作为输入来生成一个叫做abld.bat的命令文件;接着你可以在命令行中使用abld.bat,来执行大量的项目相关的操作。例如,abld.bat可以用于生成特定平台和特定IDE的项目组成文件(makefiles)。如果项目源代码存在,或者已经完成了,我们可以使用abld为一个或多个平台编译该项目。
由于大多数开发的项目都在某个IDE中建立和运行,你一般只需要建立适合的IDE项目文件。
在使用微软Visual C++的时候,你将在命令行中使用abld建立HelloWorld.dsp和HelloWorld.dsw项目文件。.dsw是在IDE中打开的工作空间文件,它可以指向一个或多个.dsp文件。
对于Metrowerks CodeWarrior,你既可以使用普通的方式在IDE中建立项目文件,也可以把.mmp文件直接导入IDE中。导入过程将建立CodeWarrior的特定项目(HelloWorld.mcp)所需要的文件。
类似地,Borland C++ Builder移动版IDE能够执行与Metrowerks IDE类似的导入事务,但是它是导入bld.inf文件而不是.mmp文件。例如Borland C++BuilderX将建立叫做HelloWorld.cbx的项目文件。
打开特定IDE的项目文件将允许你开发、建立、运行和调试该应用程序,并拥有IDE的全面支持。
对于宁可在命令行层次工作的开发者来说,abld也可以用于在命令提示符下进行编译和链接。
建立特定IDE项目文件的所有方法要点将在本文后面的部分谈到。此外,图1-1显示了使用两个通用的Symbian OS项目文件生成我们所需要的特定平台的项目文件(通过IDE导入选项或使用Symbian工具)。

Symbian编程VC开发环境设置2005.07.27  来自:mobisoft  芯瓣
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 、Nokia3600、Nokia 3650、Nokia 7650、Nokia N-Gage?等。
下面我们就以60系列为例,介绍SDK的安装过程。
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目录拷贝到一个机器上,然后照上述方法设定目录和环境变量就可以了。
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\6.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\6.1\Series60\Series60Ex\HelloWorld目录。在这里我们可以看到,在Symbian中,一个Project通常是按inc, src, group等目录组织,group目录里通常放的是项目文件,所以编译时要先到这里。用命令提示符模式进入刚才说的那个目录下,然后执行:
bldmake bldfiles
这个命令会在group目录下生成一个abld.bat的批处理文件,并且会在\Symbian \6.1\Series60\Epoc32\BUILD下生成\Symbian\6.1\Series60\Epoc32\BUILD\SYMBIAN\6.1\ SERIES60\SERIES60EX\HELLOWORLD\GROUP这个目录,并在最底层目录下生成一堆 .make文件。
然后,我们在同一个目录运行刚才生成的abld.bat:
abld makefile vc6
这样就会自动生成vc6的dsw文件,位置在\Symbian\6.1\Series60\Epoc32\BUILD\ SYMBIAN\6.1\ SERIES60\SERIES60EX\HELLOWORLD\GROUP\HELLOWORLD\WINS。然后我们就可以在VC6种打开这个Symbian工程了。
2 编译
我们可以直接使用SDK提供的工具编译Symbian 工程,也可以使用VC6提供的集成环境来编译转化过的Symbian 工程。编译的结果存放在\Symbian\6.1\Series60\Epoc32\ Release\wins\UDEB\Z\SYSTEM\apps目录中。
2.1使用SDK提供的工具编译Symbian 工程
我们在上一节的那个位置继续输入:
abld build wins udeb
这个命令会编译我们的程序,最后在\Symbian\6.1\Series60\Epoc32\Release\wins\UDEB目录下生成我们的helloworld,然后我们可以从开始菜单里运行模拟器的debug版,在模拟其中就可以运行helloworld了。
2.2 使用VC6编译Symbian 工程
我们直接打开运行abld makefile vc6后生成的dsw文件,VC自动装载转化过的工程。按F7便可以直接编译工程,编译结果同样放在\Symbian\6.1\Series60\Epoc32\Release\ wins\UDEB目录中。然后我们打开模拟器debug 版,就可以看到我们编译好的工程了。
3 打包
我们以SDK 1.2提供的HelloWorld为例,制作可以在手机中安装的.SIS文件:
3.1.检查程序
首先,在命令行格式下,进入HelloWorld工程mmp文件所在目录,输入bldmake bldfiles和abld build wins udeb,然后打开模拟器,检测程序有无错误。
3.2.编译工程
在程序无错误后,在命令行输入abld build armi urel 。执行这个命令之后会在目录d:\symbian\6.1\series60\epoc32\release\armi\urel生成HELLOWORLD.APP和HELLOWORLD.RSC两个文件。
3.3.建立.pkg文件
在d:\Symbian\6.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\6.1\series60\epoc32\release\armi\urel\HelloWorld.APP"-"!:\system\apps\HelloWorld\HelloWorld.app"
"d:\symbian\6.1\series60\epoc32\release\armi\urel\HELLOWORLD.rSC"-"!:\system\apps\HelloWorld\HELLOWORLD.rSC"
其中,前面"d:\symbian\6.1\series60\epoc32\release\armi\urel\HELLOWORLD.rSC"是要打包安装的文件,"!:\system\apps\HelloWorld\HELLOWORLD.rSC"是安装的目标位置。在其中要注意的是,我们在目标位置中用“!”代替了实际的盘符。这样做得好处是在用户安装的时候,手机系统会提示用户选择要安装的位置,这就给了用户更大的灵活度。另外,在Symbian 系统中,安装的应用程序默认位置是“!:\system\apps ”。
编辑好pkg文件后,保存至相应目录。
3.4.打包程序
在命令行中,转至pkg文件所在目录,运行命令makesis HelloW
Nokia S60编程环境的建立2005.06.30  来自:移动技术网
一、环境的建立
现使用VC++6.0+Symbian6.1SDK,编译样例程序HELLOWORLD在PC模拟器上运行正常,打包成*.sis安装在我的诺基亚3650手机运行正常。现将过程简述如下,希望对初学者有所帮助!
·1、操作系统:WIN2000专业版自带SP2,有网友说没必要升级,但我升级到了SP4(Service Pack 4),请到微软下载!
·2、安装Micorsoft Visual C++6.0,下载地址:http://www.big666.com/down.asp?id=1866&no=1,说是原版却是汇天中文版,反正也能使!升级到vs5下载地址:
http://download.microsoft.com/download/vstudio60ent/SP5/Wideband-Full/WIN98Me/EN-US/VS6sp5.exe,
必安的一个小文件MDAC2.8,微软的数据库引擎就象borland的bde,下载地址:
http://download.microsoft.com/download/c/d/f/cdfd58f1-3973-4c51-8851-49ae3777586f/MDAC_TYP.EXE
·3、安装JAVA运行库(Java 2 Runtime Environment,j2re)下载地址:
http://www.hongkongpost.gov.hk/product/download/ecert_software/img/j2re-1_3_1_01-win-i.exe
请不要使用1.41的版本,我开始用这个,可SISAR就说我没安装JAVA运行库,您也别浪费时间去试了!
·4、安装ActivePerl5.8,下载地址:
http://count.skycn.com/softdown.php?id=1211&url=http://cbbnhttp.skycn.net/down/ActivePerl-5.8.0.806-MSWin32-x86.msi
·5、安装S60SDK,1.2版本下载地址:
http://nds1b.forum.nokia.com/nnds/ForumDownloadServlet?id=3378&name=nS60%5Fsdk%5Fv1%5F2%2Ezip
我是这个地址,但得先注册,您也可到forum.nokia.com一步步找,很简单!
·6、最后开始整合,步骤是:
拷贝\6.1\Series60\Series60Tools\ApplicationWizard下的两个文件AvkonAppWiz.awx和AVKONAPPWIZ.HLP到\Common\MsDev98\Template下面。
运行一下VC,new 一个Project试一下,如果Project选项中有Series 60 AppWizard,就说明一切正常!
最后要说明的是以所有安装都必须在一个分区。我的都在C,分区小的话用partition magic重划一下。
二、初步试用。我就以SDK自带HELLOWORLD为例子
1、在模拟器上运行程序。
找到C:\Symbian\6.1\Series60\Series60Ex\helloworld\group文件夹,用记事本建立三个bat文件内容分别为:
·a、M.bat内容 bldmake bldfiles
·b、MWin.bat内容 abld build wins udeb
·c、M3650.bat内容 abld build armi urel
说明:第一个批处理文件功能是生成Make文件,第二个批处理文件功能是生成可在模拟器上运行的代码,第三个批处理文件功能是生成可在目标机器(诺基亚3650、7650)上运行的代码。
先执行a.bat然后再执行MWin.bat,然后打开Emulator (debug),在功能区的最后一个图标就是helloworld。运行一下,发现这个程序的功能不能再简单了吧!
2、在你的手机(诺基亚3650/7650)上运行程序
·a、请先运行上一步M3650.bat。
·b、找到C:\Symbian\6.1\Series60\Series60Ex\helloworld\sis,将helloworld.pkg复制成h.pkg(h可为其它),用记事本打开它,将最后两行内容:
"..\..\..\epoc32\release\thumb\urel\HelloWorld.APP"-"C:\system\apps\HelloWorld\HelloWorld.app"
"..\..\..\epoc32\release\thumb\urel\HelloWorld.rsc"-"C:\system\apps\HelloWorld\HelloWorld.rsc"
替换成:
"..\..\..\epoc32\release\armi\urel\HelloWorld.APP"-"C:\system\apps\HelloWorld\HelloWorld.app"
"..\..\..\epoc32\release\armi\urel\HelloWorld.rsc"-"C:\system\apps\HelloWorld\HelloWorld.rsc"
·c、在这个文件夹用记事本建立一个MS.bat文件内容为makesis h.pkg ,并执行它!这时生成h.sis,传到手机上安装试试吧!
_xyz