这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 物联网技术 » Symbian开发入门

共6条 1/1 1 跳转至

Symbian开发入门

高工
2008-06-30 09:20:21     打赏
摘要: Symbian OS是目前市场占有率最高的移动设备OS。本文是Symbian开发的入门性文章,从零开始介绍了进行Symbian开发首先需要了解的一些东西,同时介绍了一些好的开发资源。阅读本文几乎不需要相关的基础知识。 1. Symbian简介 1.1 Symbian起源 Symbian 成立于1998 年6 月,是由爱立信、Matsushita(松下)、摩托罗拉、诺基亚、Psion、西门子和索尼爱立信共同持股的独立私营公司。Symbian 在移动计算设备和手机软件技术开发领域拥有近二十年的丰富经验,是一家由各主要无线通信技术公司持股的软件许可证授权公司,为支持数据分组传输的手机提供高级、开放式、标准化的操作系统— Symbian OS?。 1.2 Symbian发展和现状您可以前往这里查看Symbian发展史大事记。 目前,全球主流手机操作系统主要有四种: Symbian OS Windows Mobile Palm OS Linux OS Symbian OS一支独秀,市场占有率达到了70%,而微软的windows mobile和其他操作系统一共只有30%的份额。 截至目前,以发布的采用Symbian OS的手机有: Nokia 7610 ,Siemens SX1 等等,您可以在这里找到完整的列表。那里还包括了正在开发中的基于Symbian OS的手机列表。 此外,您还可以在这里找到Symbian的合作伙伴列表。



关键词: Symbian     开发     入门    

高工
2008-06-30 09:21:39     打赏
2楼
1.3       更多信息 需要从整体上了解Symbian系统,最为权威和准确的描述,莫过于Symbian的官方文档了。请参见"Symbian介绍"。 得益于 “中文Symbian” 的成果,这是一篇中文文档。  

2.1 Symbian SDK简介 为Symbian OS开发应用程序的第一步就是获得一个SDK。Symbian OS SDKs支持基于Java和C++的开发。
这些SDK提供: 1、便于构建和开发Symbian OS应用程序的一组二进制文件和工具。
2、所有API和工具的系统文档。
3、基于PC的Symbian OS手机模拟器。
4、带支持文档的样例应用程序。 由于Symbian OS本身不包括用户界面等,所以,通常会由一些伙伴厂商为Symbian OS提供特定的UI Platform。因此SDKs都是基于一个特定的UI Platform来构建的。一个UI Platform提供一个独特的UI,还有一系列面向各种任务的相关系统应用程序。这些常见的任务包括:收发消息、浏览、电话功能、多媒体功能和联系方式/日历管理等等。这些应用通常都会使用由Symbian OS提供的一些应用引擎。 从Symbian OS v6.0开始,共有以下各种SDK: UIQ  Nokia Series 90 Nokia Series 80 (previously “9200 communicator series”) Nokia Series 60 Nokia Series 40 此前的SDK都是特地于某个设备,比如the Pison netPad。Symbian不再支持这些遗留SDK了。 对于一个软件开发者来说,在你为一个特定的手机开发应用程序时,首先需要了解的就是与它相关的UI Platform。然后,你需要了解这个手机所使用的Symbian OS的版本。有了这两方面的信息,你就可以决定自己需要那个SDK了。 在大多数情况下,依靠这个SDK,你就可以开发一个单一版本的应用程序,然后能够在所有的基于相同的UI Platform和Symbian OS版本的手机上运行。 对于那些基于同一SDK的手机之间可能出现的各种差别,Symbian OS 系统定义文档给出了更进一步的细节信息。您可以自行查阅。 Symbian OS System Definition Symbian OS System Definition - Detailed View (updated to include v8.0)  我们可以看到SDK主要分为两大类,即Nokia Series系列和UIQ。而Series系列中又以Series 60平台最为流行。需要指出的是,以上只是从开发平台上对SDK进行了划分,划分粒度是非常粗的。每种平台都会对应着一系列具体的开发工具,您需要根据自身情况,做出选择。 本文将以“SERIES 60 2ND EDITION SDK FOR SYMBIAN OS SUPPORTING FEATURE PACK 2 SUPPORTING MICROSOFT VISUAL C++ AND BORLAND C++BUILDERX”这个SDK为基础,通过一个简单的C++示例程序,让您对开发过程有所了解。您可以在这里下载此SDK。由上面这个长的有些恐怖的名字我们可以了解到,这个SDK支持在VC++或BCB的IDE下开发程序。本文会先讲解如何通过命令行一步步的构建我们的第一个程序,然后还会简单介绍结合VC++.NET 2003 IDE的开发。此外,在安装该SDK以前,您需要安装Java Runtime Environment v 1.4.1_02 以及ActivePerl 5.6.1。前者,推荐大家直接安装JDK,而不仅仅安装JRE,这些都可以在http://www.sun.com得到。后者大家可以前往http://www.activestate.com 下载。 对于Java的开发,本文将不做介绍。您如果有兴趣,可以自行参考本文后面的推荐资源。

