Launcher8.0启动流程的第六步中loadworkspace的第1小步是获取数据库,在没有布局时,需要读取手机上的布局xml文件,通过第二个操作知道了到底选取哪里的xml文件,但是,手机的行列数参数是Launcher根据手机本身通过启动流程第一步获取的,在运行之前不知道,那么如何选择行列数正确的xml文件呢?
这里就涉及到一个重要的类 AutoInstallsLayout 和该类的一个方法:
AutoInstallsLayout.get(ctx, packageName, targetResources,
widgetHost, mOpenHelper);
获取AutoInstallsLayout方法,首先获取layoutName,这个名字就是xml名字。
在原生代码res/xml/ 文件夹下面有default_workspace.xml default_workspace_3x3.xml
default_workspace_4x4.xml default_workspace_5x5.xml default_workspace_5x6.xml 一共5个布局文件。
下面则是采用多个方式来获取布局xml,因为不知道xml文件的具体名字所以采用递进的方法来获取。