找回密码
 立即注册
  • 便民服务
  • 关注我们
  • 社区新手

[谈天说地] Qt杂谈——为什么是Qt

[复制链接]

马上注册,享用更多功能,让你轻松玩转DOSPY论坛-诺亚方舟号

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本文很多具体表述仅为个人观点,某些数据来自记忆,如有谬误,恳请各位指出。文章布局不善,对此造成的阅读障碍请见谅。


我们常常听到"Qt平台"的说法. 这篇杂谈会简单讲述诺基亚选择Qt的历史背景与渊源.


(一) 塞班到底有没有触屏?
很多人对塞班的触摸印象始于S60v5, 就好像塞班在S60v5之后才拥有触摸功能.
天地混沌, 鸿蒙未辟之时, 英国宝意昂公司运行塞班系统前身的EPOC系统的PDA即已支持触屏. 第一台运行名义上的塞班系统的爱立信R380也搭载了电阻触屏.
可见, 塞班的触屏历史源远流长, 但塞班常常给人一种T9按键机系统的感觉. 这是因为诺基亚的Pearl路线太过成功, 遮蔽了其他机型的光彩.


(二)诺基亚赢麻了
众所周知, 塞班公司为塞班系统拟定了三种发展路线:
Pearl珍珠, 主打亲民的T9按键路线.
Quartz石英, 主打电阻触屏的高端路线.
Crystal水晶, 主打全键盘大屏宽屏通讯器的商务路线.
诺基亚S60, S80就分别对应着Pearl和Crystal路线.
不同的路线之间显然是不兼容的,而塞班公司内部的分歧就此开始。UIQ,S60和S80起步时间基本相同(2001-2002),且UIQ也一直延续到了大家熟知的S60v3时期。
在这段共存时间内,诺基亚的S60率先成功占领市场。于是,塞班公司里除了诺基亚以外的公司抱团取暖,想通过丰富UIQ生态来防御诺基亚。当时塞班公司发布的开发者手册中,推荐程序员把软件的前后端分开编写,在不同的UI平台上共用一套底层代码(Engine),而为S60,UIQ,S80等分别编写不同的界面代码。而诺基亚疑似是拗不过UIQ公司,也是找明基代工了个6708出来。
然而由于诺基亚的S60疑似过于成功,许多开发者都倾向于只兼容S60,其他的界面理都不理一下。以至于诺基亚自己都把S80给砍了,把S60v3用在自己的通讯器E90上。

(三)诺基亚的梦碎
在约8年的较量中,塞班内斗终于以2008年UIQ公司申请破产而告终,同年诺基亚收购塞班公司,终于当上了塞班皇帝。然而此时诺基亚动不动就快乐地发布v3机型的日子已经结束了,樵布斯正拿着爱疯3g要把传统手机的世界砍个底朝天,作为当年的塞班扛把子诺基亚总得拿点啥玩应出来应战。
“触屏是吧?UIQ那玩意就算了,S60这么牛掰的东西,想必加入触摸功能也能吊打那个什么iPhoneOS对吧。”
于是诺基亚决定给本就是给按键机设计的S60加触屏功能。
2008年10月,诺基亚的第一台S60v5机型5800XM发布。众所周知,S60v5一经发布,大家立刻议论纷纷,褒贬不一。
主要的黑点有:
电阻屏触摸像史。
操作逻辑硬搬v3。
硬件配置一坨史。
兼容性也没多好。
接下来我们一条条对这些问题进行解析。


1. 电阻屏的锅:关于Palm,UIQ,WMPPC这些以电阻触屏为主要操作方式的系统为什么冷门,我暂且蒙在鼓里。也许电阻屏本身就是黑点。
诺基亚不上电容屏有两个最主要的原因:1.电阻屏便宜。2.“照顾”东亚用户(四舍五入等于中国)的手写需求。你也可以看到5230背面直接就送一只手写笔,然而我是不太信服第二条理由的。咋指腹就不能写字儿啦

