• Android性能优化


    Android性能优化有多种方式,在多个方面都有体现:

    • 布局优化:布局优化的思想就是减少布局的层级,使用<include/>, <merge/> , <ViewStub/>来优化布局。

    • 绘制优化:绘制优化是指在ViewonDraw()方法内避免执行大量的操作。不要在在onDraw()方法内创建大量的局部对象,这不仅会占用过多内存还会频繁gc,降低程序的效率;不要在onDraw()方法内执行耗时操作,绘制时间要保持在16ms以内,防止界面卡顿。

    • 内存泄漏优化:内存泄漏,是指一段内存在该释放的时候却得不到释放,导致App内内存越用越少。一,静态变量导致的内存泄漏,静态变量的生命周期是整个程序的生命周期,所以不要让静态变量引用生命周期比程序生命周期短的对象;二,单例模式导致的内存泄漏,单例模式对象引用局部对象导致内存泄漏;三,属性动画或线程导致的内存泄漏,属性动画和线程不去主动停止,会一直执行下去的,要在适当的时候停止属性动画和线程。

    • 响应速度优化和ANR:响应速度优化是指避免在主线程做耗时操作,因为操作都是在主线程响应的 ;解决ANR问题,如果不能在代码中找到导致ANR的原因,则可以分析traces.txt找到原因,traces.txt文件会记录导致ANR 的原因的。

    • ListViewBitmap优化:ListView采用convertView+ViewHolder缓存策略,来避免在getView()中执行耗时操作,三级缓存,异步加载,不要在滑动的时候去加载图片,开启硬件加速,来加速渲染;Bitmap的优化则是加载压缩后的Bitmap,采样率。

    • 线程优化:不要开启大量线程,采用线程池。

    参考 《Android开发艺术探索》

  • 相关阅读:
    【域控】获取域控用户
    【MongoDB】开启认证权限
    【MongoDB】 安装为windows services
    【 Quartz】使用 JobListener (任务监听器可实现) 我想在一个任务执行后在执行第二个任务怎么办呢
    【多路复用】I/O多路复用
    静态类和静态类成员
    C#
    response.redirect和server.Transfer的差别详解
    DataReader
    受管制的代码和强类型系统
  • 原文地址:https://www.cnblogs.com/feng-ye/p/6699523.html
Copyright © 2020-2023  润新知