1.布局优化java
a.核心思想:尽可能减小布局文件的层级。git
b.方式:github
<include>
标签重用布局、<merge>
标签减小层级、<ViewStub>
标签懒加载。详见布局篇--布局原则补充实例: Android最佳性能实践--布局优化技巧缓存
2.绘制优化性能优化
a.核心思想:避免在View.onDraw()
中执行大量的操做。数据结构
b.方式:工具
onDraw()
可能被屡次调用而产生大量的临时对象,致使占用过多内存、系统频繁gc,下降了执行效率。3.内存泄漏优化布局
a.内存泄漏(Memory Leak):程序在申请内存后,没法释放已申请的内存空间。是形成应用程序OOM的主要缘由之一。post
内存溢出(out of memory):指程序在申请内存时,没有足够的内存空间供其使用。性能
补充阅读:内存溢出和内存泄漏的区别
b.可能缘由:
context.getApplicationContext()
。context.getApplicationContext()
。onDestroy()
中中止无限循环的属性动画,使得View持有了Activity。Activity.onDestroy()
中调用Animator.cancel()
中止动画。unregisterReceiver()
注销;close()
关闭;recycle()
释放内存(2.3版本后无需手动)。getView()
每次从新实例化Item,会给gc制造压力。c.方式:
推荐阅读:常见的内存泄漏缘由及解决方法
4.响应速度优化
a.核心思想:避免在主线程中作耗时操做。
b.方式:开线程。
5.ListView优化
getView()
中执行耗时操做;综合实例:ListView终极优化方法
6.Bitmap优化
7.线程优化
8.其余
推荐阅读:Android开发性能优化总结、 Android最佳性能实践系列
最后,是有助于提升程序可维护性的几点建议,一块儿共勉:
但愿这篇文章对你有帮助~