针对启动速度,内存、布局加载、卡顿、瘦身、流量、电量等多个方面做了多维的优化。
1.在启动器的概念中,我们将每一个初始化代码抽象成了一个Task,然后,对它们进行了一个排序,根据它们之间的依赖关系排了一个有向无环图,接着,使用一个异步队列进行执行,并且这个异步队列它和CPU的核心数是强烈相 关的,它能够最大程度地保证我们的主线程和别的线程都能够执行我们的任务,也就是大家几乎都可以同时完成。
2.避免内存抖动,避免内存泄漏从而引起oom
1.资源对象bitmap未close
2.注册对象未注销
3.静态变量存储数据
4.单例使用context用弱引用
5.非静态内部类的静态实例
6.handler消息队列引用临时性内存泄漏
7.使用最优数据类型
8.对象引用方式从强引用改为弱软虚
9.图片三级缓存:lrucache 内存 磁盘
八股文之四优化阶段
最新推荐文章于 2024-09-22 21:03:51 发布
该文章探讨了应用程序性能优化的多个方面,包括启动速度的提升,通过有向无环图排序和异步队列实现初始化任务并行,防止内存抖动和内存泄漏,详细列举了可能导致内存问题的因素如未关闭的Bitmap、未注销的注册对象等,并提出了相应的解决方案。此外,还提到了图片的三级缓存策略以优化资源使用。
摘要由CSDN通过智能技术生成