开机第一次启动过程如下
一、首先创建数据库相关
1.创建数据库favorites表。
2.从default_workspace.xml加载桌面默认的配置信息,写入数据库。
二、加载LauncherApplication
1.启动Launcher重写过的Application子类LauncherApplication。
2.在Application的onCreate里创建LauncherModel(加载应用程序数据相关的类)和Cache(用于缓存Application的图标及应用title)。
3.register跟package change相关的广播及Oberser(因为Launcher要做相应的更新操作当某个应用安装或卸载)。
注:
1.LauncherModel及Cache都是Activity无关性的,它们的生命周期大于Activity,当Activity销毁的时候,能够保持LauncherModel以及Cache里面的数据依旧。
三、启动Launcher Activity
1.初始化UI相关。
2.调用LauncherModel的startLoader方法让LauncherModel加载桌面及menu相关的应用信息。
3.当LauncherModel加载完毕的时候,Launcher收到相关的回调,根据加载的数据信息,初始化UI。
注:
1.桌面的图标是可定制的,也就是这些图标是用户可配的,所以这些信息应该记录下来,也就相对应于数据库的favorites表。
2.menu(所有应用页面)的app是不可定制的,并且是所有具有Launcher属性的Activity,也就是说,这些数据无需特别存储,只要我们每次需要的时候去PackageManager取就可以。
简单协作图
加载应用程序数据绑定到桌面及menu的时序图