首页
学习
活动
专区
圈层
工具
发布

Android性能优化(一)—— 启动优化,冷启动,热启动,温启动

APP启动方式 App启动方式分三种:冷启动(cold start)、热启动(hot start)、温启动(warm start) ▲ 冷启动 系统不存在App进程(APP首次启动或APP被完全杀死)...时启动APP此时,APP的启动将经历两个阶段: 第一阶段 1.加载并启动app;2.app启动后,第一时间为app显示一个空白的window;3.创建app进程 第二阶段 系统一旦创建了app...▲ 热启动 当我们按了Home键或其它情况app被切换到后台,再次启动app的过程。热启动时,系统将activity带回前台。...▲ 温启动 温启动包含了冷启动的一些操作,由于app进程依然在,温启动只执行冷启动的第二阶段,这代表着它比热启动有更多的开销。...温启动有很多场景,例如: 用户按连续按返回退出了app,然后重新启动app; 由于系统收回了app的内存,然后重新启动app App启动优化 app启动优化的方向是冷启动。

2.7K20

【Android 启动过程】Android 应用启动流程 | Activity 启动流程

文章目录 一、Android 系统启动流程 二、Activity 启动流程 一、Android 系统启动流程 ---- 打开 Android 手机电源键后 , 先运行 BootLoader , 然后使用...BootLoader 加载 Linux Kernel , 之后会启动 init 进程 , init 进程会启动 Zygote ( 受精卵 ) 进程 , Zygote 进程会调用 system_server...system_server 进程 会拉起 PackageManagerService 进程 和 ActivityManagerService 进程 , ActivityManagerService 进程 会启动...---- Android 应用启动方式有 2 种 , 分为冷启动和热启动 ; 冷启动 : 后台没有应用进程 , 需要先创建进程 , 然后启动 Activity ; 热启动 : 后台有应用进程 ,...不创建进程 , 直接启动 Activity ; Activity 启动一般分为 3 个阶段 , 以 Activity A 中启动 Activity B 为例 : 阶段 1 : Activity

