开发Series 60项目的时候你可以使用的各种选项总结在表1-1中。Symbian、Nokia和开发工具厂商Borland、Metrowerks正在提供更多的选择。但是,似乎微软开发工具,尽管它目前可行并被广泛地使用,在可预见的未来无法受到支持。
在微软、Borland和Metrowerks的多种IDE的功能之间目前有一些值得注重的差别。对后两种开发环境的增强正在进行之中。EMCC软件有限公司把所有的三种厂商的IDE都作为自己开发活动的基础。我们也天天使用命令行工具——并不是因为我们原意,而是由于我们目前只能这样做。这是为目标设备建立程序和自动化通宵编译过程的基本操作。C++BuilderX和CodeWarrior IDE现在可以用于为目标设备建立程序——但并不是所有的基本的建立操作都受到全部IDE的支持。
在写作本文的时候,开发任何Series 60项目的最轻易的和最通用的出发点是定义一对bld.inf和.mmp项目文件。在EMCC软件公司,这些文件用于任何特定IDE项目文件的生成过程,并且可以在任何需要的命令行建立过程中使用。这种方法也是Symbian和Nokia在它们的SDK和文档中提供的每个简单的项目目前所采用的方法。在目前情况不断变化的情况下使用专用的IDE是不可行的。各种情况很快就会发生变化,而这正式Symbian OS和Series 60开发人员的真实生活。
表1-1.基于PC的开发选项综合
选项
描述
命令行建立操作
使用Symbian OS工具进行编译和链接,使用微软Visual C++编译器/链接器为模拟器进行建立操作,从命令行调用。模拟器也可以从命令行调用。PC模拟器上的源代码层的调试需要在IDE中进行。
从命令行提示符调用用于ARM目标设备的GNU C++的跨平台编译器和链接器。
微软Visual C++ IDE
在IDE中使用微软Visual C++编译器/链接器为模拟器建立操作进行编译和链接。
从命令行提示符调用用于ARM目标设备的GNU C++的跨平台编译器和链接器。
Borland C++ IDE
目前两种IDE选择都可以使用。两者都在IDE之中使用Borland C++编译器和链接器进行模拟器建立操作。
从命令行提示符调用用于ARM目标设备的GNU C++的跨平台编译器和链接器。
Metrowerks CodeWarrior C++ IDE
在IDE内部使用Metrowerks编译器和链接器进行模拟器建立操作。
直接从命令行或CodeWarrior IDE内部调用ARM目标设备建立操作所需要的GNU跨平台编译器和链接器。
在本文的剩余部分中,我们使用HelloWorld示例项目来演示Series 60模拟器的开发、调试和部署过程的所有步骤。
我们也提供了示例应用程序需要的其它的所有文件——例如头文件(.h)、源文件(.cpp)和用户界面资源文件(.rss)。
你可以使用Series 60模拟器测试该应用程序,或者在某个IDE中启动它,或者从命令行提示符上运行它。但是,在模拟器上调试应用程序必须在IDE内部进行。
在模拟器上开发、运行、测试和调试应用程序之后,一般你都希望在目标设备上建立和运行该程序。因此我们还演示了如何为目标设备建立示例应用程序,如何部署它,并在目标Series 60硬件上运行它。
更多内容请看C/C++技术学堂 C/C++技术专题 C/C++相关文章专题,或 Series 60模拟器Series 60应用程序的开发、调试和最初的测试一般都在PC模拟器上进行,该模拟器提供了一种基于微软Windows的Series 60设备的实现。
在大多数情形中你会发现基于模拟器的开发过程与在真实的设备上运行的应用程序的操作是非常相似的;因此你的主要工作在硬件设备可以使用之前就可以进行了。模拟器的精确界面与提供的图形会有很大的不同,它依靠于你使用的目标平台、Series 60的版本和所选择的IDE。此外,还可能添加或删除一些按钮或其它的操作元素以模拟现实的设备的配置。同样,模拟器上可以使用的应用程序也依靠于平台的版本和设备厂商的选择。
模拟器和真实的设备之间有些差异无法避免。真实的Series 60设备可能带有硬件附件(例如照相头)和其它特性(例如后台振动)。因此有时候硬件对于开发和测试是必要的。此外,基于PC的模拟器不能精确地模拟精确计时、应用程序性能和内存治理的问题。
对于基于PC的开发,编辑/编译/建立周期是基于微软Windows开发工具集的。但是,与依靠Win32或MFC类库进行链接和建立不同,开发者将依靠于Series 60 SDK安装的头文件和PC格式的类库来进行链接和建立。作为结果的Windows格式的二进制可执行文件就可以在以PC的模拟器上运行了。
在开发过程中,特定IDE的项目文件治理着所有的链接和建立细节信息。它同时确保了建立操作的所有输出和其它需要的资源文件(例如应用程序资源文件)都被放到了适当的位置以供在模拟器环境下进行运行和调试。
根据图1-2,Series 60显示屏逻辑上被分成三个区域:状态块、主块和控制块。
图1-2. Series 60模拟器
状态块是屏幕顶部的刻度条(在模拟器上是蓝色的)加上它上面的区域。主块是屏幕中间的,位于状态条和屏幕底部之间的软按键(soft key)标签之间的部分。控制块是紧接着主快,包含了软按键标签。
状态块可以显示当前应用程序的信息和设备的一些普通信息(例如信号强度和电池情况)。它在大多数情形中是可视的,但是有时候是隐藏的。例如很多游戏就使用了整个屏幕。
主块是屏幕的主要区域,应用程序可以在这儿显示数据。典型情况下,这个区域作为客户端矩形引用,它通常被应用程序的数据显示所填满。
控制块占据了屏幕的下部,它显示了与两个软按键相关的标签,并根据需要显示滚动条。与状态块类似,控制块有时候也可以隐藏。在这种情况下,在Series 60中样式指导假定用户可以使用Options菜单(左边的软按键的默认的标签),即使它是不可视的(请参考Series 60 SDK文档提供的“Nokia Series 60游戏UI样式指导”)。
控制块下面的两个按钮分别是左和右软按键,用于选择当前关联的Options菜单或标记的操作。四路导航按键可以上下左右滚动,假如按下(点击)中间就可以进行选择。
你可以通过PC鼠标或光标按键在显示屏上的对象之间进行导航,从而与模拟器交互操作。我们可以直接地使用鼠标点击来选择文件夹或其它显示的对象,而不需要使用四路导航按键(仅仅在模拟器上可行)。我们可以使用PC键盘进行数据输入,或者通过点击模拟器上的12位键区来输入。因此与模拟器的交互操作是类似于、但并不是完全与使用真实的Series 60一样的——在真实的设备上没有笔输入,因此所有的移动和选择都是通过光标导航完成的。
更多内容请看C/C++技术学堂 C/C++技术专题 C/C++相关文章专题,或