ehxz 发表于 2004-11-10 01:09:26

【转帖】Symbian游戏编程入门 (一) Symbian OS简介

<P><a href="http://blog.csdn.net/magussoft/archive/2004/10/29/158063.aspx" target="_blank" >http://blog.csdn.net/magussoft/archive/2004/10/29/158063.aspx</A></P>
<H1align=center>一 Symbian OS简介</H1>
<H2 ><FONT face=Arial>1.1 Symbian</FONT>操作系统的起源和现状</H2>
<Palign=left>Symbian成立于1998年,由爱立信、诺基亚、摩托罗拉和Psion共同出资筹建。1999年,松下公司加入Symbian。2000年,世界上第一款采用Symbian操作系统的手机Ericsson R380成功上市,同年,索尼公司和三洋公司获得了Symbian 的授权。 2001年, 富士通公司获得了Symbian的授权。诺基亚公司推出了Nokia 7650-基于 Symbian操作系统的2.5G手机. 同时,Nokia 9210开始公开发售。</P>
<Palign=left>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的股东之一。</P>
<Palign=left>2004年,已经发布的采用Symbian OS 的手机包括Panasonic X700, Motorola A1000, Nokia 9500, 7610 和N-Gage QD, Samsung SGH-D710。Arima公司与LG电子获得了Symbian的授权。同时,联想公司决定将Symbian操作系统用于他们最近的手机产品中。</P>
<Palign=left>  而Symbian随着手机的发展得到了越来越多的市场。在目前手机操作系统的争夺中,Symbian市场占有率达到了70%,是当之无愧的老大,而微软的windows mobile和其他操作系统一共只有30%的份额。</P>
<Palign=left>  目前,全球主流手机操作系统争夺主要有三种:</P>
<Palign=left>   1.Symbian操作系统:按持股比例多少,由诺基亚、爱立信、索尼爱立信、松下、三星、西门子共6家厂商顺序组成的Symbian联盟把持。优点是价格适中,对手机要求较低,缺点是开发人员少。</P>
<Palign=left>   2.windows mobile操作系统:优点在于可以方便地和PC上的windows进行互通,开发人员多,但缺点是授权费最高,对手机要求也高。</P>
<Palign=left>   3.Linux:全球开放的系统,任何厂家和开发商均可使用,优点是价格最低,对手机要求最低,缺点也很明显,厂家各自为营,手机之间的互通性差。
</P>
<H2 ><FONT face=Arial>1.2 Symbian</FONT>操作系统使用的手机设备</H2>
<P ><p><FONT face="Times New Roman"> </FONT></p></P>
<P >采用<FONT face="Times New Roman">Symbian</FONT>操作系统的智能手机已经推出的包括以下几款:<a href="http://www.symbian.com/phones/index.html#p910#p910" target="_blank" >Sony Ericsson P910</A>,<a href="http://www.symbian.com/phones/index.html#p900#p900" target="_blank" >Sony Ericsson P900</A>,<a href="http://www.symbian.com/phones/index.html#p800#p800" target="_blank" >Sony Ericsson P800</A>, <a href="http://www.symbian.com/phones/index.html#f900i#f900i" target="_blank" >FOMA F900i</A>,<a href="http://www.symbian.com/phones/index.html#f2051#f2051" target="_blank" >FOMA F2051</A>, <a href="http://www.symbian.com/phones/index.html#6600#6600" target="_blank" >Nokia 6600</A>,<a href="http://www.symbian.com/phones/index.html#ngage#ngage" target="_blank" >Nokia N-Gage</A>,<a href="http://www.symbian.com/phones/index.html#7610#7610" target="_blank" >Nokia 7610</A>,<a href="http://www.symbian.com/phones/index.html#qd#qd" target="_blank" >Nokia N-Gage QD</A>,<a href="http://www.symbian.com/phones/index.html#3660#3660" target="_blank" >Nokia 3660/3620</A>,<a href="http://www.symbian.com/phones/index.html#f2102v#f2102v" target="_blank" >FOMA F2102V</A>, <a href="http://www.symbian.com/phones/index.html#7650#7650" target="_blank" >Nokia 7650</A>,<a href="http://www.symbian.com/phones/index.html#3650#3650" target="_blank" >Nokia 3650/3600</A>,<a href="http://www.symbian.com/phones/index.html#9290#9290" target="_blank" >Nokia 9290 Communicator</A>,<a href="http://www.symbian.com/phones/index.html#9210#9210" target="_blank" >Nokia 9210 Communicators</A>,<a href="http://www.symbian.com/phones/index.html#x#x" target="_blank" >Sendo X</A>,<a href="http://www.symbian.com/phones/index.html#A290#A290" target="_blank" >Motorola A920</A>,<a href="http://www.symbian.com/phones/index.html#a925#a925" target="_blank" >Motorola A925</A>,<a href="http://www.symbian.com/phones/index.html#sx1#sx1" target="_blank" >Siemens SX1</A>。</P>
<P ><p><FONT face="Times New Roman"> </FONT></p></P>
<P >即将推出的还有:<a href="http://www.symbian.com/phones/index.html#u300#u300" target="_blank" >Arima U300 </A>,<a href="http://www.symbian.com/phones/index.html#6670#6670" target="_blank" >Nokia 6670</A>,<a href="http://www.symbian.com/phones/index.html#6630#6630" target="_blank" >Nokia 6630 </A>,<a href="http://www.symbian.com/phones/index.html#6260#6260" target="_blank" >Nokia 6260 </A>,<a href="http://www.symbian.com/phones/index.html#9500#9500" target="_blank" >Nokia 9500</A>,<a href="http://www.symbian.com/phones/index.html#9300#9300" target="_blank" >Nokia 9300</A>,<a href="http://www.symbian.com/phones/index.html#6620#6620" target="_blank" >Nokia 6620</A>,<a href="http://www.symbian.com/phones/index.html#p30#p30" target="_blank" >BenQ P30</A>,<a href="http://www.symbian.com/phones/index.html#sgh-710#sgh-710" target="_blank" >Samsung SGH-D710</A>,<a href="http://www.symbian.com/phones/index.html#x700#x700" target="_blank" >Panasonic X700</A>,<a href="http://www.symbian.com/phones/index.html#a1000#a1000" target="_blank" >Motorola A1000</A>,,<a href="http://www.symbian.com/phones/index.html#F900iT#F900iT" target="_blank" >FOMA F900iT </A> <a href="http://www.symbian.com/phones/index.html#F800ies#F800ies" target="_blank" >FOMA F880iES</A>,<a href="http://www.symbian.com/phones/index.html#F900iC#F900iC" target="_blank" >FOMA F900iC</A>。
</P>
<Palign=left>    </P>
<H2 ><FONT face=Arial>1.3 Symbian OS</FONT>的特点</H2>
<Palign=left>Symbian OS具有以下6大特点:
1、操作系统是运行在ROM上的 <p></p></P>
<Palign=left>2、系统是运行在电池驱动的设备上的 <p></p></P>
<Palign=left>3、完全是面向对象的 <p></p></P>
<Palign=left>4、基于组件的设计 <p></p></P>
<Palign=left>5、被设计成确保用户的数据不会丢失 <p></p></P>
<Palign=left>6、简单的UI系统 <p></p></P>
<Palign=left>Symbian 是真正的微核操作系统,所谓“微核”,就是说操作系统 只有很小的一部分是运行在最高优先级的,其他的功能都是以Client-Server的方式提供。下面是Symbian系统的内部结构图: <p></p></P>
<Palign=center>应用层:</P>
<Palign=center><FONT face="Times New Roman">Shell, OPL, </FONT>及其他应用程序</P>
<Palign=center><FONT face="Times New Roman">=================================================================</FONT></P>
<Palign=center>系统层:</P>
<Palign=center><FONT face="Times New Roman">Dialogs, Menu, Toolbar, Icons, Resources, JavaVM, Grid, Rich Text,Edit Control,List Control, Application Framework, Jave Class Libraries. =================================================================</FONT></P>
<Palign=center>服务层:</P>
<Palign=center><FONT face="Times New Roman">Window Server, Process Server, Socket Server, Sound Server, Wireless Server, Database Server, File Server, Alarm Server, Comms Server, </FONT>以及无线协议</P>
<Palign=center><FONT face="Times New Roman">=================================================================</FONT></P>
<Palign=center>内核:</P>
<Palign=center><FONT face="Times New Roman">euser.dll, ekern.exe, </FONT>服务控制(<FONT face="Times New Roman">supervisor server</FONT>),<FONT face="Times New Roman"> HAL</FONT>(设备抽象层)</P>
<Palign=center><FONT face="Times New Roman">=================================================================</FONT></P>
<Palign=center>驱动程序层:</P>
<Palign=center>包括音频驱动,显示驱动,<FONT face="Times New Roman">MMC</FONT>驱动,键盘驱动,串并口驱动<FONT face="Times New Roman"> </FONT>,<FONT face="Times New Roman">DSP</FONT>驱动,时钟控制器驱动等等</P>
<Palign=left></P>

