首先,需要准备一份谷歌Launcher源码。
具体方法参见:Windows7 下载android源码
下载到的代码是android4.2.2的,太新了。手机配置不够,因此我还是使用的4.0的Launcher。
下载后的源码是应该用make编译的,但由于Launcher比较特殊,它与framework层交互的内容不多。
我们没有必要为了一个小小的Launcher而下载整个源码,再进行单编。
我们完全可以在eclipse配置好一份完整可运行的Launcher代码,并在自己的真机上面调试。
但eclipse并不能直接导入下载好了的文件,因此我们需要新建一个工程,导入下载的文件。
为了不与系统的Launcher冲突,需要修改我们自己调试的这个Launcher的包名。
我将其修改为:com.android.harlanlauncher
这下悲剧了,资源文件狂刷错误,一大片红色。
显然,这是由于包名更换引发的,替换下文件中的包名,错误顿时少了一大半。
Manifest文件中的 <uses-permission android:name="android.permission.BIND_APPWIDGET" />属性,是系统app才具有的权限,注释掉。
java代码中报错主要是由于文件缺失:
android.graphics.TableMaskFilter;
com.android.internal.util.XmlUtils
android.animation.TimeAnimator;
android.support.v13.dreams.BasicDream;
这就需要导入需要的lib以及BasicDream.java这个文件。
导入进去,工程不报错了,只是有小黄色的警告。(好吧,其实我真想全改掉,但是因为是调试的项目,之后还会有问题,现在就忍忍吧)
在真机上跑,在主页按Home键效果图:
选择Harlan启动器,进入:
很熟悉的赶脚有木有!
这就是我们需要调试的自定义Launcher界面!
但是莫忘了,系统的 <uses-permission android:name="android.permission.BIND_APPWIDGET" />属性我们并不具备,因此当我们添加appwidget至桌面时候,程序会crash。
美中都会有点不足,但这无伤大雅。
如果有洁癖的话,可以adb push 进system/app中,这样可以正常使用了。
好了,开始研究Launcher吧~~
附件: