Android 4.4 Launcher3桌面源码分析

由于工作的原因,对Android的桌面有了一些了解。之前一段时间对桌面的构成十分模糊,最近看代码该代码发现渐渐有了感觉,所以准备写一系列分析安卓桌面的文章。

市面上有很多桌面产品,比如91桌面,go桌面,小米桌面等等,虽说千差万别,但都完成了桌面的基本任务,比如说组织图标,拖动图标,滑动页面,显示小工具等等功能。桌面跟其他Android App很大的不同是,他只有一个Activity,但是这个Activity却十分复杂,用几个自定义View把Android的触摸事件的处理玩儿的眼花缭乱,没有长时间的折腾是很难熟悉的。

我分析的代码主要是Android 4.4 上的Launcher3,就是原生桌面(以后我会交替使用Launcher3和桌面这俩叫法,其实指的是一个东西)。他的代码在这里获取:
https://android.googlesource.com/platform/packages/apps/Launcher3/

git库的地址也在网页中也有显示了,可惜的是以上代码需要在源码中编译(下载整个Android源码,完整编译,然后再对桌面进行修改,单个编译)。不过我进行了简单的更改使得它可以在Android Studio中编译通过,链接在这里:
https://github.com/fookwood/Launcher3

大致就是删除了两个文件,增删几行代码,你可以从历史提交记录中查看。好了,如果你从上面链接中下载了代码并且导入到了IDE当中,不妨在自己的手机上运行下看看效果,对桌面有个感性认识。

算是给自己挖了一个大坑,不知道什么时候能够填满。主要有以下东西要填:

  • Launcher代码结构
  • Launcher的加载启动流程
  • Launcher的布局构成
  • 图标的拖拽流程
  • 分屏的滑动流程
  • 。。。

恩,就这样.

PS:后续的文章请点页面上方的“ANDROID”,^_^

关于 “Android 4.4 Launcher3桌面源码分析” 的 5 个意见

  1. 博主,Launcher3 我把src,res还有Androidmainfest.xml 拷进去新建工程 可以运行,我想知道需要ndk编译吗?不然Android.mk 是干嘛的

发表评论

电子邮件地址不会被公开。