ehxz 发表于 2004-11-10 01:09:58

Symbian游戏编程入门 (二)开发环境入门

<H1align=center>二.开发环境入门</H1>
<H2 ><FONT face=Arial>2.1 </FONT>安装<FONT face=Arial>SDK</FONT>及<FONT face=Arial>VC<p></p></FONT></H2>
<P >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™等。</P>
<P >下面我们就以60系列为例,介绍SDK的安装过程。</P>
<H3 >2.1.1 安装SDK<p></p></H3>
<P >第一步,到Nokia论坛注册,下载最新的SDK。Nokia 网站提供的Series 60 SDK for Symbian OS Nokia Edition SDK最新版本是v1.2,Series 60 SDK for Symbian OS的最新版本是v2.1。下载网址:<a href="http://www.forum.nokia.com/main/0,6566,034-4,00.html" target="_blank" ><FONT color=#006699>http://www.forum.nokia.com/main/0,6566,034-4,00.html</FONT></A></P>
<P >第二步,到<a href="http://www.activestate.com/" target="_blank" ><FONT color=#006699>http://www.activestate.com</FONT></A> 网站下载最新的Active Perl Script 安装程序。到<a href="http://www.java.com/en/download/manual.jsp" target="_blank" ><FONT color=#006699>http://www.java.com/en/download/manual.jsp</FONT></A> 下载最新的J2RE。</P>
<P >第三步:安装SDK,推荐为Symbian开发单独建一个目录,例如d:\Symbian而不是使用C:\program files等这样的目录。<p></p></P>
<P >第四步:安装Active Perl和J2RE,安装到默认目录即可。<p></p></P>
<P >第五步:检查环境变量设定。打开系统环境变量tab,然后看看有没有EPOCROOT,如果有的话,把它手动改成“\” 。改完之后应该是这个样子的: <p></p></P>
<P >EPOCROOT = \<p></p></P>
<P >然后,在系统PATH中加入 \epoc32\tools目录以及\epoc32\gcc\bin目录就可以了。<p></p></P>
<P >实际上,Symbian SDK根本不用安装,直接把epoc32目录拷贝到一个机器上,然后照上述方法设定目录和环境变量就可以了。<p></p></P>
<H3 >2.1.2 配置VC<p></p></H3>
<P >如果我们使用的是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无法正确建立工程。</P>如果要直接在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 以后,确认。
   
