Android 4.4 Launcher3桌面源码分析

于 2013年12月22日 发布在 android开发 跳到评论

由于工作的原因,对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”,^_^

本文共有 5条评论 | 沙发:文章评论

  1. aiguozhe说道:

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

  2. 关注说道:

    楼主你好,请问怎么设置默认的launcher3桌面呢,修改default_workspace.xml文件没有作用啊,4.4的源码

  3. 哈哈说道:

    android.mk 是源码编译各个组件和app时的配置文件

  4. android说道:

    你好,公司突然做launcher这方面的东西,可以问下你吗?

关注 留下回复

:wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)