界面卡顿优化

1.UI层优化

  • 常见问题 : 过度绘制,布局复杂,层级过深
  • 排查工具: GPU过度绘制工具 ,Hierachy Viewer(层级查看器)

   过度绘制 

   在屏幕上一个像素点出现多次绘制 .(如背景重叠绘制)

  布局复杂,层级过深

    优化做法:

  • 没有用的父布局--没有背景绘制或没有大小限制的父布局,不会对界面效果产生任何影响.可以通过替代
  • 在布局层次一样的情况下,建议使用 LinearLayout代替RelativeLayout;
  • 使用LinearLayout导致层次变深,可以使用RelativeLayout替换, 实现相同功能,选择一个层级最少的方案;
  • 不常用的UI尝试使用代替;
  • 注:我们不能因为提高性能而忽略界面要达到的效果,要平衡;

 

2.代码优化

  • 常见问题
  1. 在绘制时实例化对象(onDraw)
  2. 手机不能进入休眠状态
  3. 资源忘记回收
  4. handler使用不当导致内存泄漏
  5. 无用的属性和资源
  6. 可优化的布局
  7. 没有使用SparseArray代替HashMap   
  • 排查工具: Lint工具,可以排查代码问题

 

3.app逻辑层优化

  • 常见问题
  1. 主线程中占用CPU时间过长的函数,特别关注IO操作(文件IO,网络IO,数据库等)
  2. 主线程中调用次数多的函数
  • 排查工具:Traceview  , 可以反映应用中函数的执行时长和次数
  • 优化做法
  1. 不要阻塞主线程, 占用CPU较多的工作尽量放在子线程;
  2. 需要结合使用场景选择不同的线程处理方案;
  3. 如果有大量操作数据库数据时建议使用批处理操作;

 

 

注(以上工具都是Android系统提供的,都很简单, 用一用就会了, 在这里就不过多介绍了)

你可能感兴趣的:(android)