Andorid Launcher程序代码分析
来源:互联网 发布:sql insert into date 编辑:程序博客网 时间:2024/06/05 01:45
http://blog.csdn.net/fly123456/article/details/5935589
Launcher是Android系统的桌面系统,是比较重要也比较复杂的程序,这里对其代码做一个分析,希望起到抛砖引玉的作用。
1. Launcher有什么? live folder , widget , shortcut , wallpaper,见onActivityResult
2. UI分成3部分:workspace, slibingdrawer, deletezone
3. Menu: 见onCreateOptionsMenuin launcher.java
4. launcher类是个activity,遵循activity的生命周期。
5. 资源文件比较多,这里只关注Layout相关的文件
代码分析的主线:
1. 了解类
2. 了解类的关系
Launcher工程中的类:
AddAdapter: 维护了live fold , widget , shortcut , wallpaper 4个ListItem , 长按桌面会显示该列表
AllAppsGridView:显示APP的网格
ApplicationInfo:一个可启动的应用
ApplicationsAdapter:gridview的adapter
BubbleTextView:一个定制了的textview
CellLayout: 屏幕网格化
DeleteZone: UI的一部分
DragController,dragscroller, dragsource, droptarget: 支持拖拽操作
DragLayer:内部支持拖拽的viewgroup
FastBitmapDrawable:工具
Folder:Icons的集合
FolderIcon:出现在workspace的icon 代表了一个folder
FolderInfo: ItemInfo子类
HandleView:一个imageview。
InstallShortcutReceiver,UninstallShortcutReceiver:一个broadcastrecier
ItemInfo:代表Launcher中一个Item(例如folder)
Launcher: Launcher程序的主窗口
LauncherApplication:在VM中设置参数
LauncherAppWidgetHost,LauncherAppWidgetHostView,:Widget相关
LauncherModel: MVC中的M
LauncherProvider:一个contentprovider,为Launcher存储信息
LauncherSettings:设置相关的工具
LiveFolder,LiveFolderAdapter,LiveFolderIcon,LiveFolderInfo: livefolder相关
Search: 搜索
UserFolder,UserFolderInfo:文件夹包含applications,shortcuts
Utilities:小工具
WallpaperChooser:选择wallpaper的activity
Workspace:屏幕上的一块区域
widget : 代表启动的widget实例,例如搜索
Launcher中类的关系,见下图(由于篇幅有限,不能把所有关系一一画出)。
总结
1) Launcher中实现了MVC模式(M:launchermode , V:draglayer ,C: launcher),以此为主线,可以得到Launcher对各个组件管理的细节(如drag的实现)。
2) 如果开始就深入各个实现细节则会发现千头万绪,很难有个清醒的方向。
- Andorid Launcher程序代码分析
- Andorid Launcher程序代码分析
- Andorid Launcher程序代码分析
- Andorid Launcher程序代码分析
- Andorid Launcher程序代码分析
- Andorid Launcher程序代码分析
- Andorid Launcher程序代码分析
- Andorid Launcher程序代码分析
- Andorid Launcher程序代码分析
- launcher 分析
- launcher 分析
- launcher 分析
- 分析netcat程序代码
- C语言程序代码分析
- 分析netcat程序代码
- C程序代码分析
- 2.用户程序代码分析
- cocos2D 程序代码分析 3
- 如何减小与“大牛”的差距
- socket
- CEdit
- JavaScript开发工具:Closure Tools
- AS3 AsDoc 介绍、使用
- Andorid Launcher程序代码分析
- 代码生成器系列:概述
- css样式基础学习
- 关于引用与const
- 搜狐测试代码
- Erlang动态编译热替换
- javascript中parseInt函数
- handler 文件上传
- 在3ds max中,用opacity map制作真实的叶子