对于Android10跟11体系Launcher3的定制有良多,依据名目的需要会停止种种定制开辟,
于是就须要研讨Launcher3的源码。本文重要从Android 11的Launcher3QuickStep动手
(go版本或许其余版本相似)从常用的修正停止剖析,起首就得大抵懂得 Launcher3各个
类的感化。
1. BaseIconFactory.java:Launcher图标的工场类,把持图标UI展现(图标利剑边把持)
Android8,9,10可能在其余类,能够全局搜寻normalizeAndWrapToAdaptiveIcon方式
差未几一样的逻辑。
2. OverviewToAllAppsTouchController.java:横向把持抽屉式All利用界面的触摸类。
3. PortraitStatesTouchController.java:竖向把持抽屉式All利用界面的触摸类。
4. BubbleTextView.java:Launcher全部图标笔墨表现的父类,包含笔墨的巨细,笔墨
革新的的父类。
5. CellLayout.java:Launcher规划的盘算类,图标的表现边距等,构成workspace
的view,继续自viewgroup,既是一个dragSource又是一个dropTarget,能够将它外面
的item拖出去,也能够包容拖动过去的item。在workspace_screen外面定了一些它
的view参数。
6. SecondaryDropTarget.java:长按APP图标的操纵类,对图标停止挪动、删除、
移除、撤消、卸载等操纵。
7. DeviceProfile.java:图标巨细、各个图标间距,规划等盘算实体类,可设置各个参数
的全局变量。
8. Launcher.java: launcher重要的activity,是launcher桌面第一次启动的activity,UI的
重要进口。
9. Workspace.java: 形象的桌面。由N个cellLayout构成,从cellLayout更高一级的层面上
对变乱的处置。
10. ClippedFolderIconLayoutRule.java: 文件夹图标外部表现小图标缩略图的盘算类
,罕见4宫格9宫格表现的实现类。
11. FolderGridOrganizer.java: 开展文件夹表现的盘算逻辑类,文件夹图标浮现是网格
状,此类重要给文件夹各利用图标制订表现规矩,比方3*4,4*4。
12. LoaderTask.java: 加载各个模块Task的表现类,如workspace任务区icon、all任务
区icon初始化任务。
13. PackageUpdatedTask.java: PMS装置利用后更新Launcher3图标及逻辑的实现类。
14. device_profiles.xml:默许Launcher的网格设置,重要包含一下多少点:
a. workspace的行跟列;
b. 文件夹中设置的行跟列;
c. 图标巨细;
d. 图标称号笔墨巨细;
e. 默许抉择加载哪个网格xml的设置文件。
15. default_workspace_xxx.xml/partner_defaul