2.      Symbian开发

高工
2008-06-30 09:22:26     打赏
3楼
2.1 Symbian SDK简介 为Symbian OS开发应用程序的第一步就是获得一个SDK。Symbian OS SDKs支持基于Java和C++的开发。
这些SDK提供: 1、便于构建和开发Symbian OS应用程序的一组二进制文件和工具。
2、所有API和工具的系统文档。
3、基于PC的Symbian OS手机模拟器。
4、带支持文档的样例应用程序。 由于Symbian OS本身不包括用户界面等,所以,通常会由一些伙伴厂商为Symbian OS提供特定的UI Platform。因此SDKs都是基于一个特定的UI Platform来构建的。一个UI Platform提供一个独特的UI,还有一系列面向各种任务的相关系统应用程序。这些常见的任务包括:收发消息、浏览、电话功能、多媒体功能和联系方式/日历管理等等。这些应用通常都会使用由Symbian OS提供的一些应用引擎。 从Symbian OS v6.0开始,共有以下各种SDK: UIQ  Nokia Series 90 Nokia Series 80 (previously “9200 communicator series”) Nokia Series 60 Nokia Series 40 此前的SDK都是特地于某个设备,比如the Pison netPad。Symbian不再支持这些遗留SDK了。 对于一个软件开发者来说,在你为一个特定的手机开发应用程序时,首先需要了解的就是与它相关的UI Platform。然后,你需要了解这个手机所使用的Symbian OS的版本。有了这两方面的信息,你就可以决定自己需要那个SDK了。 在大多数情况下,依靠这个SDK,你就可以开发一个单一版本的应用程序,然后能够在所有的基于相同的UI Platform和Symbian OS版本的手机上运行。 对于那些基于同一SDK的手机之间可能出现的各种差别,Symbian OS 系统定义文档给出了更进一步的细节信息。您可以自行查阅。 Symbian OS System Definition Symbian OS System Definition - Detailed View (updated to include v8.0)  我们可以看到SDK主要分为两大类,即Nokia Series系列和UIQ。而Series系列中又以Series 60平台最为流行。需要指出的是,以上只是从开发平台上对SDK进行了划分,划分粒度是非常粗的。每种平台都会对应着一系列具体的开发工具,您需要根据自身情况,做出选择。 本文将以“SERIES 60 2ND EDITION SDK FOR SYMBIAN OS SUPPORTING FEATURE PACK 2 SUPPORTING MICROSOFT VISUAL C++ AND BORLAND C++BUILDERX”这个SDK为基础,通过一个简单的C++示例程序,让您对开发过程有所了解。您可以在这里下载此SDK。由上面这个长的有些恐怖的名字我们可以了解到,这个SDK支持在VC++或BCB的IDE下开发程序。本文会先讲解如何通过命令行一步步的构建我们的第一个程序,然后还会简单介绍结合VC++.NET 2003 IDE的开发。此外,在安装该SDK以前,您需要安装Java Runtime Environment v 1.4.1_02 以及ActivePerl 5.6.1。前者,推荐大家直接安装JDK,而不仅仅安装JRE,这些都可以在http://www.sun.com得到。后者大家可以前往http://www.activestate.com 下载。 对于Java的开发,本文将不做介绍。您如果有兴趣,可以自行参考本文后面的推荐资源。

