最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

Symbian开发环境搭建

IT圈 admin 39浏览 0评论

2024年1月20日发(作者:虢凝莲)

《Symbian手机应用开发标准教程》——第2章、搭建Symbian开发环境

第2章 搭建Symbian开发环境

本章目标

搭建Symbian开发环境是智能手机应用开发的基础,本章主要介绍Symbian的SDK以及如何能有效地搭建开发环境。通过本章的学习,读者将会掌握以下内容。

了解现有的Symbian SDK

《Symbian手机应用开发标准教程》——第2章、搭建Symbian开发环境

2.1 Symbian SDK介绍

要开发一个Symbian智能手机的应用,就必须要搭建相应的开发环境。截止到目前,共有3个SDK可以选择:Symbian CustKit、S60 SDK、UIQ SDK。

在开发一个Symbian应用之前,要先选择目标平台SDK,然后搭建相应的开发环境,下面对这几个SDK做一下介绍。

2.1.1 Symbian CusKit

Symbian CustKit是Symbian发布给Symbian OS手机开发商使用的平台,供手机开发商在Symbian上做产品开发。手机开发商需要开发手机的硬件驱动,开发自己的UI系统,例如Nokia在Symbian上开发出了S60 UI,UIQ科技在Symbian上开发出了UIQ UI。

CustKit给Symbian手机开发商提供全部开发支持库和一些源文件,Symbian手机开发商使用CustKit提供的资源制作手机的SDK,Nokia就为自己的S60系列手机制作了S60 SDK。

像上面说的,CustKit主要发布给手机开发商,一般的手机应用开发公司或开发者都获取不到CustKit,要开发Symbian智能手机应用,只能下载手机开发商提供的SDK,如S60 SDK或UIQ SDK。

在开发之前,要选择开发什么UI平台的程序,是要开发Symbian-S60平台程序,还是要开发Symbian-UIQ平台程序,然后再下载相应的SDK。

2.1.2 基于Symbian的S60 SDK

S60是Series 60的简称,是Nokia在Symbian OS之上开发的UI平台,Nokia主要生产基于S60 UI的S60系列手机。同时,Nokia为支持开发S60系列智能手机应用程序,给开发者提供了S60 SDK。

S60 SDK是Nokia基于Symbian OS SDK的特定版本构建的,主要内容包括有助于S60应用开发的工具、Symbian OS C++的API、S60 UI的API、支持库和文档等。随着Symbian OS的版本更新,S60 SDK从第1版发展到目前广泛使用的第3版。

Nokia或S60的授权手机厂商发布基于S60的手机产品,手机厂商发布的每一款产品都将使用S60的特定版本,也就是说,一个S60授权手机厂商可能基于某个特定S60版本发布了多款的S60手机产品,那么,只要是基于这个特定版本开发的手机应用,将能够运行在属于这个特定版本的所有类型的手机中。

截止到目前,Nokia共发布了如表2-1所示的SDK。

表2-1

S60 SDK

S60 1st Edition,FP1

S60 2nd Edition

S60 SDK列表

对应的Symbian OS版本

Symbian OS 6.1

Symbian OS 7.0s

《Symbian手机应用开发标准教程》——第2章、搭建Symbian开发环境

S60 2nd Edition,FP1

S60 2nd Edition,FP2

S60 2nd Edition,FP3

S60 3rd Edition

S60 3rd Edition Maintenance Release

S60 3rd Edition,FP1

S60 3rd Edition,FP2

Symbian OS 7.0s

Symbian OS 8.0a

Symbian OS 8.1a

Symbian OS 9.1

Symbian OS 9.1

Symbian OS 9.2

Symbian OS 9.3

使用S60 SDK进行开发之前,必须选择合适的SDK平台,原则上,Symbian手机应用程序是向后兼容的,如在S60 2nd Edition SDK上开发的程序也能在S60 2nd

Edition SDK FP1、FP2、FP3版本的S60系列手机上运行。

从理论上讲,S60 2nd SDK上开发的应用,也应该能够运行在S60 3rd的手机上。但是,从S60 3rd开始,对应的Symbian OS版本是9.1,Symbian公司给OS添加了新的安全模型、API权限能力限制、改变了程序组织结构等,使得S60 2nd版本与S60 3rd的程序不能兼容,也就是说,原来在S60 2nd上开发的程序必需经过移植才能在S60 3rd上运行。S60 3rd的程序能够向后兼容。

当要进行Symbian开发时,首先要选择合适S60 SDK。如果想让开发出来的Symbian应用能运行在所有的S60 2nd版的S60系列手机上,那么只要选择一个最早的S60 2nd版的SDK,如S60 2nd Edition,使用这个版本的SDK搭建开发环境进行开发,开发出来的智能手机应用就可以运行在所有的S60 2nd版手机上了。

如果想要程序能够运行在所有的S60 3rd手机上,那么选择较早发布的S60 3rd

mr版SDK,使用这个SDK开发出的程序,能够在所有S60 3rd手机上运行。

要为S60系列手机开发应用程序,首先需要知道什么型号手机使用哪个版本的S60 SDK,然后,有针对性地对目标手机进行开发,如表2-2所示为版本型号对照表。

表2-2

S60 SDK平台

S60 2nd

S60 2nd FP2

S60 3rd

S60手机所属平台表

手 机 型 号

6600、6670、7610、3230、

6630、6680、6681、N70、N72、N90、6682

3250、E50、E61、E61i、E65、N71、N73、N75、N76、N78、N80、N81、N82、N91、N93、N95、6120

表2-2中所列的是目前国内常见的S60手机所属平台表,对于新发布的S60系列手机,大家可以从Nokia的网站上或随机说明书中查看产品说明,确认手机使用的Symbian操作系统版本和S60版本。

2.1.3 基于Symbian的UIQ SDK

