伯乐共勉

讨论。NET专区
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Symbian OS 开发初级手册 (1) Introduction

Posted on 2007-02-09 17:02  伯乐共勉  阅读(286)  评论(0编辑  收藏  举报
Symbian OS是当前应用最为广泛的smart phone操作系统。 Nokia,Panasonic,Siemens, Sony Ericsson的很多手机都是基于这个系统的。 可惜国内关于Symbian OS 开发的资料实在很少。 所以我打算根据自己的(浅薄)的 经验写一套初级教程,让更多的人了解Symbian OS.

     说起Symbian OS, 大概很多人都会想到Nokia Series 60, 80等等。 每一个symbian 联盟手机厂商都会在纯粹的 Symbian OS上面添加自己的东西。 Series 60 是Nokia 的一个非常流行的软件开发包,7650, 3650, N-gage等等 都基于它。我在这里使用的例子都可运行于Series 60. 但是我在这里讲的概念是纯粹的Symbian OS 而不是series 60, 这样的 好处在于:有了这个基础, 我们可以为任何一个使用Symbian OS 的手机开发, 而不会局限于某些Series 60等特殊的API。这样可以使 你的开发成果能够运行于更多的设备上。

   那么首先我们需要Series 60 SDK, 在http://www.forum.nokia.com/main/0,6566,034-4,00.html 下载,安装sdk,详细步骤我就不在这里描述了。 如果有什么问题可以在这里问我。
安装之后,要测试基本路径是不是设置好了。 打开一个命令行窗口,输入 epoc , 如果你看到模拟器运行, 就说明已经安装好了。如果没有的话,请在提问的时候提供错误信息。 

    有了SDK,我们就已经可以开始开发了! 但是开发环境是很重要的, 任何Symbian OS程序都要涉及多个文件,Symbain 建议使用  Metrowork Codewarrior, 不过考虑VC6的普及程度应该更高,我在这里使用Visual C++ 6.0. 你也可以使用 VC. Net, 不过目前中文sdk不支持vc7, 你需要下载英文版的。 以后命令行出现vc6的时候你就要使用vc7。

   在讲解我们的第一个hello world程序之前, 我要简单说一下Symbian OS 工程的文件结构, 我们一共需要创建4种文件:
bld.inf 配置文件
*.mmp 工程文件
*.cpp 源代码文件
*.h 头文件

   我们的hello world项目中, bld.inf 如下:
   PRJ_MMPFILES
   HelloWorld.mmp
   只有简单的两行, 意思是: 这个配置文件将编译的工程有:Helloworld.mmp. Helloworld.mmp 稍微复杂一些,暂时不在这里讲解,你只需要知道它定义工程中都包括哪些源文件,哪些头文件,哪些lib文件就可以了。

    基本的helloworld例子C: /Symbian7.0s/Series60_v21_C/examples/Basics/helloworld. 如果你的安装路径不同,需要相应改 变。 由于实在很简单, 这大概是所有例子中唯一没有头文件的项目。Helloworld.cpp 如下:

#include "CommonFramework.h"
LOCAL_C void doExampleL()
{
  _LIT(KHelloWorldText,"Hello world! ");
  console->Printf(KHelloWorldText);
}
 
   在我们讲解Descriptor之前你只需要知道_LIT把 "Hello world! "这个普通字符串转换成了Symbian OS的字符串格式, 并储存在变量KHelloWorldText当中。 console->Printf(..)就是向命令行打印这个字符串。

  那 么现在我们需要编译这个工程,在命令行中进入examples/Basics/helloworld,输入bldmake bldfiles, 然后 abld makefile vc6, 这是创建VC工程文件的基本步骤。 然后打开Visual studio,打开工作区, 在C: /Symbian/7.0s/Series60_v21_C/Epoc32/BUILD/SYMBIAN/7.0S/SERIES60_V21_C/EXAMPLES/BASICS/HELLOWORLD/HELLOWORLD/WINS  中。
 
  分析一下这个巨长的路径你会发现,其实分为4段:

   1。 C:/Symbian7.0s/Series60_v21_C/Epoc32 是全局环境变量%EPOCROOT%的所在,后我们在说这个路径的时候就用%EPOCROOT%代替。

   2。build 这个目录存放abld 生成的项目文件。 

   3。SYMBIAN/7.0S/SERIES60_V21_C/EXAMPLES/BASICS/HELLOWORLD 是你的工程所在目录。 

   4。HELLOWORLD/WINS 是Helloworld项目, windows 模拟器,如果你为手机编译的话,就会是Helloworld/thumb. 

   然后运行的时候会弹出一个对话框要求可执行文件。 输入 %EPOCROOT%/release/wins/udeb/epoc.exe 然后你就会看到熟悉的"hello world"出现在s60模拟器上了!

   先写到这里吧,但愿这些文字对大家有一点用处。 下一次我将介绍Symbian OS 的基本类型 和 代码规范