Launcher8.0启动流程的第六步中loadworkspace的第1小步的结束是有一个带布局的数据库,而launcher布局不是直接从数据库放到桌面上,而是从数据库读取到BgDataModel的缓存中在放到桌面上。
如果不是第一次开机,那么数据库里面存储着布局的信息,第一小步是不做的,直接做第二小步获取数据库的信息。
第二小步就是获取数据库信息。将数据库的信息存入缓存中,即多个ArrayList
集合。在Launcher8.0,有一个类叫做BgDataModel里面有很多集合,专门用来放布局。
比如:
workspaceScreens是保存屏幕的
workspaceItems是桌面的图标
appWidgets是桌面的小部件
Folders是文件夹
以下是源码:
synchronized (sBgDataModel) {
sBgDataModel.clear();
final HashMap<String, Integer> installingPkgs = PackageInstallerCompat