我们之前发的《》一文引起了大量争论,所以我们需要深入探寻一下。Nexus One的触摸屏幕并不能说是“坏掉”了了──只是受制于硬件的限制,所以无法得到我们期待的性能。
先让我们看看Nexus One使用的触摸传感器──HTC选择了,实际上这个传感器在2007年就发布了,而且我们相信HTC全部Android手机里用的都是这个传感器。
ClearPad 2000支持“双指互动和手势”,包括双指缩放和旋转操作,这也是Google后来在浏览器、图片库和地图应用里启用双指触摸所使用的方式。问题在开发者试图使用复杂的双指移动来操作游戏的时候出现了。这些多指触摸问题都在,Google员工对其的回复:
这些问题对于Android平台来说是无能为力的。请不要记录这些bug了。Android系统只能得到由硬件汇报上来的数据。对游戏或类似应用来说没有什么“标准化”,这些数据都是由屏幕来提供的(尽管Droid的框架里会有一些特殊的代码来xx屏幕所产生的多余数据,可以说这应该是固件或驱动做的事情,因此这应该是个别屏幕和硬件的问题)
摩托罗拉的Droid确实使用的是跟HTC不同的触摸传感器(不过不清楚是哪款),应该正是因为“Droid的框架里会有一些特殊的代码来xx屏幕所产生的多余数据”所以它的多点触摸性能要比HTC系列Android手机要好。
那么这些特殊代码是什么?Nexus One也可以用这些特殊代码吗?Cyanogen的作者通过源代码找到了如下发现:
有点意思,Droid的框架里确实有一些hack存在(而Nexus One没有)可以设置config_filterTouchEvents。如果按默认情况将其禁用,那么Droid也会有多点触摸倒错的问题,xx它就好了,不过在双手交叉之后还是会有触摸点关闭的问题。
看到了吧?Nexus One和全部HTC Android手机都受制于硬件的限制,但是我们应该可以期待未来通过软件升级对多点触摸性能做出改进。{zh1}一个好消息是,触摸传感器支持真正的多指手势并可识别出最多10只手指,也许HTC应该认真考虑一下是否要在下一款Android手机里配备这款新的触摸传感器了。
Via