冷启动优化

1. 应用冷启动和热启动的区别

(1) 冷启动方式:应用启动前,系统没有该应用的任务进程;启动时系统会分配一个新进程给该应用(从Application类开始加载,进行测量、布局和绘制来显示界面)
如:首此启动应用或杀死应用进程后重新启动
(2) 热启动:应用启动前,系统已有该应用的进程;启动时会从后台已有的进程启动(直接从MainActivity类加载)
如:点击返回键或home键退出应用,然后马上又重新启动应用

2. 冷启动流程

冷启动流程.png

3. 冷启动时间优化

说明:冷启动时间无法避免,即用户总要等待一段时间来启动应用。
(1) 减少Application和Activity的onCreate()方法的工作量
备注:第三方sdk的初始化建议在Application中进行(在日常开发中都会重写Application类),可以采用懒加载的方式移除这部分代码,当真正使用这些sdk的时候再进行初始化;但是懒加载也存在缺点,就是不能把所有场景都列出(哪些sdk需要在哪些地方使用,然在使用前再初始化),这其实也是个很耗时的操作。
(2) 不要在Application进行业务操作和耗时操作
(3) 不要在Application中以静态变量的方式保存数据(静态变量和app的生命周期一样长,易造成内存泄漏和数据安全问题)
(4) 避免复杂布局和布局嵌套(view 的层级越多,布局测量和绘制就越花时间)
(5) 在mainThread中使用懒加载来延缓资源初始化或在子线程中来初始化资源(把所有资源的初始化放到 mainThread 中会减慢启动速度)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 关于冷启动的优化方法,网上已经有很多的文章了,总结起来,大概有以下几种优化方式: 优化布局,这一步是最简单的...
    事多店阅读 5,077评论 1 11
  • 一、什么是冷启动? 冷启动的定义/冷启动和热启动的区别/冷启动时间的计算 冷启动的定义:就是在启动应用前,系统中没...
    崽子猪阅读 668评论 0 1
  • 一、什么是冷启动 1.冷启动的定义 冷启动就是在启动应用前,系统中没有该应用的任何进程信息 2.冷启动、热启动的区...
    微尘_8957阅读 469评论 2 2
  • 河湾行走后,午餐,回家,终于过了第一个寒假日。
    夏Yvonne阅读 300评论 0 0
  • 昆明,是我从小就爱和父母来的地方,小时候,这里是离我们那个小城最近的省会城市,但凡要置办点什么重大物件,小城居...
    retainsmile阅读 110评论 0 0