提高UI性能的方法事实上有非常多在实际的开发中都已经用到了,在此做一下总结。

1.降低主线程的堵塞时间

若一个操作的耗时较长(超过5秒),我们应该将其放入后台线程中运行。仅仅在须要改动UI界面时通知主线程进行改动。

Android已经提供了AsyncTask以实现从主线程生成新的异步任务的方法。

2.提高Adapter&AdapterView的效率

(1)重用已生成过的Item View

(2)加入ViewHolder , 避免反复查找须要改动的控件

public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.list_item_icon_text, null);
holder = new ViewHolder();
holder.text = (TextView) convertView.findViewById(R.id.text);
holder.icon = (ImageView) convertView.findViewById(R.id.icon);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
return convertView;
} static class ViewHolder {
TextView text;
ImageView icon;
}

3.优化布局文件,防止层级嵌套太深,最好不要多于5层

(1)使用观察布局的工具: Hierarchy Viewer

(2)使用布局优化工具:Layoutopt

4.优化Activity背景图

首先我们须知道,在Android的Activity中,不止有你使用SetContentView时使用的View,还包括了一些其它的View。

其根View是一个DecorView,你设置的View就被包括在当中,id为content,例如以下图所看到的:

在默认情况下。DecorView就包括了一个默认的背景图,我们将以此作为出发点。若我们须要在Activity中设置一个全屏的背景图。不应该加入ImageView或在Layout中再设置背景图。而应该调用setBackgroundDrawable()去改动DecorView的背景图。

在不须要使用背景图时,我们应将背景图清空

(1)代码方式:

getWindow().setBackgroundDrawable()

(2)xml形式

//创建文件res/values/theme.xml
<resources>
<style name="Theme.CustomBackground" parent="android:Theme">
<item name="android:windowBackground">@drawable/image</item>
</style>
</resources> //可依据须要将windowBackground设置为null或你须要的背景图
在<activity /> 或者 <application />标签中加入android:theme="@style/Theme.CustomBackground"

5.使用ViewStub

ViewStub是一个看不见的,轻量级的View。它没有尺寸,也不会绘制以及以某种形式參与到布局中来。仅仅有当调用了Inflate之后当中的View才会被实例化,这意味着用ViewStub保留View层次的结构的代价是非常低的。

使用方式见下面链接:

http://blog.csdn.net/hitlion2008/article/details/6737537

Android提高UI性能技巧的更多相关文章

  1. 关于React Native项目在android上UI性能调试实践

    我们尽最大的努力来争取使UI组件的性能如丝般顺滑,但有的时候这根本不可能做到.要知道,Android有超过一万种不同型号的手机,而在框架底层进行软件渲染的时候是统一处理的,这意味着你没办法像iOS那样 ...

  2. 你必须知道的10个提高Canvas性能技巧

    你还在抱怨自己写的canvas demo徘徊在10帧以下吗?你还在烦恼打开自己写的应用就听见CUP风扇转吗?你正在写一个javascript Canvas库吗?那么下面九点就是你必须知道的! 一.预渲 ...

  3. Android UI性能优化详解

    设计师,开发人员,需求研究和测试都会影响到一个app最后的UI展示,所有人都很乐于去建议app应该怎么去展示UI.UI也是app和用户打交道的部分,直接对用户形成品牌意识,需要仔细的设计.无论你的ap ...

  4. 开发Android应用 提升性能的小技巧

    前 言 2015年,Android OS 目前在手机操作系统的市场占有率已达59%,权威机构预计,Android市场占有率在2016年将达到63%,由于Android的开放性,未来占有率还将不断增加, ...

  5. 提高UI设计效率的4个技巧

    提高UI设计效率的4个技巧 如何提高UI设计的速度?在这里分享一些我观察到的常见问题和改善方式.当然,需要注意的地方何其多. 身为设计师的你,应该要了解工程实作的基本原理: 业界 NG 率:接近 10 ...

  6. Android异常与性能优化相关面试问题-ui卡顿面试问题详解

    UI卡顿原理: “60fps(Frames Per Second每秒传输帧数) ----> 16ms” 针对上面标红的数字,下面具体说明一下:最主要的根源在于渲染性,Android会每隔16ms ...

  7. 【转】提高PHP性能的53个技巧

    PHP技巧汇总:提高PHP性能的53个技巧用单引号代替双引号来包含字符串,这样做会更快一些.因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符 ...

  8. Unity UI性能优化技巧

    本文将介绍一些提升Unity UI性能的技巧.更多优化技巧,可以观看Unity工程师Ian Dundore在Unite Europe 2017的演讲<使用Unity性能提升技巧>. 1.划 ...

  9. OneAPM大讲堂 | 提高JavaScript性能的30个技巧

    文章系国内领先的 ITOM 管理平台供应商 OneAPM 编译呈现. 您是网站管理员还是网页开发人员?想创建超快速的网站吗? 今天我们来看看 JavaScript,这项神奇而又复杂的技术.它使网站内容 ...

随机推荐

  1. WifiManager类具体解释

    public class WifiManager extends Object java.lang.Object    ↳ android.net.wifi.WifiManager 类概述 This ...

  2. android布局中显示隐藏动画

    android 在布局中提供属性,能简单的加入动画效果,例如以下: <LinearLayout ... animateLayoutChanges="true" ... /&g ...

  3. Android scrollTo() scrollBy() Scroller解说及应用

    版本号:1.0  日期:2014.6.17  2014.6.18 版权:© 2014 kince 转载注明出处   scrollTo() .scrollBy()及 Scroller在视图滑动中常常使用 ...

  4. iOS-获取Model(设备型号)、Version(设备版本)、app(程序版本)等

    IOS-获取Model(设备型号).Version(设备版本).app(程序版本)等 NSLog(@"uniqueIdentifier: %@", [[UIDevice curre ...

  5. java 正则表达式语法

    java 正则表达式语法 标签: 正则表达式javawindowsvbscriptscripting电话 2012-05-20 10:11 6705人阅读 评论(1) 收藏 举报  分类: javaS ...

  6. 【Python】python网络协议

    套接字是常见的低级别的网络通讯协议,在此基础上,还有很多其他的网络通讯协议.用于实现client-server的网络互联,以下对这些协议做一个简单的介绍. 1.文件传输 FTP:文件传输协议.能够上传 ...

  7. thinkPHP 空模块和空操作、前置操作和后置操作 具体介绍(十四)

    本章节:介绍 TP 空模块和空操作.前置操作和后置操作 具体介绍 一.空模块和空操作 1.空操作 function _empty($name){ $this->show("$name ...

  8. 2014.04.17,转帖,关于FFT的结果为什么要除以N

    http://www.chinavib.com/forum/viewthread.php?tid=23665&highlight= 关于这个问题,我看到的书好像都没有进行解释,这里我试着解释下 ...

  9. 在单机上安装多个oracle实例

    1   在 hp unix上安装 oracle 10g ,这个不解释,直接安装好. 创建组oinstall,dba,用户oracle  [root@node1 ~]# groupadd oinstal ...

  10. DB-SQL-MySQL-杂项-调优:Mysql千万以上数据优化、SQL优化方法

    ylbtech-DB-SQL-MySQL-杂项-调优:Mysql千万以上数据优化.SQL优化方法 1.返回顶部 1. 1,单库表别太多,一般保持在200以下为宜 2,尽量避免SQL中出现运算,例如se ...