美文网首页
性能优化方方面面

性能优化方方面面

作者: 陆元伟 | 来源:发表于2020-05-30 11:11 被阅读0次

布局优化

  1. 减少布局嵌套层级
  2. merge 标签使用
  3. ViewStub延迟加载
  4. Overdraw有时候是因为你的UI布局存在大量重叠的部分,还有的时候是因为非必须的重叠背景。例如某个Activity有一个背景,然后里面的Layout又有自己的背景,同时子View又分别有自己的背景。仅仅是通过移除非必须的背景图片,这就能够减少大量的红色Overdraw区域
  5. ondraw方法不需要创建新的局部对象,这是因为ondraw方法是实时执行的,这样会产品大量的临时对象,导致占用了更多内存,并且使系统不断的GC。降低了执行效率。

第三方库懒加载

很多第三方开源库都说在Application中进行初始化,十几个开源库都放在Application中,肯定对冷启动会有影响,所以可以考虑按需初始化,例如Glide,可以放在自己封装的图片加载类中,调用到再初始化,其它库也是同理,让Application变得更轻

WebView启动优化

WebView第一次创建比较耗时,可以预先创建WebView,提前将其内核初始化。使用WebView缓存池,用到WebView的地方都从缓存池取,缓存池中没有缓存再创建,注意内存泄漏问题。

线程优化

Asynctask:为UI线程与工作线程之间进行快速处理的切换提供一种简单便捷的机制。适用于当下立即需要启动,但是异步执行的生命周期短暂的场景。
HandlerThread:为某些回调方法或者等待某些执行任务的执行设置一个专属的线程,并提供线程任务的调度机制。
ThreadPool:把任务分解成不同的单元,分发到各个不同的线程上,进行同时并发处理。
IntentService:适合执行由Ui触发的后台任务。并可以把这些任务执行的情况通过一定的机制反馈给UI。

其他

ArrayMap及SparseArray 替换HashMap
SparseArray比HashMap省内存是因为它避免了对Key进行自动装箱(int转Integer)

String拼接-->StringBuilder/StringBuffer替代

内存泄露建议

  1. Context使用不当造成内存泄露
  2. 非静态内部类的静态实例容易造成内存泄漏
  3. 线程未终止造成的内存泄露
  4. 对象的注册与反注册没有成对出现造成的内存泄露;譬如注册广播接收器、注册观察者(典型的譬如数据库的监听)等

持续更新中...

相关文章

  • Android 性能优化

    Android APP性能优化(最新总结)Android性能优化全方面解析Android性能优化的方方面面http...

  • 每日一题: 性能优化

    每日一题: 性能优化 Android性能优化的方方面面 面试建议? 运行Android系统的设备类型有170+种,...

  • JVM(五)深入了解性能优化

    影响系统性能的方方面面响应时间并发数吞吐量关系 常用的性能优化手段避免过早优化进行系统性能测试寻找系统瓶颈,分而治...

  • 性能优化方方面面

    布局优化 减少布局嵌套层级 merge 标签使用 ViewStub延迟加载 Overdraw有时候是因为你的UI布...

  • iOS性能优化方方面面

    参考文章: iOS内存、缓存及存储优化 懒加载 视图控制对象通过alloc和init来创建,但是视图控制对象不会在...

  • Android性能优化 - 消除卡顿

    性能优化系列阅读 Android性能优化 性能优化 - 消除卡顿 性能优化 - 内存优化 性能分析工具 - Tra...

  • Android性能优化 - 内存优化

    性能优化系列阅读 Android性能优化 性能优化 - 消除卡顿 性能优化- 内存优化 性能分析工具 - Trac...

  • 前端性能优化(中)

    性能优化调研系列文章 《前端性能优化(上)》 《前端性能优化(中)》 《前端性能优化(下)》 《前端性能优化(上)...

  • 前端性能优化(下)

    性能优化调研系列文章 《前端性能优化(上)》 《前端性能优化(中)》 《前端性能优化(下)》 《前端性能优化(中)...

  • Awesome Extra

    性能优化 性能优化模式 常见性能优化策略的总结 Spark 性能优化指南——基础篇 Spark 性能优化指南——高...

网友评论

      本文标题:性能优化方方面面

      本文链接:https://www.haomeiwen.com/subject/ogeczhtx.html