Android性能优化总结

Android的性能优化,主要是从启动速度内存流畅性电量流量等5个方面入手。

启动速度优化

  • 不在主线程做耗时操作,如io读写、数据库操作等,使用子线程或延时处理
  • 不在application中初始化过多的三方SDK
  • 降低布局文件的嵌套层级,使用merge、include、viewstub标签
  • 减少inflate和findViewById调用次数

内存优化

  • 列表项使用ConvertView和ViewHolder缓存视图
  • 不在自定义view的onDraw方法中new对象
  • 不在循环体中new对象
  • Bitmap、io流等及时释放
  • 对象重用机制,如Bitmap缓存池
  • Bitmap使用缩略图,降低编码格式
  • 字符串拼接使用StringBuilder
  • 使用android:largeHeap="true"获得更大的使用内存
  • 使用android:sharedUid,共享app间的可用内存
  • 排查内存泄漏问题

流畅性优化

  • 防止过渡绘制问题
  • 列表滑动过程中不加载图片
  • 减少view的刷新次数
  • 实时性高的界面使用SurfaceView
  • 减少onMeasure方法的复杂度,onDraw方法尽量在16ms内完成
  • 优先使用本地数据加载,再异步请求网络
  • 使用HandlerThread,减轻主消息队列的负担
  • 使用GPU呈现检查绘制时间
  • 使用TraceView分析方法的执行时间

电量优化

  • 正确使用WakeLock,及时release
  • 使用view的keepScreenOn属性
  • 根据使用场景,调低屏幕亮度,提供夜间模式
  • 进程转入后台时,暂停网络请求,降低连接的心跳频率
  • 控制AlarmManager的唤醒时间频率
  • 使用JobScheduler执行非紧急任务

流量优化

  • 请求网络数据后保存到本地,优先使用本地数据
  • 服务器下发矢量图、缩略图等,视频提供清晰度选择
  • 进程转入后台时,暂停网络请求,退出应用时停止请求
  • 对于大量数据请求分步进行
  • 使用三方优秀开源库如okhttp,glide等
  • 使用流量工具检测大流量的场景并进行优化

你可能感兴趣的:(Android性能优化总结)