《Qt for Symbian》翻译系列之七:第二章 开始(1)
2011年04月06日
本章主要介绍应用于Symbian平台的QT开发工具。对于Symbian平台的新手,本章首先通过逐步介绍所需的开发工具及其安装指南进行切入。然后介绍如何在仿真器和移动电话上利用Qt for Symbian创建并运行"Hello World"应用。如果已经有了Symbian开发环境,而且熟悉工具及应用的构建过程,作为对某些SDK版本的补充,在进入2.1.7章节关注Qt for Symbian SDK的安装和介绍之前,建议快速浏览本章的第一部分。注意,本章中某些较长的下载链接利用URL缩短服务进行了缩短,如果缩短的链接不能工作,可以在本章末尾找到一张包含原始链接的表。 2.1 开发环境的安装
图2.1 描述了Qt for Symbian开发环境的典型结构。如图所示,当前所支持的开发平台只有Windows,因此建议用户运行Windows XP或Windows Vista。这一局限的原因在于Symbian平台SDK中的一些工具只在Windows平台上是有效的。但是,正在不断努力增加对于其他开发主机环境的官方支持,如Linux或Mac,因此,这一开发平台只限于Windows的要求极有可能在未来的Symbian平台SDK版本中被去掉。除了Windows平台要求外,建议使用一个速度比较快的开发PC,即1800MHz处理器,2GB RAM,以及足够的硬盘空间用于安装工具、IDE和SDK。安装过程中,需下载大小近1GB的工具及更新。安装所有的工具需占用近2.3GB磁盘空间。取决于安装组件,安装过程也许需要几个小时。 图2.1 组成Qt for Symbian开发环境的工具示意图
假设已经有一台可以工作的Windows开发机器,需要安装及设置的第一个工具是可以工作的Symbian开发环境。一旦安装了这一工具,就能扩展以支持Qt for Symbian的开发。接下来,了解各个组件的安装。 2.1.1 Ovi 套件
如图2.1所示,Ovi套件是一个可选组件。但是,由于该组件能使得应用向移动电话的传输及安装变得容易,因此建议安装。如果已经安装了Nokia PC套件应用程序,由于PC套件能够提供类似的功能,可以跳过这一套件的安装,安装了Ovi套件后,就可以用Bluetooth或USB电缆连接Symbian设备和开发机器。
下载链接:http://www.nokiausa.com/exploreservices/ovi/ovisui te 2.1.2 Java
为了充分利用电话仿真器,必须安装一个有效的Java运行环境(JRE,Java Runtime Environment)。在应用开发和测试过程中,电话仿真器是一个很有用的工具。可以安装最近有效版本的Java。如果不打算用设备仿真器,也可以跳过这一步。注意,安装版本5以上的JRE,在访问Symbian仿真器的参数设置时,会造成'Cannot start ECMT manager'的错误出现,解决这一问题参见:http://bit.ly/7WCpIf。
下载链接:http://www.java.com/en/download/ 2.1.3 Perl
Symbian平台SDK中几个脚本依靠Perl构建。官方支持的版本是ASP5.6.1 build635。在安装ASP过程中,确保"Add Perl to the PATH environment variable"选项选中。注意,如果安装了不同版本的Perl,Symbian构建工具链也许不能正确地工作。 下载链接:http://bit.ly/4vOXGX
注意:ActivePerl软件包应先于Symbian SDK安装,否则安装可能失败。 2.1.4 Symbian平台 SDK
Symbian平台SDK包括文档、编译器、头文件、库文件以及附加工具,这些附加工具对于构建面向Symbian设备的应用是必须的。存在着许多不同的SDK版本,各个分别对应于不同的Symbian平台。历史上,不同的设备厂商利用各自的UI平台,对Symbian交付的核心操作系统进行了扩展。在这些UI平台中,两个最知名的就是Nokia所用的S60平台和Sony Ericsson和Motorla所用的UIQ平台。但是,自从2008年成立了Symbian Foundation后,这些UI平台现在已经融合成一个,由Foundation进行维护管理。由于这一改变太快,因此在本书提及的开发中,仍使用设备厂商特定的SDK。下表列出当前支持Qt for Symbian的平台。 注意,该表中第一个Symbian Foundation SDK(Symbian^1)是S60第5版SDK的复制品。但是,Symbian Foundation SDK的未来版本将替换设备厂商特定的SDK,并命名为Symbian^2,Symbian^3……,等等。利用原始的(native)Symbian C++ API开发应用程序时,必须由目标设备所用的UI平台及Symbian版本来确定采用合适的SDK。但是,这对于Qt for Symbian来说,不是必须的,因为利用Qt,对于应用的开发和部署,也许会用到所有提及的SDK。如果需要了解Symbian平台的特征,而不是整个Qt库,在Nokia Forum(http://www.forum.nokia.com/devices/)的设备特定部分中,对于特定的目标设备,可以决定需要哪一个SDK。注意第三版的Feature Pack 1之前的平台不支持Qt for Symbian。
如果没有得到合适的设备,也可以选择上面所列的SDK中的任何一个。没有物理设备,仍能在设备仿真器中测试和运行应用程序。如果希望选择几个不同的S60平台作为目标,安全可接受安装几个不同的SDK。
注意:如果选择采用Symbian C++原始代码/扩展,不同平台SDK版本在某种程度上是后向二进制兼容的。这也就意味着,例如,利用第三版SDK构建的应用程序多数情况下也能在第五版的设备上运行。但是,也有例外,因此,建议安装多个SDK,并为每个平台构建应用程序。
安装Symbian SDK
为了下载SDK,需要一个有效的Nokia Forum帐号。帐号可以从http://www.forum.nokia.com/Sign_Up.xhtml免费得到。在完成注册并登录到Norkia Forum主页后,就可以从下面的链接下载SDK。
下载链接:http://bit.ly/4qdgTk
如果安装第3版特征(Feature)包2或第5版SDK,可以点击"Download all-in-one S60 SDKs"按钮,找到安装文件。 如果安装第3版特征(Feature)包1 SDK,可以点击"Download S60 SDKs for C++"按钮,找到安装文件。 下载完成后,继续以下三步就能完成安装: 将下载的SDK ZIP文件解压缩到临时目录;
运行临时目录下的Setup.exe文件;
遵照安装程序,选择默认项,即,接受许可证协议,选择"Typical"安装,及安装"CSL ARM Toolchain"。
第三版特征包1 SDK 补丁
对于Qt for Symbian,为了同第三版特征包1 SDK正常工作,需要安装一个附加的补丁: 1. 需要将新版的getexports.exe文件拷贝到epoc32\tools子目录下,如C:\Symbian\9.2\S60_3rd_FP1\epos32\tools。更新的getexports.exe文件可以从http://bit.ly/8KMG9K处下载。 Symbian SDK概述 这一部分简要介绍SDK及其相关内容,如从哪里寻找Symbian特定的文档。如果安装了多个Qt for Symbian支持的SDK,而且采用默认建议的安装路径,就会发现自第三版特征包2之后,SDK根目录安装在路径S60\devices\SDKversion之下,而较早版本的SDK安装在路径Symbian\OSversion\SDKversion之下。另外,几个SDK子文件夹也已经改变了名称。下表列出了SDK中所选择的文件夹及其内容。
文件夹Epoc32包含有仿真器,以及在仿真器中进行应用测试所用的驱动映射。注意,目标设备上的Z驱动器用于ROM以及包含操作系统文件和标准应用程序。C驱动器为程序运行提供内存,并存储新的应用程序。对于仿真器来说,在构建期间,驱动器映射为以下目录: C映射为\epoc32\winscw\c.
Z映射为\epoc32\release\winscw\variant\z.
在为仿真器构建时,构建工具认为正在构建系统应用,并因此放在Z驱动器中。但是,应用在仿真器中运行时创建的文件却放在C目录下。另一个重要的文件夹就是文档文件夹,包含了各种帮助文件。也可以经由Windows启动菜单在S60 Developer Tools下访问SDK文档。在这里,还可以发现Symbian Developer Library,其中包含了可搜索的指南及API文档,如图2.2所示。稍后,创建第一个Qt for Symbian应用,将看到许多Symbian特定的文件生成,并在Symbian Developer Library中描述它们的用途。Symbian Developer Library也可以从Carbide.C++帮助菜单进行访问。 现在准备开始使用Qt for Symbian构建应用。 这一部分介绍Carbide.c++ IDE。首次启动Carbide.c++,将显示Carbide.c++欢迎屏幕的问候。欢迎屏幕包含了许多快捷指导、发布注释等等。特别是对于Qt for Symbian,可以访问Overview??Qt Development。经由Help??Help Contents可以获取Qt开发指南。通过点击欢迎屏幕右上角的Workbench图标,可以进入工作台窗口,进行开发和项目管理。通过点击Help??Welcome,可以在稍后步骤重新回到欢迎屏幕。图2.4所示的工作台窗口可以分解为以下几个主要单元: 项目浏览器:显示当前项目的文件夹结构,并允许文件导航浏览。
编辑器:用于浏览和编辑源文件。
输出窗口:本窗口允许有几个不同的视图,如问题视图--显示在项目构建过程中遇到的问题,控制台视图--显示构建过程(如编译器、连接器等)的输出。 工具条:其中包含的"Build"按钮用于构建当前项目,"Debug"按钮用于以调试模式启动应用,"Run"按钮启动应用进行功能性测试。 用Carbide.c++术语,这种视图/窗口的集合称作视窗。还有其他有用的视窗,如Debug视窗包含调试会话期间有用的视图/窗口,如允许对变量和断点的检查,Qt开发过程中使用的Qt C++视窗。使用Window??Open Perspective菜单项可以改变视窗。如果切换到Qt C++视窗,会注意到一些额外的窗口出现在工作台中,如Qt C++ Widget Box,Qt C++ Property Editor及其他Qt相关的窗口。在接下来处理新的Qt for Symbian应用时,会用到这些视窗。接下来,熟悉使用Qt for Symbian创建"Hello World"应用的基本步骤。
到此,Symbian平台SDK已安装完成,准备使用。但是,SDK并没有包括Qt for Symbian需要的1.6版的Open C/C++插件。Open C/C++插件为开发者提供了标准的C和C++库,如对C++标准库的支持。因此,必须在已安装的Symbian SDK中安装插件。
下载链接:http://bit.ly/R1C2q
Open C/C++插件的安装步骤如下: 插件包含在一个Zip文件中,将其释放到一个临时文件夹中;
运行临时文件夹中的Setup.exe;
安装程序自动检测已安装的SDK,选择希望用于Qt开发的SDK,然后继续安装,接受随后所有的默认值;
Open C/C++库也需要安装到目标设备上,在安装Qt for Symbian库时将实施这一操作。
注意:由于一些应用对于安装路径有特定的要求,对于新用户,建议将所有软件安装到默认建议的目录中。此外,如果默认安装,在互联网上能够更容易地找到有用的'how-tos'及类似的建议。
注意:Open C/C++插件和S60/Symbian SDK的使用都需要在线注册。首次使用Open C/C++插件必须注册;但是,SDK在要求注册前有14天的试用期。通过帐号接入Nokia Forum主页,经由注册向导可完成注册过程。 Symbian和Nokia建议的IDE当前是基于Eclipse的Carbide.c++。Carbide.c++ IDE能够支持创建、管理及构建为Symbian OS和S60平台设备开发的应用程序。有三种不同的形式可以免费得到Carbide.c++。
所有这三种形式都能用于Qt for Symbian的开发,而且都包含在Carbide.c++安装程序中,可以从Nokia Forum进行下载(在安装时,应选择自己偏好的版本)。整个的安装过程有以下几步:
下载链接:http://bit.ly/6Rzaba
切换到下载URL,并按'Download Carbide.c++'按钮;
执行下载的.exe文件,并选择默认选项,即接受许可证协议,选择需要安装的Carbide.c++类型,及安装目录;
当前从Nokia Forum主页上可以得到的Carbide.c++最新版本是2.0版本。但是,由于Qt for Symbian当前要求Carbide.c++版本为2.0.2,因此必须从IDE内部进行更新。如果是第一次启动Carbide.c,将提示选择一个存放新项目的工作空间(workspace)。如果没有进行改变的特殊理由,可选择Carbide.c++默认建议的目录。在Help??Software Upate??Find And Install中可以找到更新选项。当出现更新对话框时,选择Search for update of the currently installed features并点击Finish。一旦更新管理器发现有效的更新,就提示选择一个更新镜像;如果不能确定哪个是最贴近的,可选择Automatically select mirrors并点击OK。选择所有更新并接受许可协议,启动更新过程。注意整个过程也许耗时超过20分钟。
Qt for Symbian要求能够从命令提示符构建项目。通过设置Windows启动菜单下的Carbide.c++??Configure environment for WINSCW command line可以满足这一要求。
注意:如果采用代理方式,需要配置Carbide.c++使用代理服务器。:
从菜单条选择Window??Preference;
扩展General标签,选择Network Connections;选择Manual proxy configuration,进入代理设置。
Carbide编译器补丁 由于Carbide编译器需要至少3.2.5版本及build482才能正常构建Qt for Symbian,因此,为了使环境正常工作,需要给Carbide.c++安装一个补丁。从命令行执行文件mwccsym2.exe可以检查编译器的版本号,如C:\ProgramFiles\Nokia\Carbide.c++v2.0\x86Build\Sym bian_Tools\Command_Line_Tools\mwccsym2.exe。如果编译器版本比上面指定的要老,就应当通过下面几步来对安装进行更新: 1. 新版编译器需要拷贝到Carbide.c++安装目录的x86Build子目录下,如C:\ProgramFiles\Nokia\Carbide.c++v2.0\x86Build。更新程序可从http://bit.ly/5fQEj4下载。 注意:如果打算用原始的Symbian C++编程,则不需要补丁,但是可能会妨碍Symbian的构建。为了确保能时常撤销这一改变,应当在打补丁之前对x86Build目录作一备份。 打完了上述最后一个补丁后,应用于标准S60/Symbian开发环境中的公共工具安装到此就全部完成。接下来,安装Qt for Symbian库,就可以为S60设备启动Qt应用的开发。
Qt for Symbian
在本书编写时,Qt for Symbian的最新版本是Qt 4.6;它包含了Qt for Symbian开发所需的文档、头文件和库文件。这一部分指导读者进行安装:
下载链接:http://qt.nokia.com/downloads
从上述URL链接下载Qt for Symbian软件包。在下载网页上,能够选择所希望使用的许可协议--如果选择LGPL标签,就会显示有效的LGPL下载。本书选择'Qt libraries 4.6 for Symbian'。
Qt for Symbian的发布是以一个exe文件的形式交付的。下载该exe文件到本地硬盘上,并双击启动安装。
Qt安装程序检测已经安装的Symbian SDK,并询问想用哪一个用于Qt开发。此处,选择所有当前已安装的SDK,就可以简单地增加对所有Symbian SDK的支持,并按Next。
然后,需要选择Qt库的目的文件夹。注意必须选择与所安装的Symbian SDK同一驱动器上的文件夹。另外,如果希望使用其他版本的Qt,如对于Windows应用开发,应当改变目的文件夹,如C:\Qt\4.6.0-symbian以便允许其他版本Qt能安装在同一文件夹中。
在设备上安装Qt
在移动设备上运行Qt应用之前,需要将Qt for Symbian库安装到设备上。安装步骤如下: 卸载任何先前安装在设备上的Qt或Open C/C++库。首先在设备上找到应用管理器,然后从应用管理器中就可以完成卸载操作。
导航到Qt文件夹,也就是刚刚安装了Qt库和工具的位置(在此处是C:\Qt\4.6.0-symbian)。在文件夹中找到文件qt_installer.sis,该文件以Symbian安装包(.sis文件)的形式包含了针对移动电话的Qt库。假定Ovi套件已经安装,并通过USB或蓝牙连接了移动设备,现在双击该文件,Ovi套件启动设备上的应用安装程序。
下一步,需要设置Carbide.c++来使用Qt for Symbian发布。
在Carbide.c++中配置Qt支持 打开Carbide.c++,进到Window??Preference,并选择Qt。在Qt Preferences下点击Add,并在Add new Qt version dialog中输入Qt版本名称、Qt安装文件夹中bin和include目录路径,如图2.3所示。