1.1. Developing Series 60 Applications
1.1.1. Getting Started
Series 60 SDKs 由Symbian公司发布的指定版本的Symbian OS C++ SDKs构建。一个SDK包含工具、应用程序接口、类库和文档等,以方便开发者能够开发新的应用程序。
每个Series60的产品都建立在特定发布平台之上,而开发人员经常需要在不同版本的Series 60 的SDKs上工作,或为了不同的用户接口平台,使用不同的SDKs。
1.1.1.1. 开发过程概述
大部分的开发和测试工作可以通过PC平台上的模拟器来完成,尽管在目标机上的调试有所限制。此外,为了能够为目标设备构建可执行程序,有几种二进制格式(如ARMI,ARM4,Thumb)。编译和链接的过程可以通过命令提示符工具或其他IDE工具完成。
有两个通用的项目文件:projectname.mmp和bld.inf文件。这两个文本文件将作为构建选项的起始点,指定IDE、平台变量等。
bld.inf文件指定了项目中所有组件的名称,以及每个组件对应的自己的.mmp文件。如果一个工程有多个组件构成,如除了应用程序自身外,还有其他的指定的函数库,则每个组件都有其自己的mmp文件,每个库加上应用程序都有一个mmp文件,而每个文件名称将会列举在项目的bld.Inf文件中。
从一般symbian文件生成IDE和特定平台的项目文件的流程如下图所示:
图
下面来看“hello world”的例子。
1. 项目中有bld.inf和helloworld.mmp。用这两个文件作为输入,通过symbian的bldmake工具,可以生成abld.bat命令文件。然后就可以用abld.bat文件在命令提示符中执行项目相关的动作。如下图所示:
执行后就会在目录中生成相应的
2. 很多时候项目是在IDE中构建和运行的,这时你就要为你选择的IDE创建相关的文件。这里我们主要来看一下VC++。我们可以用abld在命令提示符中创建Hellowrold.dsp和Helloworld.dsw文件。但从网上说3rd不支持VC6,具体原因等深入了看能不能解决,如下图所示:
后来我把默认设备改为2.0版本的,但仍然有其他问题,通过网上查询,说是路径没有安装在系统盘目录的缘故。
不过用VS2005很方便,可以直接通过mmp文件或inf文件进行导入。
3. 用指定的IDE打开项目文件,将允许你在IDE的完全支持下,进行开发、构建、运行和调试。对于习惯用命令提示符的开发人员,abld仍然能满足你编译和链接的要求。
4. 可能是我的计算机性能比较差的原因,用VC2005运行Symbian9.2自带的helloworld程序,模拟器出现过后,半天才有反应。一开始还以为哪儿又出问题了,怎么结果出不来。
关于VC6成功编译Helloworld的例子:
按照上面的做法,始终没有成功,心中老是有疙瘩,于是决定用2nd版本进行尝试,最后终于成功,写下流程供大家参考:
1. 准备工作。首先保证Series60_v20安装在系统盘,即C盘。我一开始安装在了D盘,不过直接拷贝到C盘去仍然能用,所以不用再重新安装了。设置环境变量:
环境变量名 |
环境变量值 |
备注 |
EPOCROOT |
\Symbian\7.0s\Series60_v20\ |
该变量值不能有驱动盘符号 |
VC6_ROOT |
D:\Program Files\Microsoft Visual Studio |
我的VC6的安装路径,用在环境变量path中,可不用,path中直接写路径即可。 |
path |
%VC6_ROOT%\Common\Tools\WinNT;%VC6_ROOT%\Common\MSDev98\Bin;%VC6_ROOT%\Common\Tools;%VC6_ROOT%\VC98\bin;C:\Symbian\7.0s\Series60_v20\Epoc32\tools;C:\Symbian\7.0s\Series60_v20\Epoc32\gcc\bin;… |
其中前一部分是VC6相关目录的路径,后一部分是Series60_v20相关的路径。其余跟symbian开发不相关的路径,我用省略号省略了 |
其次若电脑上装有多个设备的话,要确保当前设备为Series60_v20版本的。下面我们来看查看设备和设置默认设备的相关命令。查看可获得的设备,用命令devices。如下图所示:
更改默认设备的命令如下:
2. 运行cmd,改变当前目录到.inf文件和.mmp文件的目录,我这儿是目录“C:\Symbian\7.0s\Series60_v20\Examples\basics\helloworld”。
3. 输入【bldmake bldfiles】,回车产生文件“ABLD.BAT”。
4. 输入【abld build wins udeb】,则为模拟器构建工程,含有可执行二进制的调试信息。若要为VC6构建工程文件,可输入【abld makefile vc6】。则会生成vc6的.dsw文件和.dsp文件,文件的位置依赖于你电脑上SDK的位置,我这儿文件产生的位置为“C:\Symbian\7.0s\Series60_v20\Epoc32\BUILD\SYMBIAN\7.0S\SERIES60_V20\EXAMPLES\BASICS\HELLOWORLD\HELLOWORLD\WINS”
5. 找到.dsw文件,打开工程,运行输出Helloworld,如下图所示:
图
1.1.1.2. 模拟器
用模拟器进行开发、调试、测试的好处就不多说了,模拟器的外观主要依赖于目标平台、所用的Series 60 的版本和选择的IDE。虽然模拟器给我们学习symbian开发带来了很多方便,但是由于模拟器和真机之间的某些不同无法克服,像摄像头、震动、精确的时间、程序性能、内存管理等等,所以在某种意义上,开发和测试仍需要用真机。
S60的显示器,逻辑上可以划分为三个区域:状态区、主区域、控制区。状态区显示当前程序的信息、设备的一般信息,如信号强度、电量。主区域主要显示程序数据。而控制区域是指屏幕下方的两个按键标签,用于指示选择进行响应的操作。其实就跟手机一样。我们来看一下3rd_FP1的模拟器界面,如下图所示:
图