让你的app感觉更快的小技巧

考虑下面这些能让用户觉得你的app更快的方法。

人类大脑工作的方式很有意思,通过改变大脑对等待的感知,可以让你的用户感觉延迟变短了。杂货店的老板都会在走廊上放一些没用的杂志,就是为了让客户有东西可以看,感觉等待的时间就会短一些。如果在向用户展示内容的时候增加一些过渡效果,见效明显。这就像一个小魔术一样让用户感觉体验变的更快了,归根结底重要的是用户觉得你的app有多快。这个技巧实现起来也有点取巧,有时候这种感知的优化甚至会得到相反的效果,做A/B test来确保你的优化对用户来说真的有效。

loading菊花:优缺点

loading菊花,进度条,沙漏图标,和其它所有表示等待的方式都存在很久了。这些都可以让app的内容过渡变得更快。比如在app里加一个进度条,加载的时候播放一个进度的动画来让用户等待。研究表明使用一个带有动画的滑动条的时候用户会感觉更舒服。快速旋转的loading菊花也让用户感觉等待的时间更短。

但是,有延迟的时候,加个菊花并不总是有效的。iOS app Polar的开发者发现他们的app渲染一个view的时候有一点延迟。他们第一反应是在页面里加了一个菊花告诉用户页面正在渲染内容,但效果不如预期。用户开始反馈app变慢了,等待页面加载的时间变长了(其实app没有变慢,不过是加了一个菊花)。加了个等待的标识之后让用户明显的感觉到他们在等。取消菊花之后,用户感觉app又变快了(开发者仅仅是改变了菊花)。通过改变用户对等待的感知,可以让用户觉得app变快了。Facebook也遇到过类似的问题:使用自己定制的菊花让用户感觉更慢,用默认菊花感觉更快。

增加菊花最好让用户测试下他们的真实感受。一般来说,当等待的时间稍微有点长的时候,增加菊花是可以接受的:比如打开一个新页面或者从网上下载一张图片。如果延迟很短(一般来说小于一秒),就应该考虑去掉菊花了。这种情况下应该让用户觉得他们并没有在等。

用动画来抵消等待的时间

点击后看到一个空白的屏幕会让用户感觉在等待。就是这个原因让浏览器在点击链接,新页面刷出来之前都是展示旧的页面。在手机app里,一般来说我们不希望让用户停留在老的页面上,一个快速的切换动画可以争取到足够的时间让下一个页面准备就绪。可以观察下你最常用的android app,当页面切换的时候有多少从边上或者底部出现的动画。

瞬时更新的小谎言

如果你的用户在页面上做了更新数据的操作,即使数据还没抵达服务器,可以马上把用户看到的数据更新掉(当然开发者要保证这些数据能100%抵达服务器)。比如说,你在Instagram上点了赞,页面上马上就更新了赞的状态,其实赞的状态甚至可能还没有更新到服务器。Instangram的开发者管这叫“行为最优化”,状态的更新要几秒后才能到服务器并对网站的用户可见(网速不好的时候可能要几分钟),但是更新最后都会成功,等待服务器返回成功其实是没必要的。移动端用户一般都不希望在等待,只要最后能成功就好。

瞬时更新的另一个好处是,用户会感觉你的app在网速或者信号不好(火车经过隧道)的时候也能正常工作。FlipBoard就做过一个离线发送网络请求的框架,可以很方便的应用到更新UI。

另一个优化的小技巧是提前上传。对于像Instagram这种app来说,上传大量的图片会增加主线程的延迟,提前开始上传这些图片会是个好办法。Instagram发现发一个新post是慢在上传图片这一步,所以Instagram就在用户在图片上添加文字的间隙开始上传图片了,图片被真正发布到服务器之前就已经传好了。用户只要一点击Post按钮,就只需要上传文本和创建post的命令了,这样就会让用户感知非常快。Instagram在遇到“是否要添加菊花”这个问题时,他们的答案是通过改变架构的方式永远的杜绝菊花。

提升感知体验的小提示

当app的速度通过优化代码或者view的优化提升之后,你可以用秒表来测试下结果。有些感知是可以用秒表测量的(Instagram的例子),有些则不能(菊花的例子)。当常规的分析或者测量工具不可靠的时候,需要让用户来真正的体验这些优化效果。可以做一些可用性测试,增加测试的范围,A/B测试,这些才能真正的让你确认你的优化是让用户更开心还是更沮丧。

总结

Android app的用户体验直接跟屏幕上展现的内容相关。如果app的内容加载很慢或者滑动不够流畅,用户的感知就是负面的。在这篇文章,我们讲了如何优化view树形结构,看是否扁平或者简化view等等。我们还讲了怎么检测解决overdraw的问题。还有一些需要深度分析的优化(像CPU导致的问题),systrace很适合发现和解决这种卡顿问题。最后是一些让你的app感觉更快的小技巧,比如把CPU或者网络相关的任务延后处理,不要影响绘制渲染。

原文链接

来自: http://music4kid.github.io//android/2016/01/11/android-performance-ui/

猜你喜欢

转载自www.cnblogs.com/python7/p/9126019.html
今日推荐