2013-06-30

UI 优化

在Android中,最常用LinearLayout表示UI的布局。比起LinearLayout,在资源利用上,RelativeLayout会占用更少的资源而达到相同的效果。针对RelativeLayout有一点需要注意,因为它内部是通过多个View之间的关系而确定的布局,那么当其中某一个View因为某些需要调用GONE来完全隐藏掉后,会影响与其关联的Views,属性alignWithParentIfMissing用于解决类似问题。

简单或复杂的问题都需要时常考虑如何优化资源的分配。当我们面对Android UI优化时,有必要继续考虑资源复用。定义Android布局文件时,有4个比较特别的标签是非常重要:<viewStub/>, <requestFocus/>, <merge/>和<include/>,其中3个与资源复用有关。

1. <viewStub/> 直观效果类似于View的不可见性,但其所包裹的View在默认状态下不会占用任何内存空间。viewStub通过include从外部导入View元素。用法:通过属性android:layout来设定内容。

2. <include/> 用于直接加载xml,是复用UI资源的常用标签。用法:通过属性layout来设定加载的xml。

3. <requestFocus/> 用于设定焦点。用法:将<requestFocus/>放于View标签中。

4. <merge/> 目的:删减多余或额外的层级。

查看当前UI结构:运行android sdk/tools/hierarchyviewer.bat

如果你创建的Layout不是把FrameLayout当作根节点,就不能使用<merge/>来优化。

当使用include或viewStub从外部导入xml结构时,可以将被导入的xml用merge作为根节点,这样当被嵌入后可以很好地融合,不会出现冗余的节点。

<merge/>只可以作为xml-layout的根节点。扩充的xml-layout是merge作为根节点时,需要将被导入的xml-layout置于viewGroup中,同时需要设置attachToRoot为true。

图片优化

在Android中,BitmapFactory的使用。

在开发过程中尽可能降低对高质量图片的使用以提高运行效率。

同一张图片如何在不同大小屏幕合适地显示出来?如果图片不够满屏,就对图片进行放大,相反就进行缩小。

将多张图片集成到一张图片上。减少图片的颜色数。

优化技术之Android UI优化的更多相关文章

  1. Android优化—— Google 发布 Android 性能优化典范

    阅读目录 0)Render Performance 1)Understanding Overdraw 2)Understanding VSYNC 3)Tool:Profile GPU Renderin ...

  2. Android UI优化——include、merge 、ViewStub

    在布局优化中,Androi的官方提到了这三种布局<include />.<merge />.<ViewStub />,并介绍了这三种布局各有的优势,下面也是简单说一 ...

  3. Android UI 优化 使用<include/>和 <merge />标签

    使用<include /> 标签来重用layout代码 如果在一个项目中需要用到相同的布局设计,可以通过<include /> 标签来重用layout代码,该标签在Androi ...

  4. 关于Android UI 优化

    之前项目为了同时兼容tv和手机端的UI,使用了百分比布局来动态计算控件的宽高,这种适配方案只关心屏幕的宽高(分辨率),与屏幕的像素密度无关. 在新的项目里也使用了这种方案.但是由于项目的运行硬件计算能 ...

  5. Android UI 优化——使用HierarchyViewer工具

    先说些题外话,希望路过的各位支持,博主有幸成为2013年度博客之星的候选人,期待你的一票,谢谢. 投票猛击: http://vote.blog.csdn.net/blogstaritem/blogst ...

  6. Android 性能优化(17)UI优化:Keeping Your App Responsive 拒绝ANR

    Keeping Your App Responsive In this document What Triggers ANR? How to Avoid ANRs Reinforcing Respon ...

  7. 优化技术之Android高效开发

    基于Android平台的设备一定是嵌入式设备. 两个原则判断一个系统是否合理:不要做不必要做的事情:尽可能地节省内存的使用. 1. 尽量避免创建对象Object 2. 使用自身方法 3. 使用虚拟优于 ...

  8. Android学习笔记_52_全面了解Android开发规范:性能及UI优化

    一.Android编码规范 1.java代码中不出现中文,最多注释中可以出现中文 2.局部变量命名.静态成员变量命名 只能包含字母,单词首字母出第一个外,都为大写,其他字母都为小写 3.常量命名 只能 ...

  9. Android性能优化典范(二)

    Google前几天刚发布了Android性能优化典范第2季的课程,一共20个短视频,包括的内容大致有:电量优化,网络优化,Wear上如何做优化,使用对象池来提高效率,LRU Cache,Bitmap的 ...

随机推荐

  1. 2015 UESTC 搜索专题C题 基爷与加法等式 爆搜DFS

    基爷与加法等式 Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/contest/show/61 Desc ...

  2. Java class 中public、protected 、friendly、private的区别

    转载自:http://hi.baidu.com/ceoct/item/7e136a2417ba6f896f2cc33c Java class 中public.protected .friendly.p ...

  3. Objective-C 关于静态方法与实例方法

    objective-c中非常重要的语法知识,在此归纳总结一下. 类方法,也称静态方法,指的是用static关键字修饰的方法.此方法属类本身的方法,不属于类的某一个实例(对象).类方法中不可直接使用实例 ...

  4. MySql清空表的方法介绍 : truncate table 表名

    清空某个mysql表中所有内容 delete from 表名; truncate table 表名; 不带where参数的delete语句可以删除mysql表中所有内容,使用truncate tabl ...

  5. 淘宝API开发第一步

    1.登录淘宝开放平台:http://open.taobao.com/ 2.添加网站 (验证完网站后,会提醒“JSSDK以激活提交审核按钮”,这个需要的UV达100,按钮才会亮,审核过程中也得保持UV的 ...

  6. 检查正则表达式的工具:Regex Match Tracer

    Regex Match Tracer破解版下载 使用: 相关: 收藏几个好用的在线正则验证网

  7. 第十五章 php时区报错 We selected the timezone 'UTC'

    Warning: phpinfo(): It is not safe to rely on the system's timezone settings. You are *required* to ...

  8. 1503162139-ny-分数拆分

    分数拆分 时间限制:3000 ms  |  内存限制:65535 KB 难度:1 描写叙述 如今输入一个正整数k,找到全部的正整数x>=y,使得1/k=1/x+1/y. 输入 第一行输入一个整数 ...

  9. 更为详细的介绍Hadoop combiners-More about Hadoop combiners

    Hadoop combiners are a very powerful tool to speed up our computations. We already saw what a combin ...

  10. Python学习 —— 阶段综合练习一

    Python 阶段综合练习一 综合之前的函数.数据结构.流程控制等,做以下实例练习:(建议先不要看代码,自己先试着写:代码仅供参考,有多种实现方法) 1. 定义 is_Even 函数,传一 int 参 ...