Android--launcher启动过程解析

第一步:我们先从LauncherApplication.java开始,先找到onCreate()方法:

第二步:看下Launcher.java中的onCreate()方法: 第三步:加载桌面项: 在LauncherModel.java的Thread的run方法, 是在主线程完成以后才开始加载

这里调用了Launcher.java中startBinding方法

还有Launcher.java的bindItem()方法:

注意,这两个方法都是异步调用。原因应该很清楚:时间。

另外还要注意一下两点:

1.桌面图标view对象添加OnLongClickListener=laucher,由laucher负责监听桌面图标view的longclick事件

2.如果桌面图标是DropTarget对象,拖放控制器mDragController添加该view到拖放目的地列表

Launcher.java的代码中有bindFolders()bindAppWidget()方法,都是回调方法。主要看下bindAppWidget()方法吧。

当都加载完成以后会执行finishBindingItems():

前面那三个都是都是回调方法,控制器当然是LauncherModel.java了,让我们在代码里看一下:

其接口定义如下:


想看仔细的,自己可以在代码中找一下。

最后执行 bindAllApplications() , bindAppsAdded()方法

到这基本上就是整个的启动过程了。


PS:这篇文章没有太多文字性的东西,关于代码的问题,请看代码注释,比较详细了。如果有疑问,欢迎留言探讨!

你可能感兴趣的:(Launcher)