2. Avkon史山
这一点很值得讲。S60本是为按键机设计的,其逻辑也高度贴合按键逻辑。
手机的屏幕分三个部分,分别是状态栏,软件界面和软键区域。状态栏用于显示信号强度,电池余量,时间,软件名称和logo,分页指示器;软件界面用于显示具体的软件内容,下面会继续介绍;软键区域用来提示左右两个软键在当前情景下是干嘛用的。
S60默认只提供了“列表”(如功能表的列表视图),“网格”(如功能表的网格视图),“表单”(如编辑联系人界面),“设置”(如设置界面)几种简单的布局方法用于软件界面,想用别的就必须自己绘制。
而软键用于完成一些和上下文相关的功能,比如说我现在正在编辑联系人,那我软键就应该实现“保存”,“退出”等功能。
按键手机主要使用十字键和左右软键完成大部分UI交互,十字键操控上面所说的“列表”“网格”,而这就是按键手机的底层逻辑。
对于触屏机器,我们只需要上面一个通知栏,下面一个三大金刚或者苹果式的home键,其他所有相关的操作都应该在软件界面内完成。但S60v5脑子还来不及转弯,于是就有了屏幕下面横着的两个大软键,以及平乏无味的软件界面。

3. 硬件配置
诺基亚向来以靠着塞班省性能的特点在硬件上抠门闻名四海,一个经典的例子就是v3机的GPU。这番举措导致大家都懒得兼容GPU,一个个都是靠CPU狂暴软绘图。到了v5时代,苹果生动的动画和特效单靠CPU软渲已经难以实现,甚至连v5本身的UI绘制都卡的一批。卡帧率?每次功能表滑动到还没滑动到过的地方就开始卡。(显然这是在把预渲染的svg的位图加载进内存)
反观投敌S60的骚尼爱立信,U8i直接搭载诺基亚想都不敢想的CortexA8,附赠PowerVR GPU,运行后来的Qt QML界面贼流畅。(感谢DogEZ的测试)看来大法还是用料足(笑。)

4. 兼容性问题
最著名的两个例子:CorePlayer和早期QQ。
我们也不知道具体原因,反正CorePlayer一到v5上就开始抽风,怪谁呢?
v5发布后,腾讯还来不及做触屏版QQ,所以大家只能用虚拟键盘用v3的QQ。同时期也有一大批v3软件放在v5上就扑街,虚拟键盘满天飞。

(四)Qt终于来了
其实诺基亚早就料到了上述的问题。诺基亚在自己老家芬兰四处打探,看见隔壁挪威有个叫做Trolltech的公司,做UI界面做挺好,嵌入式也搞得不错,于是财大气粗的诺基亚就把Trolltech收购了,为的就是那个叫做Qt的神奇宝贝。
Qt入手之后,诺基亚并没有立刻把它实装到塞班上。直到2010年,预装Qt的塞班三发布才标志着Qt与塞班的正式融合。自此,诺基亚终于拥有了自己的现代意义上的触屏塞班系统。
塞班三针对v5的缺点,做出了以下改进:
1. 全面采用电容屏,推进双指操作的利用,Who wants a stylus?
2. 基本克服了S60 Avkon的史山逻辑,利用Qt逐渐把生动的用户控件搬进了屏幕中央。
3. CPU 680MHz起步,后期更是把ARM11超到了1.2GHz;全系普及GPU,除了可怜鬼500;加大内存,承载Qt框架。
4. 兼容性就随他去吧,反正现在我们有更牛逼的Qt!!!
手机市场瞬息万变,两年后诺基亚塞班系统和米狗系统的衰落,最终还是让诺基亚和Qt的缘分断结。在诺基亚玩Qt的几年内,安卓苹果飞速崛起,姗姗来迟的塞班三和米狗,来的太晚了。





上一篇:2025年9月14日签到记录贴
分享至 : QQ空间
收藏
回复 使用道具 举报

0 个回复

您需要登录后才可以回帖 登录 | 立即注册