由于工作的原因,对Android的桌面有了一些了解。之前一段时间对桌面的构成十分模糊,最近看代码该代码发现渐渐有了感觉,所以准备写一系列分析安卓桌面的文章。
市面上有很多桌面产品,比如91桌面,go桌面,小米桌面等等,虽说千差万别,但都完成了桌面的基本任务,比如说组织图标,拖动图标,滑动页面,显示小工具等等功能。桌面跟其他Android App很大的不同是,他只有一个Activity,但是这个Activity却十分复杂,用几个自定义View把Android的触摸事件的处理玩儿的眼花缭乱,没有长时间的折腾是很难熟悉的。
我分析的代码主要是Android 4.4 上的Launcher3,就是原生桌面(以后我会交替使用Launcher3和桌面这俩叫法,其实指的是一个东西)。他的代码在这里获取:
https://android.googlesource.com/platform/packages/apps/Launcher3/
git库的地址也在网页中也有显示了,可惜的是以上代码需要在源码中编译(下载整个Android源码,完整编译,然后再对桌面进行修改,单个编译)。不过我进行了简单的更改使得它可以在eclipse中编译通过,链接在这里:
https://github.com/fookwood/Launcher3
大致就是删除了两个文件,增删几行代码,你可以从历史提交记录中查看。好了,如果你从上面链接中下载了代码并且导入到了eclipse当中,不妨在自己的手机上运行下看看效果,对桌面有个感性认识。
算是给自己挖了一个大坑,不知道什么时候能够填满。主要有以下东西要填:
- Launcher代码结构
- Launcher的加载启动流程
- Launcher的布局构成
- 图标的拖拽流程
- 分屏的滑动流程
- 。。。
恩,就这样.
PS:后续的文章请点页面上方的“ANDROID”,^_^