个人总结的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文章的方式就能让用户感受不到获取的时间消耗。,有需要可以试试自动获取新数据的缓存AutoGetDataCache。
c. 异步操作
这个对于较耗时的操作可以使用,像现在淘宝首页的显示,各个模块之间互相不影响加载
比如:花瓣应用的图片加载方式,微博客户端用户头像的加载方式
这个的代码也在整理之中,欠了好多博客了
d. 后台线程
如果实在上面的都不合适用来解决的话,试试后台线程来运行需要较长时间的操作,并加上友好提示
2、别让用户操作太多
这个原则是在不好解释,用3这个神奇的数字表示下吧,即用户的任何操作不需要3步以上完成
只能说开发者自己要是个很好的体验师,并且能经常找不同的用户体验并进行反馈。不能按照自己调试的顺序点点按按把功能完成了
3、别以为用户知道很多
一些好的功能没法给用户展示的话,就给一些类似导航的功能提示,但这个提示同样不要太长,以3为界
现在很多应用都有这种提示了,像腾讯微博、淘宝客户端
4、减少设置
这个其实对用户影响不是特别大,但我想对应用开发者是个提醒
90%的用户看都不看应用的设置,你想想自己看过自己手机里多少应用的设置,很多你觉得需要花了好几天开发的设置根本没必要,希望开发者在增加某个设置的时候想想真的有必要吗,这能为你节省很多时间
参考应用:Aldiko,它的设置相对很多阅读器来说就简单至极
其他小细节
a、用滑动代替点击
这点现在在ipad上已经很好的验证了
方案:Android 滑动切换页面 以及屏幕手势
b、让用户手指不动,消除屏幕盲点
虽然我也知道这对手指健康不利,但是现在的大屏手机,很多应用按钮放置的位置跨度之大是在是让人蛋疼。用户可操作的范围大概只有屏幕的2/3,屏幕上方很多位置操作起来过于麻烦
自己正在整理这方面的文章。。
参考:触屏手机点击区域的小秘密
c、处理屏幕方向改变时重绘activity
方案:解决屏幕方向改变Activity销毁重建问题
d、back键尽量让用户回到之前一样的场景
如listview的位置不变,仍然是用户之前操作的位置。输入框仍然保存之前用户输入的内容
分享到:
相关推荐
在Android开发领域,深入理解框架设计模式和设计原则是提升专业技能的关键步骤。设计模式是软件工程中的经验总结,它们是解决常见问题的有效方案。设计原则则是指导我们编写高质量、可维护代码的准则。以下是对这些...
在这个PPT中,你可以期待看到关于Android开发基础、Android Studio的使用方法、Android应用架构设计、UI设计原则以及Android编程语言(如Java或Kotlin)的关键概念。此外,它可能还会涉及AndroidManifest.xml的重要...
首先,"开发艺术探索"这部分涵盖了Android开发中的高级话题,如性能优化、内存管理、多线程处理、UI设计原则等。这些内容对于提升应用的用户体验和稳定性至关重要。性能优化包括对代码进行剖析、使用工具检测性能...
在软件设计领域,24种设计模式是被广泛认可的最佳实践,它们是经验丰富的开发者们在解决常见问题时总结出来的解决方案模板。这些模式包括工厂模式、单例模式、观察者模式、装饰器模式等,涵盖了对象创建、结构型和...
在课程设计报告论文中,可能会详细阐述项目的需求分析、系统架构设计、数据库设计、模块划分、具体实现细节、测试策略以及遇到的问题与解决方案。此外,论文可能还会讨论项目的可扩展性、性能优化措施以及未来改进的...
最后,对于毕业设计来说,除了实际的源码实现,通常还需要撰写一份论文,阐述项目的设计思路、技术难点及解决方案。这部分内容可以帮助学习者提高书面表达能力,以及如何系统地整理和呈现项目开发过程中的知识。 综...
下面将详细介绍其中可能涉及的Android开发技术、设计原则以及可能的文档内容。 1. **Android Studio**:Android Studio是Google官方推荐的Android应用开发集成开发环境(IDE),它基于IntelliJ IDEA,提供了丰富的...
1. **今日的问题源于昨日的解决方案**:在Android开发中,我们经常为了解决一个问题而采取临时措施,但这可能会引入新的问题。例如,为了解决性能瓶颈而盲目优化,可能导致代码复杂度增加,反而影响了长期的可维护性...
通过分析这15个实例源码,开发者不仅可以加深对Android系统特性的理解,还能学习到最佳实践,提升编程技巧,为自己的项目提供灵感和解决方案。这是一个宝贵的资源,对于任何希望在Android开发领域精进的人来说都是...
这是一份中文版的Android开发指南,通常包含官方文档的关键信息,包括但不限于:Android系统架构,Activity和Intent的概念,UI设计原则,数据存储方式,网络通信API,服务,广播接收器等。这份指南对理解Android...
通过记录开发过程中的问题和解决方案,可以提高学习效率。此外,理解软件设计模式,如MVP(Model-View-Presenter)和MVVM(Model-View-ViewModel),可以帮助编写出更高效、可维护的代码。 总的来说,Android手机...
"新版Android开发教程"则可能涉及Android的新特性、API更新,例如Android Jetpack组件库的使用、Kotlin语言的应用,以及Material Design设计原则。 从"标签"中,我们可以看到"android"、"教程"、"资料"和"文档",这...
Android 设计模式是 software engineering 问题的解决方案,分为三类:创建型模式、结构型模式和行为型模式。创建型模式与对象的创建有关,结构型模式处理类与对象的组合,行为型模式对类或对象怎样交互和怎样分配...
综上所述,“android开发常用图标”资源包为Android开发者提供了一站式的图标解决方案,简化了设计和适配的工作,使得开发者能专注于功能实现,提升应用的整体质量。合理利用这些图标,不仅可以提升应用的视觉效果,...
UI设计模式是解决特定问题的通用解决方案。这些模式通常是在实际的设计过程中自然形成的。每个设计模式都包含以下几个部分: - **标题**:简短地描述该模式。 - **示例**:展示该模式的实际应用案例。 - **问题**:...
10. **实例分析**:通过具体的案例分析,如相机驱动或蓝牙驱动的开发,让读者了解实际开发过程中的问题和解决方案。 这本书全面涵盖了Android系统中硬件层面的开发技术,对于想要深入理解Android系统并从事相关开发...
接下来,关于“Android期末论文”,这可能是一份详细阐述项目设计、实现过程、遇到的问题及解决方案的文档。论文中可能涵盖以下内容: 1. **项目背景与目标**:介绍为什么要开发这个计算器应用,它的功能目标是什么...