开发跨 UI 体系的 Symbian 应用
2010-02-28 22:26:00 来源:WEB开发网一直以来,Symbian都是基于OS + UI体系分离的设计,这种分离又不同于Android,后者的不同UI只是视觉呈现的差异,对应用而言,是完全兼容的。但Symbian的不同UI体系,如S60、S80、UIQ、QT等,彼此间连UI的API都不兼容,对应用开发者来说,这真是一个噩梦。虽然也可以通过将UI API的使用限定于Akn UI(S60、S80、UIQ等当代UI体系共同的继承源),从而实现最大程度的兼容,但这样做是以牺牲广泛的可用UI元素为代价的,对稍复杂的应用而言都不太现实。况且即将取代现有各种UI体系的QT,又是一次颠覆性的变革,不用指望任何的兼容可能了。
那么,在这样一个变革到来之前的暗夜,如何开发一款可跨UI体系的Symbian应用呢?这并非没有可能,但有着诸多的限制。如果你的应用能满足这些限制的话,那么完全可以成为真正意义上的跨UI体系的Symbian应用。
以我在2004年开发的FontRouter为例,它可以堪称一款具有代表意义的跨UI体系应用。从2004年到现在,它只发布过两个版本体系,一个适用于Symbian OS的6、7、8版本,另一个则适用于现今的Symbian OS 9.x,却可以用于目前所有已知的Symbian机型,包括最早期的Nokia 9210到最新的N97。之所以仍然出现了两个版本体系,并不是为不同的UI体系。做Symbian开发有一定时日的朋友应该都明白其中的原委,简而言之,Symbian OS 9是一个全新架构的OS版本,它甚至忍痛抛弃了对此前OS版本应用接口的二进制兼容性。因此,没有任何应用可以同时兼容Symbian OS 9前后的手机。由于FontRouter只使用到Open Font System接口,这是属于OS体系内的部分,与UI体系无关,因此无论是S60还是UIQ的手机,都可以无障碍的使用它。FontRouter最后一个版本发布时,S60 v5还未推出,但它却能很自然的兼容新的UI体系。对与即将到来的采用QT UI的Symbian^3,不出意外的话,也完全能够正常使用FontRouter。以前很多朋友问及为什么不给FontRouter编写一个配置程序,答案很简单,因为我希望继续保持它“无UI设计”的魅力!:)
当然,FontRouter只是一个很极端的例子,毕竟大部分称得上应用的程序,都不可避免的要与用户进行交互。那么如何才能实现包含用户交互的跨UI体系的应用呢?
对于开发者而言,有一个简单易行的办法,就是使用“Console API”,比如调用printf()和scanf()实现简单的交互。但这毕竟也不能作为一个应用的正式UI,那如何才能实现真正意义上的跨UI体系用户交互呢?
- ››开发学院教你用SQL 语句最快速清空MySQL 数据表的...
- ››UiModeManager设置夜间模式和行车模式
- ››开发一个自己的HTML在线编辑器(一)
- ››开发一个自己的HTML在线编辑器(二)
- ››开发者在App Store上赚的钱比在Android Market上多...
- ››开发者应深入学习的10个Android开源应用项目
- ››开发移动 Web Ajax 应用
- ››开发者眼中的iPhone与Android
- ››开发者或想使用的10个Android2.2新特性
- ››开发实例:Android 身高计算器的实现
- ››开发 Derby 的表功能
- ››开发火爆 博看文思称 iPhone 可作\血压计\
更多精彩
赞助商链接