Launcher3项目是一个非常大、非常复杂的项目,虽然从界面看Launcher的界面很少,也不复杂,但是涉及的UI,动画,手势等非常多,与SystemUI,窗口都深度绑定,如果没有看过Launcher3源码还是比较难理解的。

Launcher3从整体的架构来看是分为两部分:一部分是基础部分,就是不与SystemUI和窗口绑定的,一部分(Quickstep)是与SystemUI和窗口绑定的。

基础部分一般是给开发三方桌面使用的,可以在任何Android手机安装,Quickstep部分是给手机厂商用的,依赖SystemUI和窗口。

先从架构开始,逐步分析整个Launcher3项目。

这篇先看看基础部分的架构:

idea1

由于内容比较多,这里也只是显示了部分内容,还有很多的内容没有呈现,比如一些动画,拖拽,手势等,后续逐步放出。

这个图先让我们对基础部分的架构有个了解,以帮助我们更好的学习整个Launcher3项目。