Android4开发入门经典 之 第十二部分:最佳实践【私塾在线原创】
性能提升
有两个编写有效代码的基本规则:
应该尽量避免创建多余的对象,比如:
应该尽量使用Native方法 ,比如:
优先使用实现类,而不是接口
优先选择static而非virtual
避免内部的Getter/Setter
for (int i = 0; i < this.mCount; i++)
dumpItem(this.mItems[i]);
应该写成这样:
int count = this.mCount;
Item[] items = this.mItems;
for (int i = 0; i < count; i++)
dumpItems(items[i]);
for (int i = 0; i < this.getCount(); i++) dumpItems(this.getItem(i));
缓存查询字段 , 通常,如果你将要访问一个实例字段多次,一个好的习惯就是创建一个临时变量。例如:
protected void drawHorizontalScrollBar(Canvas canvas, int width, int height) { if (isHorizontalScrollBarEnabled()) { int size = mScrollBar.getSize(false); if (size <= 0) { size = mScrollBarSize; } mScrollBar.setBounds(0, height - size, width, height); mScrollBar.setParams( computeHorizontalScrollRange(), computeHorizontalScrollOffset(), computeHorizontalScrollExtent(), false); mScrollBar.draw(canvas); } }
这是对成员字段mScrollBar的四次分开查找,通过将mScrollBar缓存到本地变量,四次成员字段查找变成四次本地变量引用,这样更为高效。
同样地,方法参数作为本地变量拥有相同的性能特征。
支持多种屏幕
在实际开发中,由于由于不同手机的尺寸大小,屏幕分辨率可能存在差异,这会带来很多的问题,比如:
一些基本的解决方法:
举个列子,假如我们要在一个密度为160dpi的设备上使用到一个48 * 48的图像文件。那么对于其它密度的设备,我们要准备的图像文件分别是:
UI最佳实践
这是一份来自Moto的,关于Android UI的最佳实践,要点如下:
这是一份来自Android官方开发者博客,关于Android UI的最佳实践
不应该
2.不要过度使用模态对话框
3.不要使用固定的绝对定位的布局
4.不要使用px单位,使用dp或者为文本使用sp
5. 不要使用太小的字体
应该
2. 需要点击的元素要够大
3. 图标设计遵循 Android 的准则
4. 使用适当的间距(margins, padding)
5. 支持D-pad和trackball导航
6. 正确管理活动(activity)堆栈
7. 正确处理屏幕方向变化
8. 使用主题/样式,尺寸和颜色资源来减少多余的值
9.和视觉交互设计师合作!!!
设计哲学
2. 关注内容而非修饰
3. 保存一致,让用户容易投入其中,可附加少许变化
4. 使用云端服务(存储和同步用户资料)来加强用户体验
优秀界面的设计准则
2. 显示正确的内容
3. 给予用户适当的回馈
4. 有章可循的行为模式
5. 容忍错误
关注用户
2. ‘用户优先’的设计心态 (用户通常是任务导向的行为模式)
3. 更早,更频繁的由真实用户来测试
显示正确的内容
2. 不太常用的功能可以放到菜单里面
给予用户适当的回馈
2. 保证操作的结果是清晰可见的
3. 多给予用户进度提示,但是不要干扰他们当前的操作
有章可循的行为模式
2. 使用合适的方式来加强功能可见性(可点击的元素就应该看起来是可以点击的)
3. 如果用户完成一项任务需要复杂的操作,重新思考你的设计!!!
容忍错误
2. 尽量减少不可回退的操作
3. 允许回退(undo)比使用确定对话框更好(实际上,应该尽量少用确定对话框,它对用户是一种干扰)如果错误是可能发生的,那它就一定会发生。
设计的考量
2.屏幕密度
3. 屏幕的方向(竖向和横向)
4.主要的UI交互方式(触屏还是使用D-pad/trackball)
5.软键盘还是物理键盘
7.阅读CDD,学习设备可能差异的地方
8.了解屏幕尺寸和密度分类
响应的灵敏性(Designing for Responsiveness)
如何避免ANR
增强响应灵敏性
常见的流畅性问题:
流畅性设计指南
1:别丢弃数据
2:不要暴露原始数据
3:不要打断用户
4:有太多事情要做?在线程里做
5:不要让一个Activity超负荷
6:扩展系统主题
7:设计你的UI可以应付多屏幕分辨率
8:假设网络很慢
9:不要假定触摸屏或键盘
10:节省设备电池
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26715458/viewspace-717436/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26715458/viewspace-717436/
Android4开发入门经典 之 第十二部分:最佳实践【私塾在线原创】相关推荐
- Android4开发入门经典 之 第十二部分:最佳实践
性能提升 有两个编写有效代码的基本规则: 1:不要做你不需要做的. 2:不分配没必要分配的内存. 应该尽量避免创建多余的对象,比如: 1:在一组输入数据中抽取字符串时,尝试返回源数据的子串,而非创建一 ...
- Android4开发入门经典 之 第七部分:数据存储
数据存储基本知识 Android系统提供了多种数据存储的方式,如下: 1:Shared Preferences:用来存储私有的.原始类型的.简单的数据,通常是Key-value对 2:Internal ...
- Android4开发入门经典 之 第四部分:用户界面
基本概念 常用Widgets和布局 常用的Widgets TextView.Button. EditText.CheckBox.RadioGroup.RadioButton.Spinner.Progr ...
- [转] Spring XML配置十二个最佳实践
Spring是一个强大的JAVA应用框架,广泛地应用于JAVA的应用程序.为Plain Old Java Objects(POJOs)提供企业级服务.Spring利用依赖注入机制来简化工作,同时提高易 ...
- 《iOS 8应用开发入门经典(第6版)》——第1章,第1.6节小结
本节书摘来自异步社区<iOS 8应用开发入门经典(第6版)>一书中的第1章,第1.6节小结,作者 [美]John Ray(约翰 雷),更多章节内容可以访问云栖社区"异步社区&qu ...
- 《Android应用开发入门经典(第3版)》——第6.1节创建演示应用
本节书摘来自异步社区<Android应用开发入门经典(第3版)>一书中的第6章,第6.1节创建演示应用,作者 [美]Carmen Delessio , Lauren Darcey , Sh ...
- 《iOS 9应用开发入门经典(第7版)》——第2章,第2.4节小结
本节书摘来自异步社区<iOS 9应用开发入门经典(第7版)>一书中的第2章,第2.4节小结,作者 [美]约翰 雷(John Ray),更多章节内容可以访问云栖社区"异步社区&qu ...
- 谷歌眼镜开发入门经典
2019独角兽企业重金招聘Python工程师标准>>> 谷歌眼镜开发入门经典 Google Glass将是目前以及未来几年风靡全球的革命性的移动计算平台,<谷歌眼镜开发入门经典 ...
- 《Android应用开发入门经典(第3版)》——导读
本节书摘来自异步社区<Android应用开发入门经典(第3版)>一书中的目录,作者 [美]Carmen Delessio , Lauren Darcey , Shane Conder,更多 ...
最新文章
- 关于滑动条滚动 scroll兼容
- 使用命令行建立Zend Framework项目
- 数据分析和大数据哪个更吃香_处理数据,大数据甚至更大数据的17种策略
- VC中使用ADO的方法
- 老男孩36期运维脱产班---- 决心书
- Zabbix的简单使用
- python查询斐波那契数列通项公式_斐波那契数列求解总结(Python版)
- android 关于关于子线程更新UI的一些事
- Gamma分布和逆Gamma分布
- 悬赏17万:美国“知乎”的沙雕问题,需要AI来识别
- java让文件隐藏文件_使用java8API遍历过滤文件目录及子目录及隐藏文件
- 针式打印机风格英文字体_可爱漂亮的圣诞节和新年贺卡艺术字体推荐!
- JAVA毕业设计河南口腔医疗机构线上服务系统计算机源码+lw文档+系统+调试部署+数据库
- K均值聚类算法以及模糊K均值算法研究,matlab
- 如果能站在巨人的肩膀上
- 计算机磁盘清理软件,Cleanmgr+(电脑磁盘清理软件)
- 计算机科学基础刘小丽,刘小丽
- 资本寒冬融资难,具备这四大特质的创业者更受青睐
- Sentinel-高可用流量管理框架
- 校验手机号码和固定电话的正则