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

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

冷启动的流程
当点击app的启动图标时,安卓系统会从Zygote进程中fork创建出一个新的进程分配给该应用,之后会依次创建和初始化Application类、创建MainActivity类、加载主题样式Theme中的windowBackground等属性设置给MainActivity以及配置Activity层级上的一些属性、再inflate布局、当onCreate/onStart/onResume方法都走完了后最后才进行contentView的measure/layout/draw显示在界面上

冷启动的生命周期简要流程:
Application构造方法 –> attachBaseContext()–>onCreate –>Activity构造方法 –> onCreate() –> 配置主体中的背景等操作 –>onStart() –> onResume() –> 测量、布局、绘制显示

-- 冷启动的优化主要是视觉上的优化,解决白屏问题,提高用户体验,所以通过上面冷启动的过程。能做的优化如下:
1.减少 onCreate()方法的工作量;
2.不要让 Application 参与业务的操作;
3.不要在 Application 进行耗时操作;
4.不要以静态变量的方式在 Application 保存数据;
5.减少布局的复杂度和层级;
6.减少主线程耗时;

-- 引用: 2019 Android 高级面试题总结- https://mp.weixin.qq.com/s/hzCBLwMY04aPWrcTlJ2uPQ

app冷启动与热启动原理,及启动优化相关推荐

  1. APP冷启动和热启动秒开及启动性能检测

    APP启动分为不同的启动方式,我们最常用到的就是冷启动和热启动,本文主要介绍冷启动和热启动方式下如何实现app秒开的效果,以及如何实现实时检测.如何预防性能问题的发生,如果你对此感兴趣,就请接着看下去 ...

  2. 冷启动和热启动的区别android,app冷启动和热启动的区别(详解两者定义及区别)...

    介绍一下 app 冷启动和热启动方式来实现 app 秒开的效果.那么,先来看看什么叫冷启动和热启动. 冷启动:指 app 被后台杀死后,在这个状态打开 app,这种启动方式叫做冷启动. 热启动:指 a ...

  3. 冷启动、热启动、温启动

    冷启动.热启动.温启动 1. 冷启动 启动app时,后台没有app的进程,或者进程被killed,这叫冷启动.冷启动因为系统会重新创建一个新的进程分配给它,所以会先创建和初始化Application类 ...

  4. android app 热启动,app冷启动和热启动的区别(详解两者定义及区别)

    介绍一下 app 冷启动和热启动方式来实现 app 秒开的效果.那么,先来看看什么叫冷启动和热启动. 冷启动:指 app 被后台杀死后,在这个状态打开 app,这种启动方式叫做冷启动. 热启动:指 a ...

  5. Android 查看App冷启动时间/热启动时间/页面打开时间

    Android 查看App冷启动时间/热启动时间/页面打开时间 冷启动时间 热启动时间 页面打开时间 通过adb查看 adb shell am start -W packageName/Activit ...

  6. 北斗/GPS定位模块冷启动、热启动、温启动有什么区别?

    ** 1.冷启动** 什么条件下GPS冷启动?当设备关机时间超过4小时,或者设备光机状态下移动超过200公里,因为天空的GPS卫星星历参数发生了变化,开机时设备需要重新下载星历. 2.热启动 什么条件 ...

  7. App性能优化(一)—— 启动优化,冷启动,热启动,温启动

    标签 : Android架构师之路 APP启动方式 App启动方式分三种:冷启动(cold start).热启动(hot start).温启动(warm start) ▲ 冷启动 系统不存在App进程 ...

  8. APP启动方式分析——冷启动、热启动、温启动

    APP启动分析 Cold start At the beginning of a cold start, the system has three tasks. These tasks are: 1. ...

  9. App三种启动场景:冷启动、热启动、温启动

    1.冷启动(App进程创建) 系统不存在App进程(APP首次启动或APP被完全杀死)时启动APP 此时,APP的启动将经历两个阶段: 第一阶段: 1.加载并启动app; 2.app启动后,第一时间为 ...

最新文章

  1. JavaScript权威设计--CSS(简要学习笔记十六)
  2. 你不知道的JavaScript错误和调用栈常识
  3. mysql平台workb_MySQL:MySQL Workbench的使用
  4. mysql移动数据的语句是_mysql基本语句
  5. nlp3-有限自动机FLandFA
  6. java的mybatis批量更新_mybatis批量更新的问题
  7. docker镜像创建与优化
  8. 时间复杂度为m+n,的一种模式匹配,适合子串不是很长的匹配
  9. Python3.0 新特性
  10. 纯css3特效实现的文字亮光
  11. Hybrid 开发:JsBridge - Web 和客户端的桥
  12. 基于Spring Boot,使用JPA操作Sql Server数据库完成CRUD
  13. MySQL电影院管理系统_电影院售票管理系统
  14. 有用facs做计算机表情识别的嘛,人脸表情识别可以测谎吗
  15. QT 报 QMetaObject::connectSlotsByName: No matching signal for on_btn_clicked()
  16. 七月流火,让我们共享一场开源数据库的饕餮盛宴
  17. Python模拟用户自动登陆网易126邮箱
  18. 代码坏味道类型和解决方法简介
  19. arm linux打印机驱动编译方法,嵌入式linux驱动打印机HP系列
  20. 【案例】畅捷通T+无生产管理模块情况下按产成品统计直接材料成本

热门文章

  1. [工具类] 系列二 Lettuce 访问Redis 工具类 RedisUtil
  2. 使用python scrapy爬取全国小区信息(包括小区价格,经纬度,面积,户数等),并保存到mysql和excel
  3. acer台式电脑怎么重装系统_宏基台式电脑怎么装系统
  4. 找到读取文本文件的方法
  5. kafka报错The request included a message larger than the max message size the server will accept
  6. 网易(weather)天气预报接口
  7. SQL Server 扩展秘钥管理(EKM)
  8. 使用rapidxml 生成xml文件
  9. op07数据手册分析
  10. 简单解释op(面向过程procedure- oriented)与oo(面向对象object-oriented)