Android优化

来源:互联网 发布:centos一键smtp 编辑:程序博客网 时间:2024/06/03 03:44

布局优化:
布局优化的思想比较简单,主要就是尽量减少布局的层级,如果布局的层级少了,绘制就会更简单更快,程序的性能可以提高。
可以选择性能较高的LinearLayout和FrameLayout。如果LinearLayout和FrameLayout不能满足需求,需要添加层级来完成的,可以考虑使用RelativeLayout。
也可以采用标签<include>,<merge>和ViewStub。include主要是用于布局重用。merge一般和include一起使用,merge减少布局层级。ViewStub则是提供了按需加载的功能。

绘制优化:
绘制优化是指View的onDraw方法要避免执行大量的操作。主要有两个方面:
1.onDraw不要创建新的局部对象,因为onDraw可能会被频繁调用,可能瞬间会产生大量临时对象,可能导致系统频繁gc,降低效率。
2.onDraw不要做耗时任务,也不能执行成千上万次的循环操作。保持每帧绘制的时间不要超过16ms(1000/60~=16ms)。

内存泄露优化:
内存泄露在开发中是一个需要重视的问题,优化分为两个方面:在开发过程中避免写出有内存泄露的代码,另一方面是通过MAT内存分析工具来找出潜在的内存泄露而解决。
有以下几种情况可能导致内存泄露:静态变量、单例模式导致的内存泄露等其他。

响应速度优化:
响应速度优化的核心在于避免在主线程中做耗时操作,将耗时的操作放在子线程中执行。如果在主线程中做了过分耗时的操作,会导致启动Activity时出现黑屏现象,甚至出现ANR。Android规定,如果Activity5秒内无法响应屏幕触摸事件后者键盘输入事件,就会出现ANR。而BroadcastReceiver如果10秒内还未执行完操作,也会出现ANR。在实际开发中很难发现导致ANR的问题,如何解决呢?其实当一个进程发生ANR以后,系统会在data/anr目录下创建一个trace.txt文件,通过分析这个文件就可以定位ANR的原因。

0 0
原创粉丝点击