assembly文件夹(Assembly Folder Contents Overview)
Launcher 框架
布局
Draglayer :最外层的layer,负责在拖动事件的处理。
qsb_bar: 全局的搜索条
workspace:lancher的首页,显示widget,shortcut,和folder
apps_customize_pane:显示所有的app
overview_panel:底部的panel(壁纸,小部件,设置)
Clings:导引界面,有4个导引界面、
first_run_cling:第一次启动laucher时显示的导引
workspace_cling:第一次使用workspace时显示的导引
folder_cling:第一次使用时显示folder使用的导引
cling_scrim:目前还不清楚如何使用
Drawable State Proxy View:搜索条上的话筒在使用的时候显示的界面
Page indicator:页面的指示条
App customize pane:显示所有的app的界面
主要的类
Launcher (Activity): main Activity,负责界面的切换。
LauncherModel :利用线程加载数据,加载完成后通知launcher显示刷新界面。负责接收广播事件,然后进行数据更新,通知界面刷新。
LauncherApplication:应用的实例,利用LauncherAppState进行数据库的初始化,注册广播的接收,例如应用的安装,删除,状态改变,搜索等。广播事件的接收是在LauncherModel中,它是真正的receiver。
LauncherProvider:数据库相关的provider,负责和数据库的接口工作。
Workspace: 是抽象的桌面的所有屏,其中的每一屏是一个CellLayout。管理和控制桌面的显示,包括添加和删除页面,显示预览效果,处理shourtcut和widget图标的显示位置,侦听拖动事件,滚动事件,并作出相应的处理。预览模式是worksapce的一种特殊的视效。
AppsCustomizePagedView:是all app界面包括app和widget两个部分,其中PagedViewCellLayout和PagedViewGridLayout.java分别用来存放app和widget。
AppsCustomizeTabHost:内嵌在AppsCustomizeTabHost中的组件,在当点击AllApp按钮是,会跳转到AppsCustomizeTabHost中。
DragLayer:继承自FrameLayout,是整个Launcher的根容器。当快捷图标或者AppWidget被拖拽时,事件的处理就在DragLayer进行操作的;
DragController:是DragLayer的controller;
Hotseat:Hotseat也是FrameLayout的直接子类,代表主屏幕下方的dock栏,可以放置4个快捷图标和一个进入AllApps的按钮。可由ODM定制,其点击、拖拽等操作一般也由Workspace.java完成
LauncherAppWidgetHost:继承自AppWidgetHost,它的作用就是帮助Launcher管理和创建AppWidget,并且能够捕获长按事件,使得应用可以正常的删除、添加
AppWidget。通过调用mAppWidgetHost.startListening()方法,开启监听
AddAdapter:为setWallPaper提供adapter;
Alarm:提供定时操作,比如把快捷方式拖动到垃圾箱后让垃圾箱消失再回复到原有的桌面;
AllAppsList:保存所有的app信息;
AppWidgetResizeFrame:用来改变拖拽到桌面上的widget的大小;
BubbleTextView:是每个桌面上快捷方式的text;
Cling:是第一次使用android手机的帮助手指;
DeferredHandler:是配合LauncherModel.java来进行更新的操作;
DragScroller:用于左右划屏;
DragSource:被拖拽的源;
DropTarget:计算是否可以被放下;
Folder:打开文件夹用于显示的类;
FolderIcon:文件夹未打开显示在桌面上的图标;
FolderEditText:文件夹的名字;
FolderInfo:文件夹的信息类,同样继承自ItemInfo.java;
IconCache:icon缓存类,用于提高效率;
InstallShortcutReceiver:apk安装的receiveer类;
InstallWidgetReceiver:widget安装的receiveer类;
ItemInfo:launcher中所有信息的父类;
PagedView:实现翻页操作的抽象父类,有翻页效果的类都需要继承自它;
PendingAddItemInfo:是all app中所有widget的信息类;
SearchDropTargetBar:search bar;
SpringLoadedDragController:是把app从all app拖拽到桌面上的整个桌面显示的缩略图,方便用户查看;
Utilities:放置一些公共方法;
如发现本站有涉嫌抄袭侵权/违法违规等内容,请<举报!一经查实,本站将立刻删除。