UIQ是UIQ科技开发的一个Symbian OS之上的UI,能够支持触摸屏和手写输入的一个用户UI。UIQ同样也为开发者提供SDK,SDK内容包含Symbian OS C++的API、UIQ UI的API、支持库和文档等。与S60一样,UIQ的SDK也分为UIQ 2nd、

《Symbian手机应用开发标准教程》——第2章、搭建Symbian开发环境

UIQ 3rd等。

UIQ科技是Symbian公司的子公司,2007年初,Sony Ericsson收购了UIQ科技的全部股权,2007年末,Motorola从Sony Ericsson手中够买了50%的股权,这两家公司共同拥有UIQ,它们也都发布基于UIQ的手机。

目前,国内市场上的UIQ手机数量和手机型号都远少于S60系列的手机。这里不做详细介绍,感兴趣的读者可以到UIQ的网站上了解。

2.2 搭建开发环境

对Symbian的SDK有了一定了解之后,就可以开始准备搭建开发环境了,这才是手机应用开发工作的真正开始。

这里以搭建S60 3rd Edition Maintenance Release SDK的开发环境为例,搭建一个Symbian OS C++开发环境,其他版本的S60开发环境和UIQ的开发环境的搭建过程基本都是相同的,只是在安装时选择不同的SDK就可以。

2.2.1 准备工作

在开始搭建开发环境之前,先做必须的准备工作,主要是把搭建开发环境所需要的支持软件、IDE、SDK等准备好。

做准备工作之前,确定一下开发的目标平台,是想开发基于S60 2nd版的手机应用,还是开发基于S60 3rd版的手机应用,还是开发UIQ的手机应用?本书确定的开发目标是开发S60 3rd版的手机应用。

搭建开发环境所需要的支持软件主要有Active Perl和Java,这两个支持软件是必须的,而且对版本要求极其严格。

Symbian的开发环境是搭建在Windows平台上的,在下载支持软件时,一定要下载Windows版的软件。

准备工作分如下4步。

1.下载Active Perl

Active Perl要求是5.6.1版的,使用较低版本或较高版本的Perl,都有可能会产生不可预知的问题。为了避免产生不必要的麻烦,强烈建议,在安装Symbian开发环境时,严格按照SDK的推荐要求下载软件。Active Perl软件可以从下载。

2.下载Java JDK

Java JDK要求是1.4.06以后版本的,但实践证明,目前的S60 SDK对Java 1.6支持有问题,安装Java JDK 1.5没有遇到过问题,因此建议下载Java 1.5。Java JDK可以从下载。

《Symbian手机应用开发标准教程》——第2章、搭建Symbian开发环境

3.下载IDE

Symbian项目的工程组织是与IDE无关的,因此,开发者可以选择自己喜欢的任何集成开发环境,如Carbide.c++、Codewarrior、Microsoft 2005等,建议使用Carbide.c++或.net 2005。Carbide.c++是专门为开发Symbian项目而设计的一个IDE,与Symbian或S60的SDK集成度很好,使开发者能够更方便地浏览、编写、调试程序代码。

Carbide.c++可以从诺基亚论坛网站下载。截止到本书成稿时,Carbide.c++最新的版本是1.3版,下载最新的1.3版。

4.下载SDK

开发者能够使用的Symbian SDK,只能是面向具体Symbian手机的S60 SDK或者UIQ SDK。Symbian CustKit 不面向一般开发者发布,目前只发布给授权的手机开发商。

S60 SDK能够从诺基亚论坛网站下载,只要注册成为论坛用户,就可免费下载。

UIQ SDK能够从UIQ科技网站下载,同样,要注册成为网站用户后,才能取得下载链接。

为下节搭建Symbian开发环境做准备,从下载S60 3rd

Edition Maintenance Release SDK。

如果要开发多媒体的应用程序,还需要下载S60 3rd插件程序Extensions_plugin_S60_

3rd_。

2.2.2 搭建基于Carbide.c++的Symbian开发环境

下载了搭建Symbian开发环境的4个必需软件后,就可以开始搭建开发环境了。在后面的安装过程中,所有与Symbian开发环境有关的软件都必须安装在同一个硬盘分区上。也就是说,安装上面下载的4个软件必须安装在同一个硬盘分区上,如都安装在计算机系统的C盘或都安装在计算机系统的D盘。

在Symbian开发环境中,使用了类似UNIX或Linux的目录结构,如“Symbian9.1S60_3rd_MREpoc32”,在这个目录中没有指定盘符,如果上述软件不在同一个硬盘分区上,按开发环境中计算出的相对路径可能会找不到文件,因此,必须安装在同一个硬盘分区上。

1.安装Active Perl

安装Active Perl 5.6.1版。对安装过程中提示的各项设置,建议都选择默认值,记住安装路径,建议安装在C盘。

2.安装Java

安装Java JDK 1.5版。在安装的过程中,选择默认的设置。Perl已经安装在C盘,那么Java JDK也一定要安装在C盘。

《Symbian手机应用开发标准教程》——第2章、搭建Symbian开发环境

安装Java后,把Java的更新关掉,或者在以后Java提示更新的时候关闭也可以。如果不关闭,Java有可能把自己给升级成1.6版,这样,Symbian的开发环境可能会工作不正常。S60 3rd的最新版SDK可能能支持1.6版的Java,但是S60 2nd的SDK是不支持Java 1.6的,S60 3rd的早期版本也可能工作不正常。

3.安装IDE——Carbide.c++

在Windows的资源管理器中,双击已经下载的Carbide.c++ 1.3的安装程序,打开Carbide.c++安装程序界面,单击“Next”按钮,在新打开的安装向导对话框中选择“I accept the terms of the license agreement”,单击“Next”按钮,直到弹出如图2.1所示界面。

图2.1 Carbide.c++版本选择

在图2.1中选择安装Carbide.c++版本:OEM版、专业版、开发版和Express版。

