Launcher3介绍

  对于Android10跟11体系Launcher3的定制有良多,依据名目的需要会停止种种定制开辟,

        于是就须要研讨Launcher3的源码。本文重要从Android 11的Launcher3QuickStep动手

        (go版本或许其余版本相似)从常用的修正停止剖析,起首就得大抵懂得 Launcher3各个

        类的感化。

        1.1、常用类简述

                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

你可能感兴趣的:(java,eclipse)