高工
2008-06-30 09:23:57     打赏
4楼

2.4 从“Hello World”开始 从K&R开始,“Hello World”几乎成了入门必修课。呵呵,我们也顺其自然吧。 我们先将整个流程过一遍,然后再解释每一步都发生了什么。以下涉及到的各种路径都是以笔者的实验环境为依据的,您需要自行替换为自己机器上的路径。 2.4.1 从命令行编译 1、打开VS.NET 2003自带的命令行,进入以下目录: D:\Symbian\8.0a\S60_2nd_FP2\Examples\basics\helloworld 这里有我们即将涉及到的三个文件: HelloWorld.cpp         C++源文件 HelloWorld.mmp        项目定义文件 Bld.inf                        组件定义文件 2、构建我们的例子,请输入: bldmake bldfiles 这一步会生成一个文件ABLD.BAT 3、编译和链接,请输入: abld build wins udeb 这一步会生成供Series 60 调试模拟器使用的文件。 4、运行,请在命令行进入: D:\Symbian\8.0a\S60_2nd_FP2\epoc32\release\wins\udeb 这个目录含有刚生成的helloworld.exe文件。然后输入: helloworld 这会调用Series 60的模拟器,并在其中运行helloworld.exe程序。效果如图2所示



2.4.2 与VS IDE配合

1、先重复2.4.1节的步骤1和2

2、请输入以下命令:

abld makefile vc7

这会在目录:

D:\Symbian\8.0a\S60_2nd_FP2\epoc32\BUILD\SYMBIAN\8.0A\S60_2ND_FP2\EXAMPLES\BASICS\HELLOWORLD\HELLOWORLD\WINS

下面生成VS.NET 2003所需的解决方案文件、项目文件等等。

还有一种方法是,输入以下命令:

makmake helloworld vc7

这也会生成VS.NET 2003所需的解决方案文件、项目文件等等,只不过是在当前的目录下。

3、通过上述过程生成的文件,即可在VS.NET 2003的IDE中打开helloworld项目。然后就可以按照构建、运行、调试其它项目的方法来处理该项目了。比如:输入HELLOWORLD.sln,然后用Ctrl+Shift+B生成,再用Ctrl+F5直接运行(不调试),效果与图2一样。您会注意到,模拟器出现的很快。那是因为该项目是个简单的控制台程序,无须载入各种GUI库即可运行。

2.4.3 发生了什么?
上面只是按部就班的讲述了如何构建一个简单的程序,之所以没有涉及细节,是为了使您可以快速的体验一下开发过程(不包括调试,生成最终的发布版,载入实际目标设备运行等步骤)。下面就具体的介绍一下Symbian OS构建过程。