Express版支持Symbian应用程序开发的常用功能,不支持联机调试等功能。使用Express版,基本能够开发所有的Symbian应用。Express版的Carbide.c++与其他版本的Carbide.c++相比,功能相对较弱,但能满足普通用户的开发需要,Express版的最大优点是用户能够免费使用。

开发版在Express版的基础上,增加了UI设计、联机调试等功能。开发版只有21天的试用期,试用期后如还想继续使用,应向Nokia购买License,否则,会自动变为Express版。

专业版在开发版的基础上,又增加了系统调试功能、Crash调试器、应用性能评估、代码扫描等功能。专业版也只有21天的试用期,试用期后如还想继续使用,应向Nokia购买License,否则,会自动变为Express版。

OEM版是功能最强的一个版本,在专业版的基础上,增加了“JTAG stop-mode

debugging”。OEM版同样也只有21天的试用期,应向Nokia购买License,否则,会自动变为Express版。

选择一个合适的版本后,然后单击“Next”按钮,对于一般的开发者,建议选择Express版,如果想体验增强功能,可以选择OEM版。选择Express版后,单击“Next”按钮,开始复制文件,最后会弹出如图2.2所示的提示配置命令行环境变量对话框。

《Symbian手机应用开发标准教程》——第2章、搭建Symbian开发环境

图2.2 提示配置命令行环境变量

单击“确定”按钮,然后,在Windows的“开始”菜单中选择“Carbide.c++

1.3”→“Configure environment for WINSCW command line”中后,Windows系统开始执行环境变量的配置。这么配置系统的环境变量后,将来在开发Symbian程序时,开发者就可以从命令行编译Symbian项目了。

4.安装S60 SDK

安装完成IDE环境后,就可以安装S60 SDK了。在Windows的资源管理器中,找到下载的S60 3rd Edition Maintenance Release SDK安装程序,先把安装程序解压到一个临时文件夹中。进入这个临时文件夹,单击“”开始安装,在弹出的向导对话框中,都选择默认设置,在选择安装的目标目录时,注意要与安装的其他软件在同一个磁盘上,直到安装完成。

在提示是否安装GCCE工具链时,选择安装,开发的过程中需要使用GCCE编译器编译项目,然后打包程序,安装后,才能在手机上运行目标程序。

如果开发多媒体的应用,还需要安装S60 3rd的扩展插件。单击下载的扩展插件,根据向导安装,直到完成。

执行到此,如果上面安装的各个软件,都是按照默认设置安装的,那么,安装过程结束后,不用做任何的环境配置工作,Symbian开发环境就成功地搭建完成了,可以启动Carbide.c++开始手机应用的开发了。

2.2.3 搭建基于 2005的Symbian开发环境

从Symbian OS 3rd开始,就能够使用.NET 2005开发Symbian应用了。在使用.NET 2005搭建开发环境时,首先要从Nokia论坛上下载插件,.NET

2005需要下载 3.0.1版。

搭建基于.NET 2005的Symbian开发环境,使用的.NET 2005需要是英文版,并且还需要.NET 2005的SP1补丁。

在搭建.NET 2005时,首先安装ActivePerl 5.6.1版和Java 1.5版,然后安装S60

3rd SDK、NET 2005和NET 2005 SP1补丁,最后安装 3.0.1插件。

上面所有的工具都安装后,在打开.NET 2005时,就能够支持Symbian项目开发了。

建议读者能够把基于Carbide.c++与.NET 2005的Symbian开发环境都安装上,本书主要使用Carbide.c++环境,但有些章节会使用.NET 2005建立Symbian工程项目。

《Symbian手机应用开发标准教程》——第2章、搭建Symbian开发环境

2.2.4 开发环境介绍

1.SDK环境介绍

Symbian OS C++的开发环境搭建完成之后,安装的S60 SDK默认会形成如下形式目录结构:

C:Symbian9.1S60_3rd_MR

在这个目录中,C:是指Symbian SDK安装在了计算机的C盘上;Symbian是所有Symbian OS版本的SDK安装的根目录,9.1是指Symbian OS的版本号;S60_3rd_MR是指在Symbian OS 9.1上发布的S60 3rd Edition Maintenance Release

SDK,如果还有其他的基于Symbian OS 9.1的UI SDK,那么在9.1这个目录下也会有一个子目录。

在S60_3rd_MR目录下,存储的是开发中需使用的辅助工具、开发使用的头文件、支持库、开发文档、模拟器等,如图2.3所示。

在图2.3中所示的S60_3rd_MR目录结构包含下面的这些目录。

(1)Examples目录下存储的是基于与Symbian OS的例子,原则上与Symbian OS之上的UI是无关的,如S60或UIQ。但是UI开发商在使用Symbian公司提供的CustKit产生SDK时,可能对某些依赖的头文件或库进行

了裁剪,Examples下大多数例子能通过编译直接在手机图2.3 S60_3rd_MR SDK目录结构或模拟器上运行,部分例子可能需要修改才能编译。

(2)extensions目录是为S60_3rd_MR安装扩展插件添加的目录。

(3)S60Doc目录下存储的主要是Symbian OS的开发帮助文档和S60 UI开发帮助文档。

(4)S60Ex目录下存储的是S60 UI上开发的例子,这个目录下的例子是依赖于S60 UI SDK的,在S60开发环境中,都是能够编译和运行的。

(5)S60Tools目录下是SDK提供的一些辅助开发工具,如MBM文件浏览器、svg-svgt转换器等。

(6)Epoc32目录下存储着Symbian 手机的模拟器,如果是S60 UI的SDK,存储就是S60系列手机模拟器;如果是UIQ的SDK,存储的就是UIQ系列手机模拟器。另外,Symbian应用开发所使用的头文件、链接库等都存储在该目录下。Epoc32的目录结构如图2.4所示,下面是在开发的过程中,经常会用到的Epoc32目录下的一些子目录。

