现在网上关于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。