当前位置: 首页 > news >正文

热启动和冷启动是什么,区别

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

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

冷启动的流程
当点击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)减少主线程耗时

http://www.lryc.cn/news/176968.html

相关文章:

  • 每日一题 494目标和(0-1背包)(灵神笔记)
  • 软件测试工作步骤详情
  • java项目之列车票务信息管理系统(ssm源码+文档)
  • 【Pytorch笔记】3.数学运算
  • MeterSphere 监控方案
  • elementui-plus+ts+axios使用el-upload组件自定义上传
  • 【STM32单片机】u8g2智能风扇设计
  • Java中的IO流的缓冲流
  • 7、SpringBoot_高级配置
  • cocos2dx查看版本号的方法
  • 某高校的毕设
  • 利用uvicorn、Starlette和pipeline将一个训练好的大模型发布成一个web服务
  • 贝赛尔曲线 - Vue3实现加入购物车抛物线效果组件
  • AddressSanitizer failed to allocate 0xdfff0001000 (15392894357504) bytes解决方法
  • Fortinet 2023上半年全球威胁态势研究报告:勒索软件检测成下降趋势,针对性攻击持续升温
  • MySQL ——多表连接查询
  • 前沿技术 --> 待定
  • Linux定时python脚本(crontab版本)
  • 修改 Ubuntu .cache 和 pip cache 默认路径
  • 【Java SE】Lambda表达式
  • Kafka-UI
  • Unity 制作登录功能02-创建和链接数据库(SQlite)
  • 算法 岛屿数量-(递归回溯)
  • 安卓恶意应用识别(番外篇)(Python并行(多线程or多进程)执行cmd)
  • 基于大语言模型扬长避短架构服务
  • 初识网络编程
  • 轻松使用androidstudio交叉编译libredwg库
  • 【C++杂货铺】一颗具有搜索功能的二叉树
  • uni-app使用vue3,在元素或组件实例上添加ref,用this.$refs显示undefined
  • 蜂蜜配送销售商城小程序的作用是什么