<P >一路“<FONT face="Times New Roman">Next</FONT>”,一个最简单的<FONT face="Times New Roman">Symbian</FONT>应用程序就建立好了。
</P>
<P >如果要将已经建立好的工程导入到<FONT face="Times New Roman">VC6.0</FONT>中,比如我们将<FONT face="Times New Roman">SDK</FONT>中的例子<FONT face="Times New Roman">HelloWorld</FONT>转换成一个<FONT face="Times New Roman">VC6</FONT>的项目,我们首先进入<FONT face="Times New Roman">\Symbian\6.1\Series60\Series60Ex\HelloWorld</FONT>目录。在这里我们可以看到,在<FONT face="Times New Roman">Symbian</FONT>中,一个<FONT face="Times New Roman">Project</FONT>通常是按<FONT face="Times New Roman">inc, src, group</FONT>等目录组织,<FONT face="Times New Roman">group</FONT>目录里通常放的是项目文件,所以编译时要先到这里。用命令提示符模式进入刚才说的那个目录下,然后执行:</P>
<P ><FONT face="Times New Roman">bldmake bldfiles</FONT></P>
<P >这个命令会在<FONT face="Times New Roman">group</FONT>目录下生成一个<FONT face="Times New Roman">abld.bat</FONT>的批处理文件,并且会在<FONT face="Times New Roman">\Symbian \6.1\Series60\Epoc32\BUILD</FONT>下生成<FONT face="Times New Roman">\Symbian\6.1\Series60\Epoc32\BUILD\SYMBIAN\6.1\ SERIES60\SERIES60EX\HELLOWORLD\GROUP</FONT>这个目录,并在最底层目录下生成一堆<FONT face="Times New Roman"> .make</FONT>文件。</P>
<P >然后,我们在同一个目录运行刚才生成的<FONT face="Times New Roman">abld.bat</FONT>:<p></p></P>
<P ><FONT face="Times New Roman">abld makefile vc6</FONT></P>
<P >这样就会自动生成<FONT face="Times New Roman">vc6</FONT>的<FONT face="Times New Roman">dsw</FONT>文件,位置在<FONT face="Times New Roman">\Symbian\6.1\Series60\Epoc32\BUILD\ SYMBIAN\6.1\ SERIES60\SERIES60EX\HELLOWORLD\GROUP\HELLOWORLD\WINS</FONT>。然后我们就可以在<FONT face="Times New Roman">VC6</FONT>种打开这个<FONT face="Times New Roman">Symbian</FONT>工程了。</P>
<H2 ><FONT face=Arial>2.2 </FONT>编译<p></p></H2>
<P >我们可以直接使用<FONT face="Times New Roman">SDK</FONT>提供的工具编译<FONT face="Times New Roman">Symbian </FONT>工程,也可以使用<FONT face="Times New Roman">VC6</FONT>提供的集成环境来编译转化过的<FONT face="Times New Roman">Symbian </FONT>工程。编译的结果存放在<FONT face="Times New Roman">\Symbian\6.1\Series60\Epoc32\ Release\wins\UDEB\Z\SYSTEM\apps</FONT>目录中。</P>
<H3 ><FONT face="Times New Roman">2.2.1</FONT>使用<FONT face="Times New Roman">SDK</FONT>提供的工具编译<FONT face="Times New Roman">Symbian </FONT>工程<p></p></H3>
<P >我们在上一节的那个位置继续输入:<p></p></P>
<P >abld build wins udeb<p></p></P>
<P >这个命令会编译我们的程序,最后在<FONT face="Times New Roman">\Symbian\6.1\Series60\Epoc32\Release\wins\UDEB</FONT>目录下生成我们的<FONT face="Times New Roman">helloworld</FONT>,然后我们可以从开始菜单里运行模拟器的<FONT face="Times New Roman">debug</FONT>版,在模拟其中就可以运行<FONT face="Times New Roman">helloworld</FONT>了。</P>
<H3 ><FONT face="Times New Roman">2.2.2 </FONT>使用<FONT face="Times New Roman">VC6</FONT>编译<FONT face="Times New Roman">Symbian </FONT>工程<p></p></H3>
<P >我们直接打开运行<FONT face="Times New Roman">abld makefile vc6</FONT>后生成的<FONT face="Times New Roman">dsw</FONT>文件,<FONT face="Times New Roman">VC</FONT>自动装载转化过的工程。按<FONT face="Times New Roman">F7</FONT>便可以直接编译工程,编译结果同样放在<FONT face="Times New Roman">\Symbian\6.1\Series60\Epoc32\Release\ wins\UDEB</FONT>目录中。然后我们打开模拟器<FONT face="Times New Roman">debug </FONT>版,就可以看到我们编译好的工程了。</P>
<P ><BRclear=all><BRclear=all></P>
<P ><p> </p></P>
<H2 ><FONT face=Arial>2.3 </FONT>打包<p></p></H2>
<P >我们以SDK 1.2提供的HelloWorld为例,制作可以在手机中安装的.SIS文件:<p></p></P>
<H3 >2.3.1.检查程序<p></p></H3>
<P >首先,在命令行格式下,进入HelloWorld工程mmp文件所在目录,输入bldmake bldfiles和abld build wins udeb,然后打开模拟器,检测程序有无错误。<p></p></P>
<H3 >2.3.2.编译工程<p></p></H3>
<P >在程序无错误后,在命令行输入abld build armi urel 。执行这个命令之后会在目录d:\symbian\6.1\series60\epoc32\release\armi\urel生成HELLOWORLD.APP和HELLOWORLD.RSC两个文件。</P>
<H3 >2.3.3.建立.pkg文件<p></p></H3>
<P >在d:\Symbian\6.1\Series60\Series60Ex\helloworld\sis用记事本建立或者修改工程的pkg文件,内容如下:</P>
<P >; HelloWorld.pkg</P>
<P >;</P>
<P >;Language - standard language definitions</P>
<P >&amp;EN</P>
<P ><p> </p></P>
<P >; standard SIS file header</P>
<P >#{"HelloWorld"},(0x10005B91),1,0,0</P>
<P ><p> </p></P>
<P >;Supports Series 60 v 1.2</P>
<P >(0x101F8202), 0, 0, 0, {"Series60ProductID"}</P>
<P >;</P>
<P >"d:\symbian\6.1\series60\epoc32\release\armi\urel\HelloWorld.APP"-"!:\system\apps\HelloWorld\HelloWorld.app"</P>
<P >"d:\symbian\6.1\series60\epoc32\release\armi\urel\HELLOWORLD.rSC"-"!:\system\apps\HelloWorld\HELLOWORLD.rSC"</P>
<P >其中,前面"d:\symbian\6.1\series60\epoc32\release\armi\urel\HELLOWORLD.rSC"是要打包安装的文件,"!:\system\apps\HelloWorld\HELLOWORLD.rSC"是安装的目标位置。在其中要注意的是,我们在目标位置中用“!”代替了实际的盘符。这样做得好处是在用户安装的时候,手机系统会提示用户选择要安装的位置,这就给了用户更大的灵活度。另外,在Symbian 系统中,安装的应用程序默认位置是“!:\system\apps ”。<p></p></P>
<P >编辑好pkg文件后,保存至相应目录。<p></p></P>
<H3 >2.3.4.打包程序<p></p></H3>
<P >在命令行中,转至pkg文件所在目录,运行命令makesis HelloWorld.pkg。之后我们就在同一目录下得到了打包好的.sis文件。</P>
<P ><BRclear=all> </P>
<H2 ><FONT face=Arial>2.4 </FONT>手机测试<p></p></H2>
<P >将打包好地.sis文件上传至手机中,然后在手机的应用程序管理器中就可以看到我们打包好的文件。选择“安装”命令,系统会提示用户要安装的位置,选择安装位置后,我们制作的应用程序就安装到手机中了。</P>
<P >我们回到手机的主菜单,就会发现新安装的HelloWorld 应用程序。打开运行,结果和在模拟器中看到的基本是一样的。</P>
<P ></P>

cnahwhtj 发表于 2005-11-14 16:12:05

好文章 支持!!!
页: [1]
查看完整版本: 【转帖】Symbian游戏编程入门 (一) Symbian OS简介

免责声明:
本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Admin@SybaseBbs.com