android性能优化

2020-12-05  本文已影响0人  Ivy枫

android程序过多的使用内存会造成内存溢出(OOM),过多的使用CPU资源(一般指大量的耗时工作),会导致卡顿或ANR

性能优化方法:布局优化、绘制优化、内存泄漏优化、响应速度优化、ListView优化、Bitmap优化、线程优化等

布局优化

思想:减少布局的层级,意味着android的绘制工作量少了

绘制优化

指View的onDraw方法要避免执行大量的操作

内存泄漏优化

可以使用MAT工具来找出潜在的内存泄漏,从而解决问题,内存泄漏不会导致程序功能异常,但容易造成内存溢出

静态变量导致的内存泄漏单例模式导致的内存泄漏属性动画导致的内存泄漏

单例模式的生命周期与Application保持一致,在属性动画中有一类无线循环动画,在activity中没有停止的话会一直循环播放下去,即使看不见,activity的View会被动画持有,View又持有Activity,最终activity无法释放

响应速度优化

核心思想:在主线程中不要做耗时的工作

activity在5秒之内无法响应屏幕的触摸事件或者键盘输入事件就会ANR,BroadcastReceiver在10之内没有执行完成会出现ANR

线程优化

主要思想:采用线程池,避免程序中存在大量的Thread

线程池可以重用内部的线程,从而避免了创建和销毁线程带来的性能开销,线程池还能有效的控制线程池的最大并发数,避免大量的线程因为互相抢占资源从而造成堵塞现象

性能优化总结

  1. 避免创建过多的对象
  2. 不要过多使用枚举,枚举占用内存比整型大
  3. 常量使用static final
  4. 使用android特有的数据结构,如:SparseArray和pair
  5. 适当使用软引用和弱引用
  6. 采用内存缓存和磁盘缓存
  7. 尽量采用静态内部类,可以避免潜在的内部类而导致的内存泄漏
上一篇下一篇

猜你喜欢

热点阅读