# 虚拟键盘深入对比评测：iPhone VS Android

- 作者：黄俊杰
- 发布时间：2009-08-12 20:56
- 分类：公司
- 原文：https://www.ifanr.com/3758

By [Lukas Mathis](http://ignorethecode.net/blog/2009/08/07/virtual-keyboards-on-iphone-and-android/) from ignorethecode.net \| [Logout](http://twitter.com/logoutx)译，转载请注明ifanr.com译文链接。

![](http://farm3.static.flickr.com/2469/3572984056_47d010c539.jpg)

*Lukas Mathis的这篇细节评测深入分析了Android和iPhone在软键盘上的差距，系统总结了差距背后的原因。感谢*[*lordhong*](http://www.Twitter.com/lordhong)*在Twitter上的推荐，这里顺便推荐一下*[*他的Blog*](http://lordhong.javaeye.com/)*，如果你还不知道的话。*

虚拟键盘的优点在于可以让大屏设备保持一个苗条的身材。虚拟键盘缺乏物理键盘在输入手感上的先天优势，只能敲击屏幕上的一堆像素。为了让用户能够与这种系统进行有效的交互，它必须做到完美，需要采用一些小技巧帮助用户避开这种输入机制的固有缺陷。

对比iPhone和使用Android系统的HTC Magic (G2)，就会发现虚拟键盘能够造成的问题以及应对之策。在iPhone上打字——特别是打英文——非常顺手，也许比物理键盘上更好。在HTC Magic上做同样的事则非常恼人，错误连连。请注意，其中有些问题是由Magic本身而非Android系统所造成。

### 尺寸

HTC Magic和iPhone有着相同的像素面积：

![](http://farm3.static.flickr.com/2540/3814710106_13e5fbdb31_o.png)

整个键盘，乃至每个按键的像素面积都基本相同，不过Android在空格键左右适宜的添加了逗号和句号：

![](http://farm4.static.flickr.com/3549/3813902165_7b4ff5eb39_o.png)

但HTC Magic屏幕的物理长宽均为iPhone的90%。这听起来或许无甚大碍，但实际上对可用性影响很大。下图是物理显示面积对比:

![](http://farm3.static.flickr.com/2430/3814710196_f31949992c_o.png)

接下来轮到键盘，同样是物理显示面积对比:

![](http://farm4.static.flickr.com/3459/3813902235_c1b4cecc59_o.png)

哪怕长与宽仅差10%(之所以不用19%左右的面积差差距，是因为在这方面宽度远比长度更重要)，HTC Magic的键盘还是要小许多。这带来了两个问题：

首先，这降低了按键准确率。我用iPhone时很少按错，用Magic时常常按错；

其次，被手指遮挡住的部分所占键盘比例更大。

![](http://farm3.static.flickr.com/2563/3814710258_097e2013b8_o.jpg)

这让观察自己所按按键更为困难。不得不承认，我的手比较大，有些人可能会更喜欢HTC Magic稍小的屏幕，但哪怕是他们也可以在更大的屏幕上实现更精准的点击。

### 注意力

使用物理键盘时，用户的注意力集中在屏幕显示的文字上。没必要看着键盘，因为按键不会移动，而且键盘的物理特性也确保了用户的手指定位。虚拟键盘就不同了。哪怕手指最细微的位移也可能导致错误点击。更有甚者，虚拟键盘本身就可以变化。在绝大多数情况下，虚拟键盘用户会将注意力放在键盘而不是屏幕所显示文字之上。

这就意味着误按时的字母提示必须明显，能让用户在只看着键盘的情况下也可以注意到。由于用户的手指挡住了按键，单纯高亮按键无法提供足够的反馈，现在两个系统的字母提示都在按键上方弹出：

![](http://farm3.static.flickr.com/2481/3813902293_a446134032_o.png)

不幸的是，iPhone可以在按键瞬间显示出所按字母，但Android上有延时。一开始我怀疑这是硬件速度造成的延迟，但后来发现模拟器上也有延时，这只能是刻意而为。延迟是如此之严重，以至于打快了以后，根本就不弹出字母提示了。

##### **[演示视频下载](http://ignorethecode.net/blog_images/virtual_keyboards/Android_Keyboard_Delay.ogg)，体积很小**

这个小设置在实质上将字母弹出提示无效化，强迫用户不断在键盘和文字输入栏之间不断移动注意力焦点。这减缓了我的打字速度、不断打错单词、字母。

### 速度

尽管此前iPhone的键盘速度并不像3GS上这么好，但从按键到出现字母绝对没有延时。iPhone显示字母的速度可以和你打字一样快，Android做不到，这就带来了一些问题：

首先，你常常得打上几个字母之后才能看到单词，Magic的速度就是跟不上。

其次，Magic有时会在用户已经开始打新的单词以后纠正之前的单词。打完单词后的变化往往并不明显，因为延时太长。结果就是你常常看不到自己真正打出来的词，而且即便你打对了，Magic也有可能在你打完很久以后“纠正”它。

### 自动纠正

自动纠正是Android胜过iPhone的地方。iPhone仅向每个单词推荐一个纠正，而Android提供好几个，从用户尚未打完整个单词之时就开始推荐。

![](http://farm3.static.flickr.com/2470/3814710310_aff9731b77_o.jpg)

打长单词时，往往刚打了几个字母就看到正确的单词出现在列表中。不过我不确定这在效率上到底是不是有益无害的，因为你把少打字省下的时间花在了查看推荐单词列表上，但这样在感觉上确实更好。

![](http://farm4.static.flickr.com/3571/3813902349_110423537b_o.jpg)

iPhone会自己添加你使用频繁的词，而Android可以手动添加单词。和iPhone一样，Android也有绕开你想打的词的趋向，但你可以在Android上通过手动添加单词修复这种问题。(iPhone上就要另辟蹊径，[新建一个叫Fucking的联系人](http://tntluoma.com/iphone/ducking-iphone/))

两款手机都会自动为can’t等词添加’。和iPhone不同的是，Android不会坚持将所有的its替换成it’s。这两个系统也都有标点符号快捷键，特别是两次空格会按照英文输入习惯自动变成句号+空格。

### 按键动态缩放

iPhone会自动调整不可见的“触摸区域”来方便你打字。[David Pogue](http://pogue.blogs.nytimes.com/2007/06/27/iphone-keyboard-secrets/)是这么描述的。

> 尽管无法用眼睛看到，但iPhone键盘的按键面积是实时变化的。就是说软件会根据概率自动增大特定按键的“触摸区域”。

举个例子，如果你打了N，那么下一个字母不太可能是H，但很可能会是G。iPhone就会相应的增减这两个按键的触摸区域。如果你打了N再按到G和 H之间的间隔，iPhone就会判断你想打的是G，因为NG是英语里的一个常用字母组合，而NH并不常用。（住在New Hampshire的人除外，该地的缩写是NH）。

这常常会致使你在输入iPhone不支持的语言时出现错误，但对它支持的语言来说，这确实颇有助益。就我目前的观察来看，Android似乎根本没有这种按键缩放——在用了不支持这种功能的软键盘之后，你才知道自己到底有多么依赖它。

译注：这样的设计贯穿与iPhone的UI，KKK此前的[触不到的按钮](http://www.ifanr.com/3559)对此也有评述。

### 语言支持

iPhone的虚拟键盘可以快速切换所用语言，并会自动切换到该语言的纠正用字典。而Android无法快速切换键盘语言设置，即便设置内切换了Locale也不会更换软键盘键位。（译注：谷歌、HTC等输入法可以直接快速切换输入语言，但这样就替换了系统软键盘，而这两个输入法的英文输入体验远不如系统软键盘）

两个系统都可以通过长按字母键输入大/小写，也都可以切换到数字和特殊符号的第二键盘。用户可以在iPhone上用手指从“数字键盘”键划至特定的数字或符号，它会在输入该数字/符号后自动切回普通键盘。Android没有这个快捷操作。

### 横向键盘

两个系统均提供横向键盘。横置手机会自动切换到宽屏虚拟键盘。增加的宽度可以显示更大的按键，让打字更为容易。横向键盘在两个系统上都需要软件的支持。事实上，有些Android程序对虚拟键盘很不友好，弹出虚拟键盘时表现很奇怪。这可能是因为它们本为G1这个有物理键盘的手机而设计。但我估计这些程序最终都会提供升级，包容虚拟键盘。

### 多点触摸

iPhone通过两种途径使用多点触摸支持虚拟键盘：

1. 
2. 使用组合键。比如你可以在按住Shift的同时按h键输入大写的H，而同样的操作在Android上只能先按Shift，松开后再按h；
3. 双拇指同时输入而不丢字。很快地用左手输入t，右手输入o，iPhone上会打出to，而Android上会丢一个字母。

Android目前仅有HTC Hero支持多点触摸。

### 总结

虚拟键盘的成败取决于细节。不是单个，而是所有这些特性让iPhone在虚拟键盘上胜过Android。无数小变化带来真正的巨变。Apple很显然是花了大把时间处理好每个细节（呃，除了那个Ducking字典），而Google目前在这方面是只求拥有，不求与iPhone比肩。

不过我毫不怀疑Android的虚拟键盘将在未来得到提升，并期待着他们的表现。