BUILD目录是一个临时目录,在SDK刚安装完成后该目录是不存在的,当第一次使用Symbian开发环境导入Symbian项目或编译项目时,会自动生成这个目录,这个目录主要存储编译过程中生成的临时文件。

Data目录下存储的是模拟器的Z盘数据,类似手机的Z

《Symbian手机应用开发标准教程》——第2章、搭建Symbian开发环境

盘,是一个只读的分区。

include目录下存储的是SDK给开发者提供的头文件,包括Symbian OS的头文件和S60 UI的头文件,用户和能够在开发过程中直接使用。

winscw下,有两个子目录C和D,分别表示模拟器的C盘和D盘,开发者可以在C盘写数据,D盘是手机的内存,一般在手机系统的内部使用,开发者不可以使用。

release目录下常用的3个子目录armv5、GCCE、winscw,分别表示3个编译平台。其中,armv5目录下存储armv5编译器使用的链接库,GCCE目录下存储的是GCCE编译器使用的链接库,winscw目录下主要存储的模拟器程序和winscw平台使用的链接库。用户开发手机应用,编译完成后,也会存储在该目录下相应子目录下。

2.Carbide.c++的使用

安装完开发环境之后,第一次打开Carbide.c++时,会提示开发者设置工作空间,如图2.5所示。

图2.5 设置Carbide.c++的工作空间

在设置工作空间时要注意,工作空间所在目录要与Symbian开发环境在同一个驱动器上,可以创建一个新的目录,如“C:workspace”,在设置完成后,Carbide.c++还会弹出如图2.6所示对话框。

图2.6 Carbide.c++搜索到新插件提示

图2.6所示的对话框,主要提示用户Carbide.c++搜索到了新的SDK插件,用户只要选择“Restart”按钮,重启Carbide.c++就可以了。重启Carbide.c++之后,就可以在Carbide.c++使用新安装的Symbian SDK了,如S60_3rd_MR SDK。

在Carbide.c++中可以打开已有的Symbian项目,也可以新建Symbian项目。

(1)新建Symbian项目。在打开Carbide.c++中,选择“File”菜单,在弹出的“File”菜单中,选择“New”菜单项,打开新建子菜单,然后选择“Symbian OS C++

Project”,根据新建向导建立Symbian项目。在下章会有详细的新建项目介绍。

《Symbian手机应用开发标准教程》——第2章、搭建Symbian开发环境

(2)打开已有Symbian项目。在打开的Carbide.c++中,选择“File”菜单,在弹出的“File”菜单中,选择“Import”菜单项,在打开的导入向导中选择“Symbian OS”下的“Symbian OS file”,然后单击“Next”按钮,在后续的向导对话框中选择要导入项目的“”文件、要使用的Symbian SDK平台等,根据向导,直到导入完成。

当打开已有的Symbian项目或新建Symbian项目后,就可以编译项目了,并在模拟器上运行项目了。如果要编译一个Carbide.c++中的项目,用鼠标右击Carbide.c++的“Project Explorer”窗口中的项目名称,在弹出的快捷菜单中选择“Build

Project”,执行编译,也可以单击工具栏上的“Build”按钮对选中的项目进行编译。

2.2.5 测试开发环境

在开发环境搭建完之后,首先应该测试一下是否能够正常地工作,一般能够正常做下面的两步工作,就算已经成功搭建了开发环境。

(1)在所有的与Symbian开发环境的软件都安装完成后,打开一个DOS命令输入窗口,输入如下的命令后按回车键:

Epoc

运行该命令后,应该启动了S60 SDK的手机模拟器,如果能够正常启动,那么说明S60 SDK安装正确。

关闭模拟器,第一步的测试工作完成。

(2)打开Carbide.c++,选择“File / Import”菜单,导入S60 SDK安装目录下的例子,S60 SDK的例子存储在S60Ex目录下,把例子“helloworldbasic”导入到Carbide.c++中。

编译导入的项目“helloworldbasic”,编译完成后,单击Carbide.c++工具栏上的运行按钮,Carbide.c++会调出模拟器,开发者可以在“安装”文件夹内找到刚才编译的程序,说明应该可以运行程序了。

如果所有的过程都能够顺利执行,没有任何错误产生,那么上面搭建的Symbian开发环境就成功完成了。

2.3 Hello World例程

搭建好Symbian开发环境后,开始第一个Symbian应用开发例程。这里做一个简单的Symbian应用,就像很多语言都提供给学习者的第一个例子:Hello world程序,这里也以一个Hello World例程开始。

打开Carbide.c++ 1.3,选择“File”→“New”→“Symbian OS C++ Project”菜单项后,弹出新建项目向导。在选择项目类型对话框中选择“S60 3rd Edition”下的“3rd-Future Ed. GUI Application”,点击“Next”按钮,在弹出的创建新项目向导对话框“输入项目名称”文本框中输入“ExamHelloWorld”,在“选择Symbian平台”下拉列表中选择“S60_3rd_mr”,以后都采用默认设置,生成一个新的Symbian项目。

《Symbian手机应用开发标准教程》——第2章、搭建Symbian开发环境

编译“ExamHelloWorld”项目,单击Carbide.c++工具栏上的执行图标,调出模拟器,执行“ExamHelloWorld”程序。

为了在程序中显示“Hello World!”,在的文件头部添加下面的这行代码:

#include

把的Draw函数修改为如下的代码,黑色代码是新添加的代码。

void CExamHelloWorldAppView::Draw(const TRect& /*aRect*/) const

{

// 获得绘图窗口的绘图上下文

CWindowGc& gc = SystemGc();

TRect drawRect(Rect());

(drawRect);

_LIT(KHello,"Hello World!");

TBuf<20> bufHello(KHello);

t( CEikonEnv::Static()->DenseFont());

xt(bufHello,TPoint(10,40));

dFont();

}

添加代码后,编译程序。在模拟器中执行刚刚编译的程序,显示如图2.7所示的结果。

图2.7 ExamHelloWorld执行结果