高工
2008-06-30 09:25:27     打赏
5楼
目前,构建Symbian 程序的两条主要的工具链为: 基于Metowerks CodeWarrior 编译器的工具链。 基于Microsoft Visual C++编译器的工具链。 您可以根据自己的意愿或需要来选用合适的工具,并配合相应的IDE来方便开发。但是一般来说不可以混合使用它们。 由于Symbian程序的构建工具以及最终目标的多样性,Symbian项目通常会先以一种通用的格式来描述。然后,可以使用相应的构建工具链来处理这个中立的项目文件,生成特定的项目文件。 刚开始,只有HelloWorld.cppHelloWorld.mmpBld.inf 这三个文件。其中HelloWorld.mmpBld.inf就是两个关键的项目文件。 HelloWorld.mmp项目定义文件,描述了将要构建的项目信息,还定义了一些资源文件和应用程序信息文件。它是一个环境中立的文件,可以使用各种工具来处理并生成各种目标环境的make文件。您可以使用文本编辑器查看该文件。里面的信息还是很简明的,包括构建目标,构建类型,源路径,库文件,头文件等等信息。 Bld.inf组件描述文件,它列出了一个组件当中包括的所有项目,还包括一些额外的构建指令。您也可以使用文本编辑器查看该文件。对于本实例来说,仅包括一个项目HelloWorld.mmp。 2.4.3.1 Bldmake命令的作用 当我们运行 bldmake bldfiles 这个命令时,会处理当前目录下的bld.inf文件,具体来说会执行以下处理过程: 1、生成目录 D:\Symbian\8.0a\S60_2nd_FP2\epoc32\BUILD\SYMBIAN\8.0A\S60_2ND_FP2\EXAMPLES\BASICS\HELLOWORLD 2、在这个目录下,生成一系列的Make文件,针对各种目标环境。比如VC7.MAKE,CW_IDE.MAKE等等。 3、在当前目录下生成abld.bat文件,这个文件会在随后用到。您可以查看该文件的内容。但是建议不要手工的更改它的内容。 Bldmake命令也支持其他的命令行选项,您可以直接输入bldmake来查看简要的介绍,还可以查看SDK文档了解详细信息。 2.4.3.2 abld命令的作用 由bldmake处理bld.inf文件得到的abld.bat文件,使得abld命令可用。Abld.bat控制着构建一个项目的方方面面。Abld命令的语法非常地灵活,它拥有许多命令行选项,它们的组合涵盖了各种构建需求。最常用的组合,莫过于abld build 和 abld clean 相关了。 当我们运行 abld build wins udeb 这个命令时,将为wins平台(即通常的VC++环境)生成一个debug版本的程序。 具体来说,在 D:\Symbian\8.0a\S60_2nd_FP2\epoc32\BUILD\SYMBIAN\8.0A\S60_2ND_FP2\EXAMPLES\BASICS\HELLOWORLD\HELLOWORLD\WINS\UDEBD:\Symbian\8.0a\S60_2nd_FP2\epoc32\release\wins\udeb 下面各生成了一些文件,比如Helloworld.exe文件。 如果只是调用 abld build 那么会为所有可能的平台构建程序。 而运行 abld clean 会删除属于当前组件的,编译过程中生成的所有中间文件和可执行文件,以及由链接器导入的库文件。 您也可以指定只删除某个平台的文件。 具体的abld语法,请查看SDK文档。

高工
2008-06-30 09:25:46     打赏
6楼
2.4.3.3 makmake命令的作用 简而言之,就是处理.mmp文件,生成各种目标平台的make文件。既可以针对命令行来生成,也可以针对IDE来生成。用于命令行的makefile无法用于IDE。 所以我们的命令: makmake helloworld vc7 就为VS.NET 2003 IDE生成了相关的makefile,然后我们就可以通过这些文件借助VS的强大功能了。 更多的makmake语法,请查看SDK文档。 3 开发资源不完全索引 Symbian OS官方网站不用多说,这是Symbian相关信息的最权威来源。

诺基亚论坛这是最为活跃的移动开发技术社区。尤其是关于Nokia Series系列的资源非常的丰富。 而且,现在还有 诺基亚论坛简体中文版这极大的方便了国内的开发者学习相关技术。

SDKs之外的开发工具 除了各种Symbian SDK之外,还有许多有用的工具和SDK插件可供开发者使用。

基于Symbian OS提高自己水平的一个有效途径就是学习或加入一个优秀的开源项目。

专门针对Series 60基于Symbian OS的Series 60平台是目前业界领先的智能电话平台。

UIQ的官方网站成立于1999年,是完全归Symbian公司所有的一家子公司。他们面向开发移动设备的UI Platform——UIQ,并授权给那些全球领先的移动设备制造商。 UIQ Technology AB系列的网站
的优秀开源项目
4 小结 正如本文的摘要所述,这是一篇入门的文章。为此,文章舍弃了许多内容。笔者认为那些内容更适合出现在其他主题的文章中。呵呵,希望这篇文章能给您带来一些收获,帮助您顺利的搭上Symbian开发的快车。 欢迎指正,欢迎讨论!

共6条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]