5.1K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    启动顺序问题:启动顺序设置错误,导致无法正确启动

    进入 BIOS/UEFI 设置重启计算机:关闭计算机,然后重新启动。进入 BIOS/UEFI 设置:在启动过程中,通常需要按下特定的键进入 BIOS/UEFI 设置。...具体的键取决于您的主板型号,可以在启动时查看屏幕提示或查阅主板手册。2. 检查和调整启动顺序导航到启动顺序设置:进入 BIOS/UEFI 设置后,使用方向键导航到“Boot”(启动)或类似的选项卡。...查看当前启动顺序:在启动顺序设置中,您会看到列出的启动设备,如硬盘、USB 驱动器、光驱、网络启动等。调整启动顺序:使用方向键和 + 或 - 键(或特定的按键组合)调整启动设备的顺序。...确保您希望首先启动的设备位于列表的顶部。例如,如果您希望从硬盘启动,确保硬盘位于启动顺序的首位。保存并退出:调整完毕后,保存设置并退出 BIOS/UEFI。...验证启动顺序重启计算机:保存设置并退出 BIOS/UEFI 后,计算机将重新启动。观察启动过程:观察计算机启动过程,确保系统从正确的设备启动。如果仍然无法启动,可能需要进一步检查其他设置或硬件问题。

    4.7K10

    【Android 性能优化】应用启动优化 ( 启动白屏问题 | 应用启动时间测量 | 冷启动 | 热启动 | 应用启动时间计算源码分析 )

    文章目录 一、 APP 启动白屏 / 黑屏 二、 APP 启动速度测量 1. 通过 Logcat 日志查看应用启动时间 2....通过 adb 命令查看界面启动时间 三、 APP 冷启动与热启动 四、 APP 启动时间计算 一、 APP 启动白屏 / 黑屏 ---- 1 ....启动优化 : 这里的应用启动白屏 / 黑屏的时间 , 是可以通过优化解决的 , 如将 3 秒钟的启动白屏卡顿 , 优化为毫秒级 ; 二、 APP 启动速度测量 ---- 1....---- 热启动的速度要远高于冷启动 ; 1 ....热启动 : 按下 Home 键 , 应用进入后台 , 再次启动 , 应用由后台转到前台 , 这种启动称为热启动 ; 下图中的 LanuchState 中显示了启动的模式 , 下图中显示的是热启动 ;

    6.6K20

    springboot 启动原理、启动过程、启动机制的介绍

    启动过程:Spring Boot 的启动机制设计得既简单又高效,这使得开发者能够迅速启动和运行一个独立的、生产级的应用程序。这一过程主要涉及以下几个核心步骤:1....启动入口Spring Boot 应用的启动从一个包含 main() 方法的主类开始。这个主类会使用 SpringApplication.run() 方法来启动 Spring 应用。...Spring Boot 启动过程详解Spring Boot 的启动过程是一个复杂而又精妙的流程,它负责加载配置、初始化应用上下文、自动配置和启动内嵌服务器等任务。...下面详细解释了 Spring Boot 启动的每个步骤:1. 加载主类启动过程从加载包含 main() 方法的主类开始。...触发生命周期事件在应用启动过程中,Spring Boot 会触发一系列的生命周期事件,如应用启动事件、应用就绪事件等。开发者可以监听这些事件并执行相应的操作。

    3.7K21

    App冷启动与启动白屏处理

    近日在开发过程中,发现每次点击app从桌面启动都有一个在桌面明显的等待时间,机型越低端的越明显,冷启动优化看来已经势在必行,所以怒而一顿研究再解决之。...1冷启动 第一次启动、被用户杀死进程或系统自动回收进程后,整个app后台任务被清理,再次启动app,称为 冷启动。...特点:后台任务全部结束,回收进程 2热启动 用户点击返回键退回界面,后台任务没有杀死,再次点击启动app,称为 热启动。...特点:未清理后台任务,再次启动 3为什么出现白屏 在一个Activity打开时,如果该Activity所属的Application还没有启动,系统会为这个Activity创建一个进程; 每创建一个进程,...,在启动页出现前屏幕一直显示桌面 推荐使用第一种解决方法,当然,三个方法结合使用效果更好 6举例 普通处理 ?

    2K20

    Android系统启动——6 SystemServer启动

    这是一个什么东西,那我们就来研究下服务启动 (四) 服务启动 下面我们先来了解下一下启动系统服务的两种方式: 一种是通过SystemServiceManager的startService(),该方法用于启动继承于...PHASE_THIRD_PARTY_APPS_CAN_START:启动第三方应用阶段: 在启动阶段后,服务就可以启动/绑定第三方应用程序App就可以。并在此时调用Binder服务。...PHASE_BOOT_COMPLETED:启动结束阶段 在启动阶段后,此时服务可以运行用户与设备进行交互。当启动完成后Home应用程序会在此阶段启动。...至此SystemServer启动,我们已经讲解完毕了,有人会说,那没有启动Launcher呢,对的,其实启动Launcher不是在SystemServer,那它在哪里,它在ActivityManagerService...五、启动Launcher (一)、启动Launcher的根源 在上面讲解启动各种服务时候,讲解到在SystemServer.java的startOtherServices()方法里面的1096行调用

    3.9K30

    【Android 性能优化】应用启动优化 ( 启动优化项目 | 界面启动时间 | 启动优化项目 | 方法追踪 MethodTracing )

    文章目录 一、 界面启动时间 二、 启动优化项目 三、 方法追踪 一、 界面启动时间 ---- 在 【Android 性能优化】应用启动优化 ( 启动白屏问题 | 应用启动时间测量 | 冷启动 | 热启动...| 应用启动时间计算源码分析 ) __ 四、 APP 启动时间计算 博客中简要介绍了相关的启动时间 ; 下面是执行 adb shell am start -W 包名/完整 Activity 类名 命令...相关的时间概念 : ① 应用启动开始时间 : startTime , 这是用户在 Launcher 应用中点击应用图标的时间 , 之后开启进行应用启动 , 该时间就是 Am.java 中记录的 startTime...相加等于 TotalTime 的时长 ; 二、 启动优化项目 ---- 在 Launcher 应用点击图标后 , 启动应用 , 系统为应用开启进程 , 分配内存的步骤是无法干预的 , 开发者能做启动优化的地方只有两个位置..., 分别对应应用启动时间 , 和界面显示时间 ; 1 .

    1.8K10

    启动优化

    启动优化 启动时间:从用户点击app图标开始到 AppDelegate 的didFinishLaunching 冷启动: 内存中不包含app相关数据的启动,一般我们可以通过重启手机来实现冷启动 热启动...: 是指杀掉app进程后,数据仍然存在时的启动 启动优化 -> T1 + T2 需要启动优化的部分 T1: pre-main阶段, 即main函数之前, 操作系统加载APP可执行文件到内存,执行一系列加载...,能延迟的延迟,能放后台初始化的放后台,尽量不要占用主线程的启动时间 优化代码逻辑,去除非必须的代码逻辑,减少每个流程的消耗时间 启动阶段能使用多线程来初始化的,就使用多线程 尽量使用纯代码来进行UI框架的搭建...基于Page Fault,我们思考,App在冷启动过程中,会有大量的类、分类、三方等需要加载和执行,此时的产生的Page Fault所带来的的耗时是很大的。...因此,我们的优化思路就是:将所有启动时刻需要调用的方法,排列在一起,即放在一个页中,这样就从多个Page Fault变成了一个Page Fault。

    2.3K74

    启动优化

    启动分析 启动类型 Android Vitals可以对应用冷,热,温启动时间做监控。 通过adb shell am start -W ......命令执行启动并打印启动耗时信息,下面的启动监控中会详细讲解 1....冷启动 应用从头开始启动,系统进程在冷启动后才创建应用进程 启动流程:Click Event -> IPC -> Process.start -> ActivityThread -> bindApplication...启动时间的扣除逻辑:闪屏,广告,新手引导的时间都应扣除 启动排除逻辑:Broadcast、Server 拉起,启动过程进入后台等都需排除掉 衡量启动速度快慢的标准 平均启动时间(体验差的用户可能被平均...) 快开慢开比,如2秒快开比、5秒慢开比 90%用户的启动时间 区分启动类型: 首次安装启动、覆盖安装启动、冷启动,温启动,热启动 热启动的占比也可以反映出我们程序的活跃或保活能力 除了指标的监控,启动的线上堆栈监控更加困难

    4.5K54
    领券