android8.0 Launcher 源码(4)---Launcher的源码启动过程讲解
源码 启动 过程 --- 讲解 Launcher
2023-09-14 09:05:09 时间
我们已经知道Launcher是继承Activity,并且从配置文件中可以看到Launcher.java是作为主进口的,那么我们就从Launcher的onCreate开始分析。
不管Launcher如何升级版本,整体的结构流程始终没有变,从LauncherAppState开始获取手机配置,再到LauncherModel对数据进行绑定。再到数据回调给Launcher。
这里把Launcher的oncreate方法分为七步,如果是自己开发还会加上严苛模式。
onCreate的大体步骤
1.创建LauncherAppState对象,重点是根据手机硬件参数生成桌面参数(在系列第二篇中讲到的default_workspace.xml就是根据获取的硬件参数来进行适配选择的)。
2.分屏模式下的处理。
3.创建统一Launcher辅助对象。
4.生成桌面分布局。
5.计算桌面各布局细节参数。
6.LauncherModel的布局操作。
7.横屏和CallBack。
以上7步就得到了桌面的UI,如果再配合用户操作机制和后台触发机制就构成了完整的桌面。
接下来我们一一进行分析
一 开启严苛模式
如果我们在做开发Launcher的话,在oncreate中会开启严苛模式:友情链接
严苛模式主要检测两大问题,一个是线程策略ThreadPolicy,一个是VM虚拟机策略VMPolicy。
[ThreadPolicy线程策略检测]
detectCustomSlowCalls()自定义的耗时调用。
detectDiskReads()磁盘读取操作。
detectDisWrites()磁盘的写入操作。
detectNetWork()网络操作。
[V
相关文章
- 【Redis源码】Redis 启动过程分析
- PHP在线客服系统平台源码(完全开源的网页在线客服系统)
- react源码调试
- asp.net core启动源码以及监听,到处理请求响应的过程
- 图个源码系列 · Eureka Client启动注册,Server如何处理的全流程剖析
- Meta Force佛萨奇2.0项目系统开发源码搭建技术
- 分析React源码中的合成事件
- 理解以太坊: Go-Ethereum 源码剖析(1): Account and State
- H5/APP客服端源码/uniapp在线客服系统源码开源了,全源码代码解读及发行安装教程
- 【Netty源码分析】02 Netty Server 启动流程 下
- 【Android 启动过程】Activity 启动源码分析 ( AMS -> ActivityThread、AMS 线程阶段 )
- 【Android 启动过程】Activity 启动源码分析 ( ActivityThread -> Activity、主线程阶段 一 )
- 【Android 启动过程】Activity 启动源码分析 ( ActivityThread 流程分析 一 )
- 【Linux 内核 内存管理】mmap 系统调用源码分析 ⑤ ( mmap_region 函数执行流程 | mmap_region 函数源码 )
- Ribbon负载均衡 (源码分析)
- linux 查看源码
- 分析Linux STL源码探究:分析其中的秘密(linuxstl源码)
- Linux的分支:开放式源码分发系统(linux的分支)
- 源码Oracle源码CPIO解压实施细节(cpio解压oracle)
- Android源码学习之工厂方法模式应用及优势介绍
- mysqld_safe启动脚本源码阅读、分析