美文网首页Android开发Android技术知识Android开发经验谈
Android开发常谈—【热启动&冷启动】

Android开发常谈—【热启动&冷启动】

作者: 谁动了我的代码 | 来源:发表于2023-02-02 20:39 被阅读0次

冷启动概述

app冷启动: 当应用启动时,后台没有该应用的进程,这时系统会重新创建一个新的进程分配给该应用, 这个启动方式就叫做冷启动(后台不存在该应用进程)。冷启动因为系统会重新创建一个新的进程分配给它,所以会先创建和初始化Application类,再创建和初始化MainActivity类(包括一系列的测量、布局、绘制),最后显示在界面上。例外,首次打开应用,或者是在清除当前应用缓存数据后打开app!

热启动概述

app热启动: 当应用已经被打开, 但是被按下返回键、Home键等按键时回到桌面或者是其他程序的时候,再重新打开该app时, 这个方式叫做热启动(后台已经存在该应用进程)。热启动因为会从已有的进程中来启动,所以热启动就不会走Application这步了,而是直接走MainActivity(包括一系列的测量、布局、绘制),所以热启动的过程只需要创建和初始化一个MainActivity就行了,而不必创建和初始化Application 。

app热启动和冷启动的区别

app热启动:

当应用已经被打开, 但是被按下返回键、Home键等按键时回到桌面或者是其他程序的时候,再重新打开该app时, 这个方式叫做热启动(后台已经存在该应用进程)。热启动因为会从已有的进程中来启动,所以热启动就不会走Application这步了,而是直接走MainActivity(包括一系列的测量、布局、绘制),所以热启动的过程只需要创建和初始化一个MainActivity就行了,而不必创建和初始化Application。

app冷启动:

当应用启动时,后台没有该应用的进程,这时系统会重新创建一个新的进程分配给该应用, 这个启动方式就叫做冷启动(后台不存在该应用进程)。冷启动因为系统会重新创建一个新的进程分配给它,所以会先创建和初始化Applica

应用启动时间概述

用户期望应用程序能够快速响应并快速加载。启动时间慢的应用程序不能满足此期望,并且可能会使用户感到失望。这种糟糕的体验可能会导致用户在Play商店中对您的应用进行差评,甚至完全放弃您的应用。

具体有哪些阶段可优化呢?

点击app以后到初始化Application之间这段时间,系统接管,从Zygote进程中fork创建新进程,GC回收等等一系列操作,和我们app无关

image

从上图可以看到,整个冷启动流程中至少有两处onCreate,分别是Application和Activity,整个流程都是可控的。所以,onCreate方法做的事情越多,冷启动消耗的时间越长

启动时间的计算

Logcat 自动打印 从Android 4.4(API 19)开始,Logcat自动帮我们打印出应用的启动时间。这个时间从应用启动(创建进程)开始计算,到完成视图的第一次绘制(即Activity内容对用户可见)为止。

Activity的reportFullyDrawn() 我们可以在Activity的任意位置调用此方法已打印你想看到的、执行完某个方法的最终时间。它会在Logcat里打印从apk初始化(和前面Displayed的时间是一样的)到reportFullyDrawn()方法被调用用了多长时间

image

冷启动的解决方案

1、提供非个性化推荐,比如说热门排行榜,等用户数据收集到一定的时候,切换为个性化推荐利用用户注册信息,人口统计学信息;用户兴趣描述;从其它网站导入的用户站外行为等。

2、选择合适的物品启动用户的兴趣,用户登录时对一些物品进行反馈,收集用户对这些物品的兴趣信息,然后给用户推荐和这些物品相似的物品,一般要具有以下特点:(1) 比较热门,(2) 具有代表性和区分性(不能是大众化或老少皆宜的,兴趣无可分性),(3) 启动物品集合需要有多样性,在不知道用户兴趣的情况下,需要提供很高覆盖率的启动物品集合,几乎覆盖所有主流的用户兴趣。

3、利用物品的内容信息,userCF算法需要解决第一推动力的问题,第一个用户从哪里发现新物品。考虑利用物品的内容信息,将新物品先投放给曾经喜欢过和它内容相似的其他物品的用户。对于itemCF,只能利用物品的内容信息计算物品的相关程度。基本思路就是将物品转换为关键词向量,通过计算向量之间的相似度(如余弦相似度),得到物品的相关程度。

4、采用专家标注,针对很多系统在建立的时候,既没有用户的行为数据,也没有充足的物品内容信息来计算物品相似度,这时就需要利用专家标注。

5、利用用户在其他地方已经沉淀的数据进行冷启动,比如引导用户通过社交网络账号登录,一方面降低注册成本提高转化率,另一方面获取用户的社交网络信息,解决冷启动问题。

6、利用用户的手机等兴趣偏好进行冷启动:Android手机开放的比较高,所以在安装自己的app时,就可以顺路了解下手机上还安装了什么其他的app。然后可以总结用户的特点和类型。

image

在Android开发中的,热启动与冷启动老生常谈;这【篇文章】也概括了他们的原理及后面的区别。还有优化类方案解析。更多Android的技术学习进阶,大家可以参考《Android核心技术类目》进行学习补漏。

文末

冷启动:冷启动其实就是电脑启动的一种方式,当电脑切断电源,在关机状态下按下POWER启动计算机。

热启动:在计算机已经开启的状态下,通过菜单,任务管理器,快捷键或键盘重新引导操作。

无论是冷启动还是热启动,都要重新上电,检测硬件,将RAM区清零,即所有变量都初始化为0。

相关文章

  • Android开发常谈—【热启动&冷启动】

    冷启动概述 app冷启动: 当应用启动时,后台没有该应用的进程,这时系统会重新创建一个新的进程分配给该应用, 这个...

  • Android开发知识点总结

    Android启动 一、Android应用启动方式:(1)冷启动 (2)热启动 (3)温启动 二、产生白屏的原因...

  • 启动优化1

    目录 一、冷启动定义 二、 冷启动和热启动 三、冷启动、热启动的区别 四、冷启动时间的计算 五、冷启动流程 六、冷...

  • 冷启动和热启动

    一,什么是冷启动和热启动 二,冷启动流程 三,怎么对冷启动进行优化 一,什么是冷启动和热启动 定义:冷启动就是启动...

  • 从细节处谈Android冷启动优化

    本文来自网易云社区 Android APP冷启动优化,对于Android开发同学而言可能是个老生常谈的技优了。 之...

  • 应用启动优化

    1.热启动 与 冷启动 冷启动 首次启动。 热启动 是已经启动,从后台再次唤醒。2.优化冷启动main()函数执...

  • APP冷启动优化

    一、APP启动分为冷启动和热启动 1、冷启动 - APP从0-1的启动 2、热启动 - APP在后...

  • App 冷启动与热启动及启动白屏优化

    介绍一下 app 冷启动和热启动方式来实现 app 秒开的效果。那么,先来看看什么叫冷启动和热启动。 冷启动:指 ...

  • 关于App启动速度优化

    冷启动、热启动 冷启动:App启动前,它的进程不在系统里,系统新创建一个进程分配给它启动;热启动:App冷启动后,...

  • 性能优化 - 启动时间

    应用的启动分为:冷启动,暖启动和热启动。其中冷启动是我们优化的重点,优化冷启动可能会同时优化暖启动和热启动。 冷启...

网友评论

    本文标题:Android开发常谈—【热启动&冷启动】

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