• Android开发中部分设计原则及解决方案


    个人总结的android开发中部分设计原则,很多也是从web开发中总结出来的。

    包括:保持用户操作的流畅性(减少activity的切换、减少用户等待)、别让用户操作太多、别以为用户知道很多、减少设置、其他细节。还有很多没能写进来,欢迎交流

    首先推荐一个关于产品设计的网站 产品设计-互联网的那点事

    1、保持用户操作的流畅性

    在web操作中,要尽量少的让用户在多个页面之间进行跳转,这点应该不少web开发人员都能明白。因为用户习惯在一个页面操作,页面的跳转会打断用户操作的流畅性

    在android应用中保持用户操作的流畅性同样重要

    1.1 减少activity的切换

    activity切换后需要不断的back才能返回,也让用户失去了之前activity界面上的数据

    个人的一些方案:

    a. 用非模态对话框代替模态对话框,避免干扰用户当前的行为,可参考Android PopupWindow介绍及实现菜单效果

    b. 某些activity用浮动activity代替(这篇博客在草稿箱好久了,等补充好再加个链接)

    1.2 减少用户等待,不要打断用户当前的行为

    在应用使用过程中不可避免的会涉及到一些比较耗时的操作,比如网络请求数据、图片渲染。对于这些情况我们要尽量减少用户的等待时间,要知道用户的耐心是不能用来考验的。

    个人的一些方案:

    a. 缓存 这个说的不是大型网站的缓存,仅仅是用一个小小的map就能达到的不一样的用户体验

    对于经常操作或是刚刚访问的部分数据可以进行缓存,节省再次获取数据的消耗

    比如:新浪微博客户端用户头像的存储。

           团购网站客户端缓存用户已经查看过的n条数据保存,用户回头查看可以直接存缓存中获取

    b. 预取机制 由于国内手机联网速度的限制,应该有90%多的用户仍然是2g网络,对于网络操作较多的应用需要有预取机制,防止每次联网用户都需要等待内容获取

    比如:一个在线电子书应用,若是等到用户翻页时再去发送http请求获取该页内容,哪怕是有提示框,也会给用户及不好的体验,用户翻页这个操作是在是太频繁了,这个是时候就需要提前预取。

    更多举例:用户查看当页时,可以开启线程同时预取n页缓存,查看下一页时再预取到n+1页,即始终保持前n页可用,使得用户感受不到获取的时间,而始终提前n也的流量消耗并不会很大。

    参考应用:对于以上两个原则可以参考google reader应用,它获取rss文章的方式就能让用户感受不到获取的时间消耗。

    自己也写了个小型的缓存程序可以很方便调用,向前向后或是同时进行双向缓存,等手头工作忙完,写篇博客介绍下。

    c. 异步操作

    这个对于较耗时的操作可以使用,像现在淘宝首页的显示,各个模块之间互相不影响加载

    比如:花瓣应用的图片加载方式,微博客户端用户头像的加载方式

    这个的代码也在整理之中,欠了好多博客了

    d. 后台线程

    如果实在上面的都不合适用来解决的话,试试后台线程来运行需要较长时间的操作,并加上友好提示

    2、别让用户操作太多

    这个原则是在不好解释,用3这个神奇的数字表示下吧,即用户的任何操作不需要3步以上完成

    只能说开发者自己要是个很好的体验师,并且能经常找不同的用户体验并进行反馈。不能按照自己调试的顺序点点按按把功能完成了

    3、别以为用户知道很多

    一些好的功能没法给用户展示的话,就给一些类似导航的功能提示,但这个提示同样不要太长,以3为界

    现在很多应用都有这种提示了,像腾讯微博、淘宝客户端

    4、减少设置

    这个其实对用户影响不是特别大,但我想对应用开发者是个提醒

    90%的用户看都不看应用的设置,你想想自己看过自己手机里多少应用的设置,很多你觉得需要花了好几天开发的设置根本没必要,希望开发者在增加某个设置的时候想想真的有必要吗,这能为你节省很多时间

    参考应用:Aldiko,它的设置相对很多阅读器来说就简单至极

    其他小细节

    a、用滑动代替点击

    这点现在在ipad上已经很好的验证了

    方案:Android 滑动切换页面 以及屏幕手势

    b、让用户手指不动,消除屏幕盲点

    虽然我也知道这对手指健康不利,但是现在的大屏手机,很多应用按钮放置的位置跨度之大是在是让人蛋疼。用户可操作的范围大概只有屏幕的2/3,屏幕上方很多位置操作起来过于麻烦

    自己正在整理这方面的文章。。

    参考:触屏手机点击区域的小秘密

    c、处理屏幕方向改变时重绘activity

    方案:解决屏幕方向改变Activity销毁重建问题

    d、back键尽量让用户回到之前一样的场景

    如listview的位置不变,仍然是用户之前操作的位置。输入框仍然保存之前用户输入的内容




    已有 0 人发表留言,猛击->>这里<<-参与讨论


    ITeye推荐



  • 相关阅读:
    使用 jfinal + beetl + bootstrap 实现商城展示及管理系统
    关于Node.js的__dirname,__filename,process.cwd(),./文件路径的一些坑
    canvas离屏、旋转效果实践——旋转的雪花
    走一步再走一步,揭开co的神秘面纱
    用javascript写一个emoji表情插件
    基于HTML5快速搭建TP-LINK电信拓扑设备面板
    百度地图获取规划路径信息
    devicePixelRatio 那些事儿
    怎样用JavaScript和HTML5 Canvas绘制图表
    首次写iPad布局感想(H5)
  • 原文地址:https://www.cnblogs.com/trinea/p/2443094.html
Copyright © 2020-2023  润新知