最近在研究Launcher的源码,需要了解主要的作用,先找个现成的参考下,后续有必要再在此基础上完善。
http://blog.csdn.net/boyupeng/article/details/7542856
AddAdapter.java:为setWallPaper提供adapter;
Alarm.java:提供定时操作,比如把快捷方式拖动到垃圾箱后让垃圾箱消失再回复到原有的桌面;AllAppsList.java:保存所有的app信息;
AllAppsView.java:对app的视图进行控制;
AppsCustomizePagedView.java:是all app界面包括app和widget两个部分,其中PagedViewCellLayout.java和PagedViewGridLayout.java分别用来存放app和widget;
AppsCustomizeTabHost.java:是all app的tabhost;
AppWidgetResizeFrame.java:用来改变拖拽到桌面上的widget的大小;
BubbleTextView.java:是每个桌面上快捷方式的text;
Workspace.java:是抽象的桌面的所有屏,其中的每一屏是一个CellLayout.java,而CellLayoutChildren.java是CellLayout.java的成员,它具体用于存放每个apk的快捷方式;
Cling.java:是第一次使用android手机的帮助手指;
DeferredHandler.java:是配合LauncherModel.java来进行更新的操作;
DragLayer.java:是launcher.xml的父控件,用于捕捉拖拽、点击等事件;
DragController.java:是DragLayer的controller;
DragScroller.java:用于左右划屏;
DragSource.java:被拖拽的源;
DropTarget.java:计算是否可以被放下;
Folder.java:打开文件夹用于显示的类;
FolderIcon.java:文件夹未打开显示在桌面上的图标;
FolderEditText.java:文件夹的名字;
FolderInfo.java:文件夹的信息类,同样继承自ItemInfo.java;
Hotseat.java:桌面下方的一排快捷键,可由ODM定制,其点击、拖拽等操作一般也由Workspace.java完成;
IconCache.java:icon缓存类,用于提高效率;
InstallShortcutReceiver.java:apk安装的receiveer类;
InstallWidgetReceiver.java:widget安装的receiveer类;
ItemInfo.java:launcher中所有信息的父类;
Launcher.java:launcher的controller;
LauncherModel.java:launcher的model;
LauncherApplication.java:launcher的进程类,只要进程不被杀死,其中的对象就可以使用;
LauncherAppWidgetHost.java:用来管理和创建桌面上的widiget(LauncherAppWidgetHostView.java);
LauncherProvider.java:继续自ContentProvider,提供数据库;
PagedView.java:实现翻页操作的抽象父类,有翻页效果的类都需要继承自它;
PendingAddItemInfo.java:是all app中所有widget的信息类;
SearchDropTargetBar.java:search bar;
SpringLoadedDragController.java:是把app从all app拖拽到桌面上的整个桌面显示的缩略图,方便用户查看;
Utilities.java:放置一些公共方法;
WallpaperChooser.java、WallpaperChooserDialogFragment.java:壁纸相关的操作类;