现在网上关于Launcher启动流程的源码分析流传最多的是google Launcher2.0的启动流程。截止2018年5月,google Launcher已经到了8.0版本。
经对比,8.0和2.0的启动流程大同小异,整体流程依然保留了2.0的结构特征,以LauncherAppState开始获取手机各项参数,从Launcher到LauncherModel再由LauncherModel到Launcher的回调的合入桌面布局和allapp列表。
我个人以代码逻辑和代码量两者结合,将Launcher的oncreate代码分为了7个步骤:
1:创建LauncherAppState 对象,重点是根据手机硬件参数,生成桌面参数。
2:分屏模式的处理
3:统一创建对象
4:生成桌面分布局
5:计算桌面各布局细节参数
6:LauncherModel的布局操作
7:横屏和callback
以上7步就得到桌面的UI。
如果在配合用户操作机制和后台触发机制就构成了完整的桌面。Launcher的启动机制会绑定用户操作和后台触发,但是不展开讲解具体的内容。
通过对Launcher启动流程的分析可以了解到整个Launcher的框架和架构,也能窥豹一斑的体会Launcher的完成面貌。
Launcher8.0的oncreate()方法源码如下:
@Override
protected void onCreate(Bundle savedInstanceState) {
if (mLauncherCallbacks != null) {
mLa

本文分析了Android 8.0 Launcher的启动流程,包括7个关键步骤:创建LauncherAppState对象、处理分屏模式、统一创建对象、生成桌面布局、布局细节计算、LauncherModel布局操作和横屏及回调设置。通过这些步骤,理解Launcher如何根据设备参数生成适配的桌面UI,并为后续的用户操作和后台触发机制打下基础。
最低0.47元/天 解锁文章
1373

被折叠的 条评论
为什么被折叠?



