前言

如前面两篇文章所描述的,

1、Android开机速度优化简单回顾

2、优化启动时间

我们对Android系统的开机时间优化有了一个比较全面的了解,以及一些常用的调试手段(bootchart等),在这篇文章中我们先来看看如下这个问题,首先看一张图:

如上图所示,

1、在系统启动的时候,为什么像inputmethod、phone、systemUI及settings这些包加载启动的时候要比Launcher早个2秒多的时间呢?

2、开机动画结束,到Launcher加载显示,这里存在一个2秒左右的时间差,这段时间系统在干什么呢?

带着上面的两个问题,我们来进一步分析优化系统的启动时间!

FallbackHome

我们先来看一下系统开机时的log,经过分析过滤,发现在bootanimation结束到启动Activity的时候,有如下两条重要的log

可以看到在启动Launcher前,系统先去启动了一个叫FallbackHome的Activity,两者的时间差正好是2秒左右!!

那么什么是FallbackHome呢?经过一番google,找到了如下这段比较靠普,说的比较明白的解释:

FallbackHome是原生setting的一个activity,且配置了DirectBoot mode。launcher启动的时候会先启动到这个界面,用户解锁后,才会调用finish,结束该界面,从而进入到真正的launcher界面。
若未解锁就等待ACTION_USER_UNLOCKED广播后再去启动Launcher。非DirectBoot模式下的launcher耗时4s就是在等待finishBooting后的系统广播ACTION_USER_UNLOCKED。
FallbackHome就是应DirectBoot功能而新增的一个页面,具体DirectBoot功能不在这里赘述,大家可自行了解。作者:迷你球
链接:https://juejin.im/post/6844904079001387016
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

关于什么是DirectBoot模式,这里不再进行说明,具体内容可以阅读google官方的文档:

支持“直接启动”模式

在setting的AndroidManifest.xml里面,配置了DirectBoot模式,这样FallbackHome就会先于Launcher加载启动了

修改过程

由于我们的产品是不需要锁屏功能的,可以直接把Launcher默认设置为DirectBoot模式,而把inputmethod、phone、settings等这些去掉DirectBoot模式,从而让Launcher优先加载启动。

1、去掉inputmethod、phone、settings的directBootAware属性

2、给Launcher增加directBootAware属性

异常问题处理

编译系统,更新system之后,系统启动,出现Launcher stopped的异常,

抓取logcat日志,有如下crash

出现的错误提示:

User 0 must be unlocked for widgets to be available

出现这个错误的原因,可以参考这篇文章:https://blog.csdn.net/w1070216393/article/details/72722759

但这里改动的是Launcher,除了这个问题,还会有像加载QS出现异常等,这里就不多说了,一一解决就好了。

最后看一下优化后的bootchart

