|
|
|
| Symbian开发入门 |
编辑:rocks 审核:rocks 文章来源:CSDN
关键词:无 发表日期:2007-07-06 15:57:24 浏览次数:4204次 |
|
|
|
|
本文版权归原作者,中国JAVA手机网收录本文的目的是让更多人阅读到此文章。转载请注明出处为中国JAVA手机网<www.cnjm.net>
来自:http://www.cnjm.net/tech/article4132.html 摘要: 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的合作伙伴列表。
JAVA手机网[www.cnjm.net] 1.3 更多信息 需要从整体上了解Symbian系统,最为权威和准确的描述,莫过于Symbian的官方文档了。请参见"Symbian介绍"。 得益于 “中文Symbian” 的成果,这是一篇中文文档。
JAVA手机网[www.cnjm.net] 2. Symbian开发 2.1 Symbian SDK简介 为Symbian OS开发应用程序的第一步就是获得一个SDK。Symbian OS SDKs支持基于Java和C++的开发。 这些SDK提供:
JAVA手机网[www.cnjm.net] 1、便于构建和开发Symbian OS应用程序的一组二进制文件和工具。
JAVA手机网[www.cnjm.net] 2、所有API和工具的系统文档。
JAVA手机网[www.cnjm.net] 3、基于PC的Symbian OS手机模拟器。 4、带支持文档的样例应用程序。
JAVA手机网[www.cnjm.net] 由于Symbian OS本身不包括用户界面等,所以,通常会由一些伙伴厂商为Symbian OS提供特定的UI Platform。因此SDKs都是基于一个特定的UI Platform来构建的。一个UI Platform提供一个独特的UI,还有一系列面向各种任务的相关系统应用程序。这些常见的任务包括:收发消息、浏览、电话功能、多媒体功能和联系方式/日历管理等等。这些应用通常都会使用由Symbian OS提供的一些应用引擎。
从Symbian OS v6.0开始,共有以下各种SDK:
UIQ
JAVA手机网[www.cnjm.net] Nokia Series 90
Nokia Series 80 (previously “9200 communicator series”)
Nokia Series 60
JAVA手机网[www.cnjm.net] 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的开发,本文将不做介绍。您如果有兴趣,可以自行参考本文后面的推荐资源。
JAVA手机网[www.cnjm.net] 2.2 搭建开发环境 Ø 安装VC++.NET 2003。需要指出的是,我们需要VC++的编译器来编译代码,但是其IDE却是可选的。我们也可以从命令行来编译我们的代码。
Ø 安装JDK或JRE
Ø 安装ACTIVEPERL
Ø 安装SERIES 60 SDK 2ND
Ø 设定环境变量。这恐怕是新手们最头疼的问题之一。网上对这个问题的解答,也可谓五花八门。所以最好的方法就是参考别人的意见,然后动手实践。以下内容均基于我的实践。有不同意见,欢迎讨论。
首先我想说,这一步完全是多余的,根本不需要。您甚至不需要严格的按照上面列出顺序来安装各种工具。不过我还是希望您可以耐心的把这段话看完,呵呵。
然后我想说,请使用VC++.NET带的“命令提示”工具来进行以下的实验。而不是使用Windows“附件”菜单中的那个“命令提示”工具。
JAVA手机网[www.cnjm.net] 原因如下:这里问题的关键是让各种工具可以在命令行上可见,这样我们就可以利用它们来编译我们的代码。而VC++.NET带的“命令提示”工具与Windows“附件”菜单中的那个“命令提示”工具的区别之一就是其PATH变量的值不同。前者的PATH变量包括:
1、安装VC++.NET过程中,添加的一些路径,包括主要的编译链接等工具。
2、系统环境下PATH变量的内容(通常可以这样设置:右击我的电脑—>属性—>高级—>环境变量—>系统变量。安装JDK,ACTIVEPERL,SERIES 60 SDK后,各种相应工具的路径也会添加到这里)。
而后者的PATH变量只包括2中的内容。
所以,如果不使用VC++.NET带的“命令提示”工具,您就会因为找不到相应编译工具,而无法继续下去。如果自己勤快一些,可以手动把1中的内容加到系统PATH中去,呵呵。这样就可以用Windows“附件”菜单中的那个“命令提示”工具了。
下面介绍一下我机器上的实验环境:
JAVA手机网[www.cnjm.net] Ø VS.NET 2003(具体路径一大堆,故省略)
Ø Perl 5.8.6(D:\Perl\bin)
Ø JDK 1.5 (D:\Program Files\Java\jdk1.5.0_01\bin)
Ø SERIES 60 SDK 2ND (D:\Symbian)
JAVA手机网[www.cnjm.net] 2.3 Series 60 平台介绍 Series 60平台基于Symbian OS 技术构造,包括用户界面、各种应用程序以及各种开发工具。Series 60的用户界面(UI)针对方便单手使用的目的进行了精心的设计。
从用户的角度来看,最为重要的特性也许正是它的UI。它的UI包括一个大屏彩显(176 x 208 pixel, 256 color display)以及各种输入按键(两个软键,五路导航键five-way navigation,收/发键等等,见图1)。Series 60平台包括一些常用的应用程序,比如个人信息管理(PIM)程序(比如,电话簿、日历、相册等),电子邮件程序,浏览程序,消息收发程序等等。Series 60平台还有一个安装引擎,通过它用户就可以安装或删除应用程序,既可以通过PC连接也可以通过“空中(OTA)”服务来完成。
图1 Series 60 Platform UI
540) this.width = 540'>
2.4 从“Hello World”开始 从K&R开始,“Hello World”几乎成了入门必修课。呵呵,我们也顺其自然吧。
JAVA手机网[www.cnjm.net] 我们先将整个流程过一遍,然后再解释每一步都发生了什么。以下涉及到的各种路径都是以笔者的实验环境为依据的,您需要自行替换为自己机器上的路径。
2.4.1 从命令行编译 1、打开VS.NET 2003自带的命令行,进入以下目录:
JAVA手机网[www.cnjm.net] D:\Symbian\8.0a\S60_2nd_FP2\Examples\basics\helloworld
这里有我们即将涉及到的三个文件:
HelloWorld.cpp C++源文件
HelloWorld.mmp 项目定义文件
JAVA手机网[www.cnjm.net] Bld.inf 组件定义文件
2、构建我们的例子,请输入:
bldmake bldfiles
这一步会生成一个文件ABLD.BAT。
3、编译和链接,请输入:
abld build wins udeb
这一步会生成供Series 60 调试模拟器使用的文件。
JAVA手机网[www.cnjm.net] 4、运行,请在命令行进入:
D:\Symbian\8.0a\S60_2nd_FP2\epoc32\release\wins\udeb
这个目录含有刚生成的helloworld.exe文件。然后输入:
JAVA手机网[www.cnjm.net] helloworld
这会调用Series 60的模拟器,并在其中运行helloworld.exe程序。效果如图2所示
JAVA手机网[www.cnjm.net] 540) this.width = 540'>
2.4.2 与VS IDE配合
1、先重复2.4.1节的步骤1和2
JAVA手机网[www.cnjm.net] 2、请输入以下命令:
JAVA手机网[www.cnjm.net] 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构建过程。
目前,构建Symbian 程序的两条主要的工具链为:
基于Metowerks CodeWarrior 编译器的工具链。
基于Microsoft Visual C++编译器的工具链。
您可以根据自己的意愿或需要来选用合适的工具,并配合相应的IDE来方便开发。但是一般来说不可以混合使用它们。
由于Symbian程序的构建工具以及最终目标的多样性,Symbian项目通常会先以一种通用的格式来描述。然后,可以使用相应的构建工具链来处理这个中立的项目文件,生成特定的项目文件。
刚开始,只有HelloWorld.cpp,HelloWorld.mmp,Bld.inf 这三个文件。其中HelloWorld.mmp和Bld.inf就是两个关键的项目文件。
HelloWorld.mmp:项目定义文件,描述了将要构建的项目信息,还定义了一些资源文件和应用程序信息文件。它是一个环境中立的文件,可以使用各种工具来处理并生成各种目标环境的make文件。您可以使用文本编辑器查看该文件。里面的信息还是很简明的,包括构建目标,构建类型,源路径,库文件,头文件等等信息。
Bld.inf:组件描述文件,它列出了一个组件当中包括的所有项目,还包括一些额外的构建指令。您也可以使用文本编辑器查看该文件。对于本实例来说,仅包括一个项目HelloWorld.mmp。
2.4.3.1 Bldmake命令的作用 当我们运行
JAVA手机网[www.cnjm.net] bldmake bldfiles
这个命令时,会处理当前目录下的bld.inf文件,具体来说会执行以下处理过程:
1、生成目录
JAVA手机网[www.cnjm.net] 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 相关了。
当我们运行
JAVA手机网[www.cnjm.net]
JAVA手机网[www.cnjm.net] abld build wins udeb
这个命令时,将为wins平台(即通常的VC++环境)生成一个debug版本的程序。
具体来说,在
JAVA手机网[www.cnjm.net] D:\Symbian\8.0a\S60_2nd_FP2\epoc32\BUILD\SYMBIAN\8.0A\S60_2ND_FP2\EXAMPLES\BASICS\HELLOWORLD\HELLOWORLD\WINS\UDEB
和
D:\Symbian\8.0a\S60_2nd_FP2\epoc32\release\wins\udeb
下面各生成了一些文件,比如Helloworld.exe文件。
如果只是调用
abld build
那么会为所有可能的平台构建程序。
而运行
abld clean
会删除属于当前组件的,编译过程中生成的所有中间文件和可执行文件,以及由链接器导入的库文件。
您也可以指定只删除某个平台的文件。
JAVA手机网[www.cnjm.net] 具体的abld语法,请查看SDK文档。
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的优秀开源项目 提高自己水平的一个有效途径就是学习或加入一个优秀的开源项目。
JAVA手机网[www.cnjm.net] 专门针对Series 60系列的网站 基于Symbian OS的Series 60平台是目前业界领先的智能电话平台。
UIQ的官方网站 UIQ Technology AB成立于1999年,是完全归Symbian公司所有的一家子公司。他们面向开发移动设备的UI Platform——UIQ,并授权给那些全球领先的移动设备制造商。
4 小结 正如本文的摘要所述,这是一篇入门的文章。为此,文章舍弃了许多内容。笔者认为那些内容更适合出现在其他主题的文章中。呵呵,希望这篇文章能给您带来一些收获,帮助您顺利的搭上Symbian开发的快车。
欢迎指正,欢迎讨论!
来自:http://www.cnjm.net/tech/article4132.html
|
|
|
相关文章
暂无相关文章
|
|
| 最新评论
|
|
|
|