用户体验导向的Android应用开发——友好的体验

2015-09-18 13:46:57 |发布者: 安智宝

Android开发目前是移动开发中的“当红炸子鸡”,大量Java程序员涌向Android,同时会习惯性地将桌面和Web端的开发/设计经验带到移动设备上。这样的好处是充分利用了移动开发和桌面/Web服务的共性,比如广泛使用的列表、本地数据库等常用组件;坏处是移动和桌面/Web的使用场景和载体完全不同,直接移植桌面端开发的经验有害无益。

比如,手机主要在碎片时间使用,用户容易对复杂的界面设计感到疲惫;同时,移动环境中上网慢,网络连接频率和失败重发机制的设计更有讲究;此外,手机电池续航能力差,后台复杂的计算会加速耗电速度。这些开发理念直接影响用户最终体验,下面我们来讨论一下在Android中如何以用户体验为导向进行开发优化。

虽然不用深入了解底层,但需要对系统有基本的了解。Android系统分层清晰,最底层是Linux Kernel 2.6,之上包含了Webkit、SQLite、OpenGL ES等基础C/C++库,同时Dalvik虚拟机运行于Kernel之上,帮助应用进行底层内存管理(这样使Android应用无法直接进行内存释放)。这些库一方面被系统大量使用,另一方面也通过Framework层提供接口给开发者。此外,Framework层还提供其他系统级的服务,如消息通知服务、位置获取服务、设备信息读取服务等。

由此可见Android对于开发者非常开放和灵活,尽管如此,开发时仍然要注意不要过于随意,以免产品过于复杂而让用户不知所措。当然,除了少数系统级应用开发需要深入了解Framework层实现机制之外,一般第三方应用开发者并不需要深入了解每一层原理,应把重点放在如何理解和灵活运用庞大的Android SDK API。

不友好的体验来自三个方面。

其一是Android的碎片化带来了UI适配问题。Android机型众多,和iPhone相比,界面适配饱受诟病。要保证应用能运行在不同分辨率的手机上,需要理解Android提供的自动适配方案。事实上,Android系统为UI适配做了充分的考虑,只要理解系统对此的精心设计,就能在开发时少走很多弯路,给不同分辨率的用户提供友好的呈现界面。

简单来说可做如下解释:

? 开发时避免绝对布局(AbsoluteLayout),因为这会让你的应用只在测试机上“看上去很美”,放到别处就横七竖八。

? 界面控件大小单位多用DIP(Device Independent Pixels),理由同上。

? 图片尽量使用系统提供的NinePatch技术,能使同一张小图片在不同分辨率的屏幕上保持精度自由缩放。

其二是滥用通知服务,导致用户很容易被打断。典型场景是在通知栏上的各种通知消息,有关无关的都推送,让用户感觉不适。建议是通知适可而止,除非是对用户真正有用的信息,否则最好让用户进入程序后再提示。

其三是主要来自设计师的问题,就是照搬iPhone应用的设计。Android的系统特点不同于iPhone,如程序的栈式管理机制、菜单按钮、返回按钮,从而用户的预期也不尽相同。比如我发现很多设计师喜欢抛弃返回键,模仿iPhone给每一页设计一个软返回按钮。生硬做作的移植会导致与用户预期不一致,是彻底的设计败笔。


Copyright © 2016 - 2020 anzhibao.com . All Right Reserved.

安智宝  版权所有

广西快乐十分