android 4.0 launcher 源码下载地址
http://download.youkuaiyun.com/detail/bobzyh/5838423
所用class.jar包下载地址
http://download.youkuaiyun.com/detail/bobzyh/5837883
修改后的可编译源码下载地址
http://download.youkuaiyun.com/detail/bobzyh/5839373
在上篇博客 Android Launcher研究一(编译Android4.0 launcher 源码 上)
介绍了如何将Android 4.0的源码导入到 eclipse中。
这时候如果要在模拟器中启动,还是不会成功。我们还要更改包名,以便与系统的launcher区分。
1。展开src 在com.android.launcher2 右键 -> Refactor -> Rename...
在弹出的 Rename Package 中填写新的名字。下面四项全部选中,如下图
点击Preview -> OK.
2。展开gen, 更改gen下的 包名为com.my.newlauncher
步骤如上。
3。将src下所有文件中的
类似
import com.android.launcher2.XXX;
import com.android.launcher.R;
的字段删掉。
注意:要删除所有文件中与上类似的地方。不要因为没有报错就不删除。
但有个别文件需要更改保留
(1) AppsCustomizePagedView.java
将
import com.android.launcher2.DropTarget.DragObject;
改为
import com.my.newlauncher.DropTarget.DragObject;
(2)CellLayout.java
将
import com.android.launcher2.FolderIcon.FolderRingAnimator;
改为
import com.my.newlauncher.FolderIcon.FolderRingAnimator;
(3)DragSource.java
import com.android.launcher2.DropTarget.DragObject;
改为
import com.my.newlauncher.DropTarget.DragObject;
(4)Folder.java
import com.android.launcher2.FolderInfo.FolderListener;
改为
import com.my.newlauncher.FolderInfo.FolderListener;
(5)FolderIcon.java
import com.android.launcher2.DropTarget.DragObject;
import com.android.launcher2.FolderInfo.FolderListener;
改为
import com.my.newlauncher.DropTarget.DragObject;
import com.my.newlauncher.FolderInfo.FolderListener;
(6)Launcher.java
import com.android.launcher2.DropTarget.DragObject;
改为
import com.my.newlauncher.DropTarget.DragObject;
(7)LauncherAppWidgetHostView.java
import com.android.launcher2.Launcher.Padding;
改为
import com.my.newlauncher.Launcher.Padding;
(8)LauncherModel.java
import com.android.launcher2.InstallWidgetReceiver.WidgetMimeTypeHandlerData;
改为
import com.my.newlauncher.InstallWidgetReceiver.WidgetMimeTypeHandlerData;
(9)LauncherProvider.java
import com.android.launcher2.LauncherSettings.Favorites;
改为
import com.my.newlauncher.LauncherSettings.Favorites;
(10)Workspace.java
import com.android.launcher2.FolderIcon.FolderRingAnimator;
import com.android.launcher2.InstallWidgetReceiver.WidgetMimeTypeHandlerData;
改为
import com.my.newlauncher.FolderIcon.FolderRingAnimator;
import com.my.newlauncher.InstallWidgetReceiver.WidgetMimeTypeHandlerData;
4。将res 下的所有有错误文件中
形如
</com.android.launcher2.AppsCustomizeTabHost>
改为
</com.my.newlauncher.AppsCustomizeTabHost>
5。再将res 下所有报错文件中
形如
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
删掉
xmlns:android="http://schemas.android.com/apk/res/android"
上述五步完成之后如果还有错误就 Clear Lint Markers 一下。
6。运行程序
报错:
Installation error: INSTALL_FAILED_CONFLICTING_PROVIDER
有重名provider。
打开AndroidManifest.xml 将
android:authorities="com.android.launcher2.settings"
改为
android:authorities="com.my.newlauncher.settings"
顺便把
<original-package android:name="com.android.launcher2" />
改为
<original-package android:name="com.my.newlauncher" />
保存后
<uses-permission android:name="android.permission.BIND_APPWIDGET" />
这一行报错。 Clear Lint Markers 一下。忽略之。
运行程序。