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等
  • 使用流量工具检测大流量的场景并进行优化
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文大体分为四部分 内存优化 布局优化 编码优化 网络优化 内存优化 主要参考胡凯文章 首先说一下内存泄漏和OOM...
    KwokKwok阅读 2,920评论 0 2
  • [原文链接](http://android.jobbole.com/81944/) 我在几周前的 Droidcon...
    发财哥阅读 12,132评论 0 22
  • 将从以下几个方面总结Android的应用性能优化 性能 框架API UI 性能 I/O性能 屏幕滚动性能 内存 A...
    dooze阅读 5,430评论 3 11
  • 常用的Android性能优化方法: 一、布局优化: 1)尽量减少布局文件的层级。 层级少了,绘制的工作量也就少了,...
    Stan_Z阅读 4,786评论 0 10
  • 1,UI优化:这篇文章总结的不错 2,内存泄漏优化 常见的几种形式: 资源对象没关闭造成的内存泄漏: 资源对象没关...
    Richard_7df6阅读 1,865评论 0 0