Nielsen最近的研究数据表明,Android系统的设备已经在数量上超过iOS系统了,所以并不难看出Android市场的繁荣正如日中天:有4.8亿的用户正在使用Android设备,每天有100万个新的设备被激活。这意味着,每三个星期,新激活的Android设备数几乎等于整个澳大利亚的人口数。
为了适应Android市场的快速增长,知名的App也以越来越快的步伐发布Android系统版本,例如Instagram的Android版本仅仅在10天之内就获得了4000的下载安装。尽管这个平台的扩张空前地快速,但绝大部分的App质量并不尽如人意。在Google Play很少有像在iTunes Store一样多高质量的App,部分的原因可能是由于Android在过去几年中快速度过其青春期,而导致混乱和不稳定,于是很多设计师为了避免这种混乱而倾向于选择iOS平台。
当然很多系统的问题被夸大其词,其中一些Android的问题在新版本中已经不复存在,针对仍然存在的一些问题,本文提供了一些解决方案,同时也为将要开始设计伟大的Android应用的你提供一些建议。
第一部分:青春期症状
许多App的表现不如预期是因为平台的不成熟。即使Android拥有一个强大的实验场所——为制造商和开发者提供了非常自由和开放的环境去创造他们想要创造的App或功能,但并没有很多人愿意在一个如沙盒(Sandbox)的环境下来工作。不过如今,这个沙盒已经逐渐成长为可以承载伟大设计的基础了。接下来的一些例子将为你展示Android如何从青春期变得成熟:
Google自己的App缺乏一致性
并不是很久以前,几乎所有Google家自己的Android App几乎每个看起来都不太一样:
上图分别是Google在2010年五月设计的Action bar模式建议,但在Android2.3版本中的Gallery(相册)应用就忽视了这种设计标准;最下方是在2011年重新设计的该应用Action Bar,不难看到Google自己花了一年多的时间才开始遵循自己的设计指引。
在Android开发社区中,缺乏以用户为中心的设计理念
由于自身缺乏一致性,Google并没有给开发者树立一个正确榜样,正是因为这种缺乏一致性的设计指导和模式标准,导致了平台上用户体验较差。好的设计是以人为本的,它利用技术帮人们达成他们的目标。Google并不像另一个极端Apple一样,在最开始反复和开发者强调用户体验的重要性。
在不同设备以及不同的系统版本之间,有着明显的一致性体验差异
硬件制造商往往定制自己的系统UI和硬件按钮,这就造成了设备的碎片化,使得测试和质量控制非常困难,在不同设备上设计一致体验的App变得几乎不可能。
上图可以看到在不同的设备上,连Home键按钮的位置全都不一样。在这个快速增长和不断变化的市场中,对独立开发者来说很难正确的测试应用程序。因此,大多数的应用在真实的使用情景下并不像原先被设计的一样好用,或者干脆缺乏好的设计体验。这些应用仍然在市面上,但不意味着我们也要做这样的应用,Android已经在很多方面得到了改善,足以支持你为广大用户设计一个有一致性体验的App。
第二部分:Android正在变得成熟
Android今天的用户体验比以往任何时候都更加强大,这使得App开发者和设计师更容易做出好的应用。当然一些早期问题仍然存在,但大部分问题变得更易处理,有些已经被完全解决了。其中一个很重要的遗留问题是Android市场上仍然很缺乏伟大的App,但是在一个高速成长的系统平台上,设计师和开发者会很愿意去尝试解决这些问题。以下几点是一个日渐成熟Android系统为大家提供的:
更好的应用搜索
早期的应被搜索被关键字所限制,并且会直接呈现所有搜索结果;新版的Google应用商店提供了功能分类和员工推荐,从而提升了发现应用的途径。如下图所示,新的应用商店提供了更多发现最新最酷应用的方式。
适当的Android设计指引
之前,Google并没有为每个应用必须的基本元素提供一些指导方向。自从创建了设计指引,就为应用的设计师和开发者提供了小的设计决策的判断依据,于是乎我们终于可以专注于创造App的价值,并确保在不同设备上的一致性体验,下图是一个网格设计列表实例中的设计指引节选。
去除了菜单和搜索硬件按钮
Google开始去除了设备上的硬件按钮,使整个硬件和软件以更加优雅和便捷的方式被使用。
上图是Google的Nexus 4手机,已经去除了搜索按钮和菜单按钮。当然各式各样的Android设备仍然寻在,例如LG还在生产拥有菜单键的手机,但在某种程度上这种多样性也是为什么Android应用程序能够脱颖而出的主要原因。
碎片化并不全是坏事
碎片化也许是Android遗留问题中对设计师和开发者的最大挑战,但这一点也构建了Android的DNA,成为平台体验永恒的一部分。这种多样性为设计人员提供了契机去使App获得在全球范围内尽可能多的用户数量。学会适应这个碎片化的环境也会使你成为一个更好的设计师或开发者,因为你会需要更加广泛的知识和更加高超的技术技巧。所以比起可能获得的成功来说,这是一个值得追求的挑战。下面的部分将重点介绍如何做可以使你的App获得更大的成功。
第三部分:创建成功Android App的小贴士
认识Android
要了解Android,应该先知道如何使用Android系统,并且了解这个系统的用户。最好的方法也许就是买一些不同产家、不同屏幕尺寸甚至不同系统版本的设备来体验。这不仅会帮助你认识用户的多样性,也可以更好的测试你的App。为你的App选择最佳的支持设备,可从Google获取最新的统计数据,选择一个符合你要求的设备。另外,一些独立报告,如 OpenSignal’s August 2012 report也能够帮助你进行设备选择。
要记住的是,Android系统的更新是由服务提供商控制的,所以,如Google家的Nexus系列就能够更早获得最新的系统版本。于是,拥有一台最新的Nexus设备往往可以让你最先体验平台的最新发布版本。你也可以通过购买二手设备来节约成本,但要在购买前确保它能够运行你需要的Android版本(许多旧设备的系统不支持更新)。
遵循设计指引
遵循设计指引将帮助你创建一个感觉更加像“原装”的应用,当然这仅仅是值得这么做的其中一个原因。设计指引还可以帮助你得到以下好处:
便于App适应于几乎任何设备
使应用程序使用起来更Android
提供用户熟悉习惯的UI
使App开发过程更加容易
增加应用程序在Google Play市场获得推荐的机会
遵循Android的导航模式,使用平台原生的导航元素同样能够有利于创建一个跨多终端一致的体验。
上图是联系人列表在iOS和Android两个系统的界面。为了使用平台原生元素,将搜索和新建联系人操作放置在了底部Action bar上,而不是像iOS中在上部。当然,在跨设备设计时,自定义App遇到的难度会更大,所幸有Google提供的新版设计指引,使得新系统的Android App看起来和4.0版本前创建的应用大为不同。
理解Android的外观和感觉
众所周知Google在为了其所有的产品提供一个一致的视觉体验上已经投入了非常多的努力,Android当然是其中之一,Android 4.0引入了自己的风格:简单,平面,干净(Simple, Plain, Clean)——注重功能本身而不是形式感。
这虽然在一定程度上为开发者和设计师提供了更大的自由度,但同时还是要考虑到Android视觉风格的精妙之处:用更少来表达更多(Saying more with less)。这说明了:简单地从iOS系统复制样式和元素也许不再好使。在发布一个使用旧风格或者包含其他平台特征的视觉元素的全新App的时候,可能会造成用户的反感或负面效果——微软就发生过这样一个例子。浏览Android Niceties是掌握Android风格和找到灵感的好方法。下图是Google的Search App,很好的体现了Android系统的外观风格和感觉。
还有一个区分你的App的好办法是通过它的图标。与iOS不同,Android的程序图标可以采用任何形状或是形式,用户喜爱漂亮特别的图标,甚至会因此很乐意在不常用到的情况下将你的程序图标放置在首屏上。更多的图标设计指引,参照Icongraphy。下图是一些图标的例子。
当设计App的时候,首先要确保它能够在大部分的设备上正常的运行。记住,不仅要适用于不同的屏幕尺寸和屏幕方向,也要注意适用于低亮度的屏幕或者是对比度较差的屏幕,以及速度慢的低配置机器。比如一些便宜的机型只有低分辨率的并且对比度较低的屏幕,这时过小的文字很难被清晰的显示,过大的文字又会显示不下。这时就要避免低对比度的文字和视觉元素伤害用户体验。以下就是一个自适应不同屏幕尺寸文字显示的设计例子。
还有一些事情可能要注意:
使用对比较强的文字和元素颜色,比如在重要的元素上避免使用白色或者浅灰色,因为可能在较差的屏幕上会看不见。
在不同亮度的环境下,不同的屏幕亮度(低亮度、高亮度、自动亮度)设置下检查设计稿。
即使在使用标准尺寸的时候,要确认文字和UI元素在小屏幕或低分辨率屏幕上的显示足够大;你可以单独为这些屏幕设置特殊的文字或视觉元素显示尺寸。
为多样性设计的一个很好的案例,详见Sebastian de With 讲述the Alarm App创作过程的文章。
使用Density-independent(分辨率自适应)定义布局
确保UI元素在不同分辨率的Android设备上看起来差不多大小是提供一致性体验里很重要的一部分。这看起来是一件非常费力的任务,其实大可不必通过复杂的像素运算来得出每个按钮或字体在每个特定的屏幕上如何显示,可以让设备帮你处理这个问题。如下图所示,是一个标准的图标在不同分辨率设备上的显示效果:官方推荐的按钮尺寸是48像素,在从低到高的4个不同分辨率级别下系统自动处理了显示效果。
通过Density-independent pixels (DPs)的方式定义尺寸,你需要确保在每个屏幕上显示的视觉元素的物理尺寸一致。详细的设置方式,请查阅Use Density-Independent Pixels。下图是实际使用中被证明很好用的一个各视觉元素的尺寸设置建议。
为不同的分辨率设计
为了在几乎所有的Android设备上显示清晰,需要满足四个分辨率:低分辨率(LDPI),中分辨率(MDPI),高分辨率(HDPI)和超高分辨率(XHDPI)。一般从640×960屏幕分辨率开始,然后缩小以适应其他分辨率屏幕,如下图所示。
MDPI和XHDPI的显示分辨率与苹果iPhone的普通屏和视网膜屏刚好一致。所以,如果你的App有iPhone版本,可以直接使用它的布局排版,甚至可以简单地在iPhone上测试设计效果。当然不要忘了Android特有的外观和感觉。不可忽视的是,一个叫做XXHDPI的标准已经被添加到下一代移动设备中作为支持,这些设备将有大约480 DPI的屏幕。尽管现在还不存在这样的设备,但因为XXHDPI标准目前被使用在如今使用XHDPI的10 英寸平板设备的启动图标上,比如Nexus 10。所以也许需要在设计各视觉元素时提前做好准备将你的HDPI拓展至200%的XXHPI。
考虑不同的系统版本
许多Android设备将不能够升级到最新的操作系统了,并且新的系统往往也需要很久的时间才能全面占领市场。随着设备的更新换代,用户会逐渐不满足于过时的应用图标和控件样式。因此,需要尽可能提供最新的体验,如果你打算支持应用程序运行在旧的平台,为这些设备创建一个单独的版本。
为App提供拓展组件和壁纸
善于利用Android的一些特殊优势,比如组件(Widgets)、壁纸(Live wallpapers)和消息通知(Notifications)。组件可以让用户在不运行App的时候接收更新,消息推送则可以帮助提升版本更新的安装量。Google为设计师和开发者提供了各种方便通知用户的方式。下图是一些例子,上方是音乐播放器的快速组件,可以让用户方便地进行音乐播放最常用的操作。下方是一个日历应用的组件,让用户可以在首屏桌面上快速滚动查看日程安排。
Android用户非常喜欢定制他们的设备使其看起来个性化,所以这些组件或是墙纸就会给用户很大的弹性空间来做这些事情。
测试你所支持的设备
在应用商店中最为常见的负面评价莫过于在某些承诺的机型上App不能正常运行。所以确保你的程序能够正常运行在最为流行的目标设备上,并且只在你测试过的机型上发布App。否则,就有可能会造成部分用户失望,甚至给予差评。
尽管Android的平板电脑并不如他的竞争对手iPad火爆和流行,但是如果你的目标就是做一个真正跨多终端的Android应用,那就必须同时考虑Android平板了。官方设计指引为平板的UI和界面提供了多窗格布局(Multi-pane Layouts)的设计指引,以满足碎片化设备的统一化体验。平板和手机一样使用同样的图形库,但需要特别考虑平板使用的情景。比如说,相比于手机,人们通常把平板举得离自己眼睛更远,并且输入并没有那么精确。所以平板的UI需要更大的字体,更大的按钮和更多的留白。当然,最后别忘了通过平板应用的质量检查表(Tablet App Quality Checklist)测试一下你的应用。