2024年1月20日发(作者:虢凝莲)

《Symbian手机应用开发标准教程》——第2章、搭建Symbian开发环境

第2章 搭建Symbian开发环境

本章目标

搭建Symbian开发环境是智能手机应用开发的基础,本章主要介绍Symbian的SDK以及如何能有效地搭建开发环境。通过本章的学习,读者将会掌握以下内容。

了解现有的Symbian SDK

《Symbian手机应用开发标准教程》——第2章、搭建Symbian开发环境

2.1 Symbian SDK介绍

要开发一个Symbian智能手机的应用,就必须要搭建相应的开发环境。截止到目前,共有3个SDK可以选择:Symbian CustKit、S60 SDK、UIQ SDK。

在开发一个Symbian应用之前,要先选择目标平台SDK,然后搭建相应的开发环境,下面对这几个SDK做一下介绍。

2.1.1 Symbian CusKit

Symbian CustKit是Symbian发布给Symbian OS手机开发商使用的平台,供手机开发商在Symbian上做产品开发。手机开发商需要开发手机的硬件驱动,开发自己的UI系统,例如Nokia在Symbian上开发出了S60 UI,UIQ科技在Symbian上开发出了UIQ UI。

CustKit给Symbian手机开发商提供全部开发支持库和一些源文件,Symbian手机开发商使用CustKit提供的资源制作手机的SDK,Nokia就为自己的S60系列手机制作了S60 SDK。

像上面说的,CustKit主要发布给手机开发商,一般的手机应用开发公司或开发者都获取不到CustKit,要开发Symbian智能手机应用,只能下载手机开发商提供的SDK,如S60 SDK或UIQ SDK。

在开发之前,要选择开发什么UI平台的程序,是要开发Symbian-S60平台程序,还是要开发Symbian-UIQ平台程序,然后再下载相应的SDK。

2.1.2 基于Symbian的S60 SDK

S60是Series 60的简称,是Nokia在Symbian OS之上开发的UI平台,Nokia主要生产基于S60 UI的S60系列手机。同时,Nokia为支持开发S60系列智能手机应用程序,给开发者提供了S60 SDK。

S60 SDK是Nokia基于Symbian OS SDK的特定版本构建的,主要内容包括有助于S60应用开发的工具、Symbian OS C++的API、S60 UI的API、支持库和文档等。随着Symbian OS的版本更新,S60 SDK从第1版发展到目前广泛使用的第3版。

Nokia或S60的授权手机厂商发布基于S60的手机产品,手机厂商发布的每一款产品都将使用S60的特定版本,也就是说,一个S60授权手机厂商可能基于某个特定S60版本发布了多款的S60手机产品,那么,只要是基于这个特定版本开发的手机应用,将能够运行在属于这个特定版本的所有类型的手机中。

截止到目前,Nokia共发布了如表2-1所示的SDK。

表2-1

S60 SDK

S60 1st Edition,FP1

S60 2nd Edition

S60 SDK列表

对应的Symbian OS版本

Symbian OS 6.1

Symbian OS 7.0s

《Symbian手机应用开发标准教程》——第2章、搭建Symbian开发环境

S60 2nd Edition,FP1

S60 2nd Edition,FP2

S60 2nd Edition,FP3

S60 3rd Edition

S60 3rd Edition Maintenance Release

S60 3rd Edition,FP1

S60 3rd Edition,FP2

Symbian OS 7.0s

Symbian OS 8.0a

Symbian OS 8.1a

Symbian OS 9.1

Symbian OS 9.1

Symbian OS 9.2

Symbian OS 9.3

使用S60 SDK进行开发之前,必须选择合适的SDK平台,原则上,Symbian手机应用程序是向后兼容的,如在S60 2nd Edition SDK上开发的程序也能在S60 2nd

Edition SDK FP1、FP2、FP3版本的S60系列手机上运行。

从理论上讲,S60 2nd SDK上开发的应用,也应该能够运行在S60 3rd的手机上。但是,从S60 3rd开始,对应的Symbian OS版本是9.1,Symbian公司给OS添加了新的安全模型、API权限能力限制、改变了程序组织结构等,使得S60 2nd版本与S60 3rd的程序不能兼容,也就是说,原来在S60 2nd上开发的程序必需经过移植才能在S60 3rd上运行。S60 3rd的程序能够向后兼容。

当要进行Symbian开发时,首先要选择合适S60 SDK。如果想让开发出来的Symbian应用能运行在所有的S60 2nd版的S60系列手机上,那么只要选择一个最早的S60 2nd版的SDK,如S60 2nd Edition,使用这个版本的SDK搭建开发环境进行开发,开发出来的智能手机应用就可以运行在所有的S60 2nd版手机上了。

如果想要程序能够运行在所有的S60 3rd手机上,那么选择较早发布的S60 3rd

mr版SDK,使用这个SDK开发出的程序,能够在所有S60 3rd手机上运行。

要为S60系列手机开发应用程序,首先需要知道什么型号手机使用哪个版本的S60 SDK,然后,有针对性地对目标手机进行开发,如表2-2所示为版本型号对照表。

表2-2

S60 SDK平台

S60 2nd

S60 2nd FP2

S60 3rd

S60手机所属平台表

手 机 型 号

6600、6670、7610、3230、

6630、6680、6681、N70、N72、N90、6682

3250、E50、E61、E61i、E65、N71、N73、N75、N76、N78、N80、N81、N82、N91、N93、N95、6120

表2-2中所列的是目前国内常见的S60手机所属平台表,对于新发布的S60系列手机,大家可以从Nokia的网站上或随机说明书中查看产品说明,确认手机使用的Symbian操作系统版本和S60版本。

2.1.3 基于Symbian的UIQ SDK

UIQ是UIQ科技开发的一个Symbian OS之上的UI,能够支持触摸屏和手写输入的一个用户UI。UIQ同样也为开发者提供SDK,SDK内容包含Symbian OS C++的API、UIQ UI的API、支持库和文档等。与S60一样,UIQ的SDK也分为UIQ 2nd、