Android开机优化之调整Launcher的加载时间相关推荐

  1. android 进lanucher的广播,Android开机优化之调整Launcher的加载时间

    前言 如前面两篇文章所描述的, 我们对Android系统的开机时间优化有了一个比较全面的了解,以及一些常用的调试手段(bootchart等),在这篇文章中我们先来看看如下这个问题,首先看一张图: 如上 ...

  2. 打开服务器网页要5秒,网页优化技巧 如何把网页加载时间控制在1.5秒以内

    今天为大家分享"如何把网页加载时间控制在1.5秒以内(必看)"当然了,控制在2秒以内其实是完全可以的,我们为什么要控制页面打开速度那?首先百度会对加载慢的页面进行打击,对SEO排名 ...

  3. 接手同事vue项目两个月的血和泪,关于vue项目性能优化,缩短首屏加载时间

    最近接手了别人做的vue项目,项目跑起来后,有些页面很卡,首屏加载也慢,打包速度也慢.于是,研究了很久vue的项目性能优化,下面我将从两个部分来详解vue项目的性能优化: 代码优化 webpack打包 ...

  4. Android 浏览器内核浅谈,基于WebKit内核的Android手机浏览器的性能研究与加载优化...

    南京邮电大学 硕士 2017 基于WebKit内核的Android手机浏览器的性能研究与加载优化 Performance Research and Load Optimization of Andro ...

  5. android Q launcher 数据加载流程

    时间:2020/08/24 之前公司不允许csdn,笔记写在其它地方.最近整理过来 下一篇:launcher数据加载(二) 前言 androidQ和androidP上Launcher结构有很大区别. ...

  6. unity优化冷启动时间/加载时间总结

    本文一部分博主并未实践过,只是做一个总结,如有错误,请指正 目录 一.概念了解 二.优化目的 1.保证游戏流畅度的基础上DrawCall越小越好 2.Statistics统计面板参数 3.打包编译 三 ...

  7. 【Android 逆向】整体加固脱壳 ( DexClassLoader 加载 dex 流程分析 | RawDexFile.cpp 分析 | dvmRawDexFileOpen函数读取 DEX 文件 )

    文章目录 前言 一.RawDexFile.cpp 中 dvmRawDexFileOpen() 方法分析 前言 上一篇博客 [Android 逆向]整体加固脱壳 ( DexClassLoader 加载 ...

  8. 【Android 逆向】整体加固脱壳 ( DexClassLoader 加载 dex 流程分析 | 查找 DexFile 对应的C代码 | dalvik_system_DexFile.cpp 分析 )

    文章目录 前言 一.查找 DexFile 对应的 C++ 代码 1.根据 Native 文件命名惯例查找 C++ 代码 2.根据方法名查找 二.dalvik_system_DexFile.cpp 源码 ...

  9. 【Android 逆向】整体加固脱壳 ( DexClassLoader 加载 dex 流程分析 | DexFile loadDexFile 函数 | 构造函数 | openDexFile 函数 )

    文章目录 前言 一.DexFile.loadDexFile 函数分析 二.DexFile 构造函数分析 三.DexFile.openDexFile 函数分析 前言 上一篇博客 [Android 逆向] ...

  10. 【Android 逆向】整体加固脱壳 ( DexClassLoader 加载 dex 流程分析 | DexPathList 中根据 File 加载 DexFile | loadDexFile 分析 )

    文章目录 前言 一.根据 File 加载 DexFile 二.DexPathList.loadDexFile 函数分析 前言 上一篇博客 [Android 逆向]整体加固脱壳 ( DexClassLo ...

最新文章

  1. 0.0 目录-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
  2. 盘点过去一年,MIT人工智能实验室的那些创新
  3. 3des java ecb_PHP 3DES加密 与JAVA通用 加密模式:ECB
  4. ue编辑器拖拽上传图片_Typora + PicGo打造超好用的Markdown编辑器
  5. Angular如何对包含了HTTP请求的服务类进行单元测试
  6. Java基础---变量(三)
  7. 使用Spring将POJO公开为JMX MBean
  8. Linux Qt打包应用程序--利用linuxdeployqt
  9. 测试学开发——第一课:java学习路程
  10. JavaFX 概述 (译)
  11. linux画图工具的下载,Drawing Linux(简单画图工具)最新版下载
  12. ubuntu下终于安装好了nvidia的gt540显卡驱动
  13. 用outlook登录163邮箱的超详细教程
  14. c语言叠阵题目怎么做,选出下列词语书写全正确的一组[]A、贪婪点辍忍军不禁玲珑剔透B、辜负骚扰擎天旱地多姿多采C、小憩茁壮怡然自得头昏目眩D、玷污糟蹋蜂围叠阵明察秋豪...
  15. 笨办法学python pdf 第三版_笨办法学python第三版
  16. Camera 驱动 读取摄像头ID失败问题、低温下Camera打开花屏或者读不到id、概率性读取不到id
  17. vue中echarts使用案例:饼图(可直接使用)
  18. CSU 1457 Boggle (字典树+DFS)
  19. 笔记本电脑WLAN突然没有了(连不上wifi)
  20. Python pyecharts地理数据可视化 绘制地理图表

热门文章

  1. 交换机tagged与untagged的关系深入探讨
  2. sql2005数据库置疑修复断电崩溃索引损坏
  3. Louvain 算法原理及设计实现
  4. 装机必备:微软常用运行库合集,2022版
  5. 使用proteus8.9进行跑马灯程序仿真
  6. mysql的应用_mysql应用场景
  7. 教师教育网各网页链接
  8. 项目一 Part 4.2 基于网格搜索的超参数优化实战
  9. 黑白群晖为Plex添加证书,开启HTTPS访问
  10. 教你一步步实现一个虚拟摇杆