在12.0的定制化开发中,对于Launcher3的功能定制也是好多的,而对于单层app列表页来说排序功能的开发,也是常有的功能这就需要了解加载app数据的流程,然后根据需要进行排序就可以了,接下来就来实现这个功能
如图:
- packages\apps\Launcher3\src\com\android\launcher3\Launcher.java
- packages\apps\Launcher3\src\com\android\launcher3\LauncherModel.java
- packages\apps\Launcher3\src\com\android\launcher3\LoaderTask.java
- packages\apps\Launcher3\src\com\android\launcher3\LauncherProvider.java
在系统原生的Launcher3中,launcher3为默认home程序,作为系统第一个app(由ActivityManagerService的systemReady函数通过Intent(intent.addCategory(Intent.CATEGORY_HOME);
这里注册为Intent.CATEGORY_HOME的Activity)方式打开home程序的,所以说Launcher.java就是第一个启动的页面,从这里来加载桌面显示数据,
LauncherModel是Launcher3处理数据的核心类,LauncherModel本身继承自BroadcastReceiver