《Symbian手机应用开发标准教程》——第2章、搭建Symbian开发环境

UIQ 3rd等。

UIQ科技是Symbian公司的子公司,2007年初,Sony Ericsson收购了UIQ科技的全部股权,2007年末,Motorola从Sony Ericsson手中够买了50%的股权,这两家公司共同拥有UIQ,它们也都发布基于UIQ的手机。

目前,国内市场上的UIQ手机数量和手机型号都远少于S60系列的手机。这里不做详细介绍,感兴趣的读者可以到UIQ的网站上了解。

2.2 搭建开发环境

对Symbian的SDK有了一定了解之后,就可以开始准备搭建开发环境了,这才是手机应用开发工作的真正开始。

这里以搭建S60 3rd Edition Maintenance Release SDK的开发环境为例,搭建一个Symbian OS C++开发环境,其他版本的S60开发环境和UIQ的开发环境的搭建过程基本都是相同的,只是在安装时选择不同的SDK就可以。

2.2.1 准备工作

在开始搭建开发环境之前,先做必须的准备工作,主要是把搭建开发环境所需要的支持软件、IDE、SDK等准备好。

做准备工作之前,确定一下开发的目标平台,是想开发基于S60 2nd版的手机应用,还是开发基于S60 3rd版的手机应用,还是开发UIQ的手机应用?本书确定的开发目标是开发S60 3rd版的手机应用。

搭建开发环境所需要的支持软件主要有Active Perl和Java,这两个支持软件是必须的,而且对版本要求极其严格。

Symbian的开发环境是搭建在Windows平台上的,在下载支持软件时,一定要下载Windows版的软件。

准备工作分如下4步。

1.下载Active Perl

Active Perl要求是5.6.1版的,使用较低版本或较高版本的Perl,都有可能会产生不可预知的问题。为了避免产生不必要的麻烦,强烈建议,在安装Symbian开发环境时,严格按照SDK的推荐要求下载软件。Active Perl软件可以从下载。

2.下载Java JDK

Java JDK要求是1.4.06以后版本的,但实践证明,目前的S60 SDK对Java 1.6支持有问题,安装Java JDK 1.5没有遇到过问题,因此建议下载Java 1.5。Java JDK可以从下载。

《Symbian手机应用开发标准教程》——第2章、搭建Symbian开发环境

3.下载IDE

Symbian项目的工程组织是与IDE无关的,因此,开发者可以选择自己喜欢的任何集成开发环境,如Carbide.c++、Codewarrior、Microsoft 2005等,建议使用Carbide.c++或.net 2005。Carbide.c++是专门为开发Symbian项目而设计的一个IDE,与Symbian或S60的SDK集成度很好,使开发者能够更方便地浏览、编写、调试程序代码。

Carbide.c++可以从诺基亚论坛网站下载。截止到本书成稿时,Carbide.c++最新的版本是1.3版,下载最新的1.3版。

4.下载SDK

开发者能够使用的Symbian SDK,只能是面向具体Symbian手机的S60 SDK或者UIQ SDK。Symbian CustKit 不面向一般开发者发布,目前只发布给授权的手机开发商。

S60 SDK能够从诺基亚论坛网站下载,只要注册成为论坛用户,就可免费下载。

UIQ SDK能够从UIQ科技网站下载,同样,要注册成为网站用户后,才能取得下载链接。

为下节搭建Symbian开发环境做准备,从下载S60 3rd

Edition Maintenance Release SDK。

如果要开发多媒体的应用程序,还需要下载S60 3rd插件程序Extensions_plugin_S60_

3rd_。

2.2.2 搭建基于Carbide.c++的Symbian开发环境

下载了搭建Symbian开发环境的4个必需软件后,就可以开始搭建开发环境了。在后面的安装过程中,所有与Symbian开发环境有关的软件都必须安装在同一个硬盘分区上。也就是说,安装上面下载的4个软件必须安装在同一个硬盘分区上,如都安装在计算机系统的C盘或都安装在计算机系统的D盘。

在Symbian开发环境中,使用了类似UNIX或Linux的目录结构,如“Symbian9.1S60_3rd_MREpoc32”,在这个目录中没有指定盘符,如果上述软件不在同一个硬盘分区上,按开发环境中计算出的相对路径可能会找不到文件,因此,必须安装在同一个硬盘分区上。

1.安装Active Perl

安装Active Perl 5.6.1版。对安装过程中提示的各项设置,建议都选择默认值,记住安装路径,建议安装在C盘。

2.安装Java

安装Java JDK 1.5版。在安装的过程中,选择默认的设置。Perl已经安装在C盘,那么Java JDK也一定要安装在C盘。

《Symbian手机应用开发标准教程》——第2章、搭建Symbian开发环境

安装Java后,把Java的更新关掉,或者在以后Java提示更新的时候关闭也可以。如果不关闭,Java有可能把自己给升级成1.6版,这样,Symbian的开发环境可能会工作不正常。S60 3rd的最新版SDK可能能支持1.6版的Java,但是S60 2nd的SDK是不支持Java 1.6的,S60 3rd的早期版本也可能工作不正常。

3.安装IDE——Carbide.c++

在Windows的资源管理器中,双击已经下载的Carbide.c++ 1.3的安装程序,打开Carbide.c++安装程序界面,单击“Next”按钮,在新打开的安装向导对话框中选择“I accept the terms of the license agreement”,单击“Next”按钮,直到弹出如图2.1所示界面。

图2.1 Carbide.c++版本选择

在图2.1中选择安装Carbide.c++版本:OEM版、专业版、开发版和Express版。

Express版支持Symbian应用程序开发的常用功能,不支持联机调试等功能。使用Express版,基本能够开发所有的Symbian应用。Express版的Carbide.c++与其他版本的Carbide.c++相比,功能相对较弱,但能满足普通用户的开发需要,Express版的最大优点是用户能够免费使用。

