从零开始学习塞班S60v5的开发

以前对手机开发一无所知,现在决定好好学习一下这门最有前途的技术。

因为自己手头有一台诺基亚5530XM的智能机,所以决定学习Symbian S60v5的开发技术。

 

一、安装配置开发环境

 

1. 首先从eclipse的官网www.eclipse.org下载了最新版的eclipse pulsar。这是eclipse专门为移动开发者提供的IDE。直接解压缩到我的D:/Program/mobile下了。

 

2. 从诺基亚论坛http://www.forum.nokia.com/下载了最新的S60v5的SDK。全名是S60_5th_Edition_SDK_v1_0_en。

 

3. 花了近二十分钟才把这巨大无比的SDK安装完成,也装在了D:/Program/mobile/下。安装手册中要求路径中没有空格,这点我注意了。诺基亚的软件只能给一个字,烂!安装向导里自定义安装时所需磁盘空间始终为0。而且进度条严重不正确,过完99%才花了一两分钟,而最后的1%却花了十多分钟才装完,都不知道安装了多少.rXX文件。唉,以后磁盘碎片又超多了。

 

4. 安装过程中会要求指定eclipse的路径,我选择了刚安装的eclipse pulsar。不过后来后悔了,还是应该先装好Carbide C++,然后指定到Carbide C++自带的eclipse目录下的,毕竟以后主要还是想学symbian C++的开发,javame只是玩票。安装最后又会问是否安装CSL ARM ToolChain。不知道是个什么东西,看到安装手册中说编译什么什么要用到,便先装上了。

 

5. 装完SDK后,便去开始菜单里运行那个Emulator,好,诺基亚那帮SB们干的第一件好事被我遇上了。点击运行后,可以在任务管理器中看到epoc.exe进程启动了并在狂吃内存,但硬盘灯闪了一阵后,这个进程居然就自动退出了,而且没有任何屏幕和其他征兆。只有windows无情地弹出一个应用程序错误是否报告的对话框。

于是重装SDK,又等了N久,安装完成。因为想覆盖安装,没有先卸载,结果装完发现添加删除程序里上次的v1.0还在,又多了个v1.0_2的SDK。晕倒!又把两个版本全部卸掉。再重装一次……麻木的盯着屏幕等着装完后,再次启动Emulator。失败!

于是直接上google搜索英文资料,未果。在诺基亚论坛里翻了个底朝天,没有!

 

6. 最终还是在中文百度上找到了一个类似案例,帖子中说Symbian的软件对路径处理很差,如果安装SDK的目录层次太多就会出现这种情况。于是再次卸载SDK,安装到D盘根目录下,因此最终的SDK主目录为D:/S60/devices/S60_5th_Edition_SDK_v1.0/。再次启动Emulator,模拟器界面终于缓慢的出来了。

最终结论是:诺基亚的开发人员实在太不专业,因为XP系统的路径名最长为255个字符,而他们的SDK里已经有很长的路径名了,所以,如果SDK的起始路径名太长(根本就是稍微长一点都不行),就会导致程序异常退出。而且这个巨大的问题,在他们的文档中只字未提。

 

7. 运行模拟器很慢很慢,等N久界面还没有装载完成,而且会在windows的任务栏不停的闪啊闪。

 

8. 模拟器终于搞定,开始配置eclipse。配置eclipse,一定要打开帮助,从JavaME的Getting start开始,一步步照着做才行。

在preference的javame中找到devicemanager,点击manual install,将刚安装的S60v5 SDK找到。

 

在SDK的指定目录下,要搜很长时间才能搜出Device,大家要耐心,别等不及了就直接cancel掉进程了。找到后会有两个选项。

 

配置好device后,再根据帮助中描述的,把debug的suspend配置弄一下,把eclipse/configuration/config.ini里添加一行osgi.framework.extensions=org.eclipse.mtj.core.hooks。

 

9. eclipse的帮助文档要求把debug的timeout时间改为20秒,但S60的SDK帮助文档中要求改为60秒。可见诺基亚自己也知道自己的乌龟慢啊哈哈。

 

10. carbide c++还正在下载中,网速太慢,下了一天还没下完,只有几K的速度。真是奇怪,同样在nokia网站下SDK,600M的SDK又一会儿下载完了。等下完了carbide c++再来记录配置方法。

 

 

 

二、创建第一个MIDlet项目。

因为carbide c++还没下完,决定先尝试一下javaME。

1. 根据eclipse帮助文档,创建了一个MIDlet项目。创建好的目录结构如下:

我选择了JMunit支持和localization支持,JMunit应该是用来写testcase的,localization用来指定语言资源文件,所以目录结构中有res目录和i18n包(自己指定的)。我还选择了Splash Template,创建了一个带有欢迎屏的简单程序。

 

2. 编译运行这个项目。然后就遇到了第二个大问题:

点击run as emulated java me MIDlet,弹出来个对话框:

到Connect to Agent的时候就停住了,并弹出来另一个异常对话框:

 

于是,又开始了在google和baidu的傲游之旅。找到一个方法,说是S60_5th_Edition_SDK_v1.0/epoc32/tools/ecmt/config/下的config.properties里,需要在epdt.java.version.start=1.4.1,1.4.2,1.5,5.0后面增加一个1.6。但我的SDK里已经是1.6了。所以这个不是原因。

后来想到是不是eclipse并不能自动启动模拟器啊?于是先运行模拟器在run。结果还是到connect agent就走不下去了。最后把开始菜单里的那个device connectivity tool打开,并点击connect后再运行程序。果然,connect agent居然被pass了!

终于这个Demo程序成功的在模拟器上运行起来了。

 

 3. 在使用模拟器过程中,总是会在手机屏幕上弹出!widgetregistry的错误提示,但又不影响使用。查了一下,据说把S60_5th_Edition_SDK_v1.0/epoc32/release/winscw/udeb/widgetregistry.exe改个名字就不会报错了,这个东东是用来开发widget,因为我们一般很少开发widget,所以可以通过改名来禁用。测试了一下,果然可以。

 

4. 最终的splash程序效果如下图:

 

未完待续,先去睡觉...

 

三、从头开始学习Carbide C++

 

Carbide C++是Nokia提供的开发Symbian程序的官方IDE。我从Nokia的官网上下载的版本是2.3.0。

1. 安装Carbide C++。 安装Carbide C++还是比较顺利的。我的安装目录是D:/Program/mobile/CarbideCpp,选择了默认安装,它提示要安装的东西我全部装上了。这里只要注意一点,就是安装路径中不能出现空格。

2. 配置Carbide C++。安装完成后,打开window->Preference->Carbide C++->SDK Preferences。可以看到已经搜索到了系统里已安装的SDK。

如果系统里安装了QT库,且需要在程序中使用QT,需要在配置QT库的目录。

 

3. 安装完毕后,选择New->Symbian OS C++ Project,可以看到下面对话框:

最下面有两个示例项目,可以创建一个来看看。我选择了Birthdays这个项目。选择并创建后,就生成了一个完整的项目,含有源代码、图片等所有资源。

 

阅读更多
换一批

没有更多推荐了,返回首页