Launcher3 源码分析(一) 整体结构及核心类
2015-04-12 20:02
274 查看
Launcher作为系统的Home,从功能维度其肩负着桌面,应用管理,系统组件管理等功能。从代码分析角度可以分为UI显示及控制,数据加载,动画。
(一)类关系图
由图可知,Launcher的启动,加载,UI显示控制对应着各自的处理模块。
(二)核心类介绍
Launcher应用的入口,继承自Activity并实现了OnClickListener,OnLongClickListener等接口,图标的点击和长按的具体处理在此类中定义。
在onCreate过程中初始化DeviceProfile,DragController,DragLayer等一系列组件。
LauncherModel
维护Launcher的数据,包括内存及数据库中的数据。可理解为MVC中Model层的具体实现。在其中定义了Callbacks接口用来在执行完同步/异步任务后进行回调进行更新UI等操作,该接口唯一的实现类为Launcher。
DragLayer
Launcher之上的拖动层,继承自FrameLayout,包含onInterceptTouchEvent,onInterceptHoverEvent的事件初步处理,并将事件转发到DragController中。
Workspace
Workspace定义为所有操作的容器,包括添加删除Screen,添加删除ChildView,继承自SmoothPagedView-PagedView-ViewGroup,在其中包含若干Screen,每个Screen为一个CellLayout,包含一定数量icons,folders,widgets。
CellLayout
Screen的根布局,通过DeviceProfile获取行数列数以及Size等参数进行计算,初始化ShortcutAndWidgetContainer并设置尺寸。
ShortcutAndWidgetContainer
BubbleTextView,FolderIcon等View的容器,在CellLayout中定义了对其子元素的操作。
DragController
Shortcut,Folder等拖动时的控制逻辑处理类。
AppsCustomizePagedView
applications,widgets,shortcuts的容器,点击AllAppsButton按钮进入的所有应用的视图。
相关文章推荐
- Android4.0 Launcher 源码分析1——Launcher整体结构
- Launcher3源码分析 — ui结构
- Launcher3源码分析 — 主界面的UI结构
- ABP源码分析一:整体项目结构及目录
- Google Gallery for Android 4.4源码分析以及主UI修改——Gallery整体结构
- Uboot 源码分析----代码整体结构分析
- jQuery源码分析系列(30) : Ajax 整体结构
- jQuery源码分析系列 : Ajax 整体结构
- MySQL源码分析及核心内幕之1 -- 源码目录结构
- jQuery源码分析(版本1.6.1)___构造jQuery对象-源码结构和核心函数
- struts1源码分析(一)整体概览和核心组件
- jQuery源码分析系列(30) : Ajax 整体结构
- HDFS源码分析心跳汇报之整体结构
- MINA2 核心源代码分析笔记 - 1. 整体结构与代码分析指引
- jQuery源码分析-03构造jQuery对象-源码结构和核心函数
- Mybatis源码分析一(SqlsessionFactory及源码整体结构)
- 【转】jQuery源码分析-03构造jQuery对象-源码结构和核心函数
- Uboot 源码分析----代码整体结构分析