开发版在Express版的基础上,增加了UI设计、联机调试等功能。开发版只有21天的试用期,试用期后如还想继续使用,应向Nokia购买License,否则,会自动变为Express版。

专业版在开发版的基础上,又增加了系统调试功能、Crash调试器、应用性能评估、代码扫描等功能。专业版也只有21天的试用期,试用期后如还想继续使用,应向Nokia购买License,否则,会自动变为Express版。

OEM版是功能最强的一个版本,在专业版的基础上,增加了“JTAG stop-mode

debugging”。OEM版同样也只有21天的试用期,应向Nokia购买License,否则,会自动变为Express版。

选择一个合适的版本后,然后单击“Next”按钮,对于一般的开发者,建议选择Express版,如果想体验增强功能,可以选择OEM版。选择Express版后,单击“Next”按钮,开始复制文件,最后会弹出如图2.2所示的提示配置命令行环境变量对话框。

《Symbian手机应用开发标准教程》——第2章、搭建Symbian开发环境

图2.2 提示配置命令行环境变量

单击“确定”按钮,然后,在Windows的“开始”菜单中选择“Carbide.c++

1.3”→“Configure environment for WINSCW command line”中后,Windows系统开始执行环境变量的配置。这么配置系统的环境变量后,将来在开发Symbian程序时,开发者就可以从命令行编译Symbian项目了。

4.安装S60 SDK

安装完成IDE环境后,就可以安装S60 SDK了。在Windows的资源管理器中,找到下载的S60 3rd Edition Maintenance Release SDK安装程序,先把安装程序解压到一个临时文件夹中。进入这个临时文件夹,单击“”开始安装,在弹出的向导对话框中,都选择默认设置,在选择安装的目标目录时,注意要与安装的其他软件在同一个磁盘上,直到安装完成。

在提示是否安装GCCE工具链时,选择安装,开发的过程中需要使用GCCE编译器编译项目,然后打包程序,安装后,才能在手机上运行目标程序。

如果开发多媒体的应用,还需要安装S60 3rd的扩展插件。单击下载的扩展插件,根据向导安装,直到完成。

执行到此,如果上面安装的各个软件,都是按照默认设置安装的,那么,安装过程结束后,不用做任何的环境配置工作,Symbian开发环境就成功地搭建完成了,可以启动Carbide.c++开始手机应用的开发了。

2.2.3 搭建基于 2005的Symbian开发环境

从Symbian OS 3rd开始,就能够使用.NET 2005开发Symbian应用了。在使用.NET 2005搭建开发环境时,首先要从Nokia论坛上下载插件,.NET

2005需要下载 3.0.1版。

搭建基于.NET 2005的Symbian开发环境,使用的.NET 2005需要是英文版,并且还需要.NET 2005的SP1补丁。

在搭建.NET 2005时,首先安装ActivePerl 5.6.1版和Java 1.5版,然后安装S60

3rd SDK、NET 2005和NET 2005 SP1补丁,最后安装 3.0.1插件。

上面所有的工具都安装后,在打开.NET 2005时,就能够支持Symbian项目开发了。

建议读者能够把基于Carbide.c++与.NET 2005的Symbian开发环境都安装上,本书主要使用Carbide.c++环境,但有些章节会使用.NET 2005建立Symbian工程项目。

《Symbian手机应用开发标准教程》——第2章、搭建Symbian开发环境

2.2.4 开发环境介绍

1.SDK环境介绍

Symbian OS C++的开发环境搭建完成之后,安装的S60 SDK默认会形成如下形式目录结构:

C:Symbian9.1S60_3rd_MR

在这个目录中,C:是指Symbian SDK安装在了计算机的C盘上;Symbian是所有Symbian OS版本的SDK安装的根目录,9.1是指Symbian OS的版本号;S60_3rd_MR是指在Symbian OS 9.1上发布的S60 3rd Edition Maintenance Release

SDK,如果还有其他的基于Symbian OS 9.1的UI SDK,那么在9.1这个目录下也会有一个子目录。

在S60_3rd_MR目录下,存储的是开发中需使用的辅助工具、开发使用的头文件、支持库、开发文档、模拟器等,如图2.3所示。

在图2.3中所示的S60_3rd_MR目录结构包含下面的这些目录。

(1)Examples目录下存储的是基于与Symbian OS的例子,原则上与Symbian OS之上的UI是无关的,如S60或UIQ。但是UI开发商在使用Symbian公司提供的CustKit产生SDK时,可能对某些依赖的头文件或库进行

了裁剪,Examples下大多数例子能通过编译直接在手机图2.3 S60_3rd_MR SDK目录结构或模拟器上运行,部分例子可能需要修改才能编译。

(2)extensions目录是为S60_3rd_MR安装扩展插件添加的目录。

(3)S60Doc目录下存储的主要是Symbian OS的开发帮助文档和S60 UI开发帮助文档。

(4)S60Ex目录下存储的是S60 UI上开发的例子,这个目录下的例子是依赖于S60 UI SDK的,在S60开发环境中,都是能够编译和运行的。

(5)S60Tools目录下是SDK提供的一些辅助开发工具,如MBM文件浏览器、svg-svgt转换器等。

(6)Epoc32目录下存储着Symbian 手机的模拟器,如果是S60 UI的SDK,存储就是S60系列手机模拟器;如果是UIQ的SDK,存储的就是UIQ系列手机模拟器。另外,Symbian应用开发所使用的头文件、链接库等都存储在该目录下。Epoc32的目录结构如图2.4所示,下面是在开发的过程中,经常会用到的Epoc32目录下的一些子目录。

BUILD目录是一个临时目录,在SDK刚安装完成后该目录是不存在的,当第一次使用Symbian开发环境导入Symbian项目或编译项目时,会自动生成这个目录,这个目录主要存储编译过程中生成的临时文件。

