Series 60 将一个用户界面层(Avkon)添加在Symbian OS v7.0s 底层的Uikon 之上。
Uikon是Symbian 核心用户界面,Avkon是S60平台的用户界面。
Avkon 提供了一 套UI 组件和一个专为Series 60 设备设计的软件框架。
UIKON 是所有Symbian OS设备都支持的一种用户界面和控件框架。
AVKON 是60系列对UIKON和Symbian OS应用程序框架其他部分的扩展和改动
在Series 60 SDK(在文件 夹:/Series60Ex)有所提供的软件示例介绍了怎么用avkon开发。
当我看到这些代码的时候在想着,怎么用vc来打开啊,没有dsw,dsp
先看看帮助找找。
解决方法
举个例子,hellpworld
在使用vc的时候,在命令行中使用abld建立HelloWorld.dsp和HelloWorld.dsw项目文件
我们首先进入Series60Ex/HelloWorld目录。在Symbian中,一个Project通常是按inc, src, group等目录组织,group目录里放的是项目文件。用命令行模式进入目录,然后执行:
bldmake bldfiles
这个命令会在group目录下生成一个abld.bat的批处理文件,并且会在Series60/Epoc32/BUILD下生成SERIES60EX/HELLOWORLD/GROUP这个目录,并在最底层目录下生成.make文件。
然后,运行生成的abld.bat
abld makefile vc6 就可以生成vc工程文件
对于Metrowerks CodeWarrior,可以使用普通的方式在IDE中建立项目文件,也可以把.mmp文件直接导入IDE中。导入过程将建立CodeWarrior的特定项目(HelloWorld.mcp)所需要的文件。
类似地,Borland C++ Builder移动版IDE能够执行与Metrowerks IDE类似的导入事务,但是它是导入bld.inf文件而不是.mmp文件。例如Borland C++BuilderX将建立叫做HelloWorld.cbx的项目文件。
60系列应用框架
mvc是60平台用户界面设计中通用的设计模式
s
avkon的基本用户界面组件简介
没有了可视化界面设计,界面控件和文本都要自己在资源文件中定义。
当然也可以在代码里创建控件或修改控件。
异常处理
象智能电话这样的小型手持设备, 一旦出现资源溢出的错误,对于系统来说重要的事情就是返回到前一个稳定的状态,而不失去任何重要的数据。 这使得完全地捕捉和处理每个运行错误对于系统和应用程序来说是非常重要的。
由于资源溢出而出现的错误,和所有的运行期错误一样被称为异常。 在标准的C++中,这些异常是使用try-catch-throw机制处理的,但是因为它造成了代码长度的负面影响,所以Symbian OS提供了它自己的称为trap harness的机制。
Symbian开发他们自己的异常处理程序的另一个原因是开发Symbian OS的时候,try - catch - throw机制还不是C++标准的一部分。trap- harness的概念是使用一个TRAP宏把可能引发异常的函数封装起来。这个宏可用于捕获多个函数,并且这些函数可以嵌套。万一出现一个异常,导致异常的函数的执行就会通过User::Leave函数终止,相当于标准的C++异常处理中的throw。这被称为一个leave(离开),它将返回程序执行到结束的TRAP宏,在那里相应的恢复动作可以被执行。
Symbian OS还提供一个工具,以便清除异常。一个cleanupstack被用于引用只被一个自动变量引用,并且如果出现一个leave的时候需要被释放的对象。TRAP宏将销毁cleanupstack中自动变量分配的内存。
多任务和内存管理
Symbian C++ API实现了非常有效的多任务和内存管理。基于内存的操作,如应用的上下文切换被限制到最小。Symbian OS主要基于事件驱动而
不是多线程机制。多线程可以实现但应当避免,因为每个线程系统开销都潜在地增加了几千字节。相反,一个基本的事件驱动不需要任何应用
上下文切换并且只有几十字节的系统开销。已经给与Symbian OS的健壮性和可靠性设计方面以特别的关注。