Data目录下存储的是模拟器的Z盘数据,类似手机的Z

《Symbian手机应用开发标准教程》——第2章、搭建Symbian开发环境

盘,是一个只读的分区。

include目录下存储的是SDK给开发者提供的头文件,包括Symbian OS的头文件和S60 UI的头文件,用户和能够在开发过程中直接使用。

winscw下,有两个子目录C和D,分别表示模拟器的C盘和D盘,开发者可以在C盘写数据,D盘是手机的内存,一般在手机系统的内部使用,开发者不可以使用。

release目录下常用的3个子目录armv5、GCCE、winscw,分别表示3个编译平台。其中,armv5目录下存储armv5编译器使用的链接库,GCCE目录下存储的是GCCE编译器使用的链接库,winscw目录下主要存储的模拟器程序和winscw平台使用的链接库。用户开发手机应用,编译完成后,也会存储在该目录下相应子目录下。

2.Carbide.c++的使用

安装完开发环境之后,第一次打开Carbide.c++时,会提示开发者设置工作空间,如图2.5所示。

图2.5 设置Carbide.c++的工作空间

在设置工作空间时要注意,工作空间所在目录要与Symbian开发环境在同一个驱动器上,可以创建一个新的目录,如“C:workspace”,在设置完成后,Carbide.c++还会弹出如图2.6所示对话框。

图2.6 Carbide.c++搜索到新插件提示

图2.6所示的对话框,主要提示用户Carbide.c++搜索到了新的SDK插件,用户只要选择“Restart”按钮,重启Carbide.c++就可以了。重启Carbide.c++之后,就可以在Carbide.c++使用新安装的Symbian SDK了,如S60_3rd_MR SDK。

在Carbide.c++中可以打开已有的Symbian项目,也可以新建Symbian项目。

(1)新建Symbian项目。在打开Carbide.c++中,选择“File”菜单,在弹出的“File”菜单中,选择“New”菜单项,打开新建子菜单,然后选择“Symbian OS C++

Project”,根据新建向导建立Symbian项目。在下章会有详细的新建项目介绍。

《Symbian手机应用开发标准教程》——第2章、搭建Symbian开发环境

(2)打开已有Symbian项目。在打开的Carbide.c++中,选择“File”菜单,在弹出的“File”菜单中,选择“Import”菜单项,在打开的导入向导中选择“Symbian OS”下的“Symbian OS file”,然后单击“Next”按钮,在后续的向导对话框中选择要导入项目的“”文件、要使用的Symbian SDK平台等,根据向导,直到导入完成。

当打开已有的Symbian项目或新建Symbian项目后,就可以编译项目了,并在模拟器上运行项目了。如果要编译一个Carbide.c++中的项目,用鼠标右击Carbide.c++的“Project Explorer”窗口中的项目名称,在弹出的快捷菜单中选择“Build

Project”,执行编译,也可以单击工具栏上的“Build”按钮对选中的项目进行编译。

2.2.5 测试开发环境

在开发环境搭建完之后,首先应该测试一下是否能够正常地工作,一般能够正常做下面的两步工作,就算已经成功搭建了开发环境。

(1)在所有的与Symbian开发环境的软件都安装完成后,打开一个DOS命令输入窗口,输入如下的命令后按回车键:

Epoc

运行该命令后,应该启动了S60 SDK的手机模拟器,如果能够正常启动,那么说明S60 SDK安装正确。

关闭模拟器,第一步的测试工作完成。

(2)打开Carbide.c++,选择“File / Import”菜单,导入S60 SDK安装目录下的例子,S60 SDK的例子存储在S60Ex目录下,把例子“helloworldbasic”导入到Carbide.c++中。

编译导入的项目“helloworldbasic”,编译完成后,单击Carbide.c++工具栏上的运行按钮,Carbide.c++会调出模拟器,开发者可以在“安装”文件夹内找到刚才编译的程序,说明应该可以运行程序了。

如果所有的过程都能够顺利执行,没有任何错误产生,那么上面搭建的Symbian开发环境就成功完成了。

2.3 Hello World例程

搭建好Symbian开发环境后,开始第一个Symbian应用开发例程。这里做一个简单的Symbian应用,就像很多语言都提供给学习者的第一个例子:Hello world程序,这里也以一个Hello World例程开始。

打开Carbide.c++ 1.3,选择“File”→“New”→“Symbian OS C++ Project”菜单项后,弹出新建项目向导。在选择项目类型对话框中选择“S60 3rd Edition”下的“3rd-Future Ed. GUI Application”,点击“Next”按钮,在弹出的创建新项目向导对话框“输入项目名称”文本框中输入“ExamHelloWorld”,在“选择Symbian平台”下拉列表中选择“S60_3rd_mr”,以后都采用默认设置,生成一个新的Symbian项目。

《Symbian手机应用开发标准教程》——第2章、搭建Symbian开发环境

编译“ExamHelloWorld”项目,单击Carbide.c++工具栏上的执行图标,调出模拟器,执行“ExamHelloWorld”程序。

为了在程序中显示“Hello World!”,在的文件头部添加下面的这行代码:

#include

把的Draw函数修改为如下的代码,黑色代码是新添加的代码。

void CExamHelloWorldAppView::Draw(const TRect& /*aRect*/) const

{

// 获得绘图窗口的绘图上下文

CWindowGc& gc = SystemGc();

TRect drawRect(Rect());

(drawRect);

_LIT(KHello,"Hello World!");

TBuf<20> bufHello(KHello);

t( CEikonEnv::Static()->DenseFont());

xt(bufHello,TPoint(10,40));

dFont();

}

添加代码后,编译程序。在模拟器中执行刚刚编译的程序,显示如图2.7所示的结果。

图2.7 ExamHelloWorld执行结果

发布评论

评论列表 (0)

  1. 暂无评论