首先需要下载Android的代码并且编译好,因为要用到一些编译完成的class.jar文件,然后讲packages/apps/Launcher2整个文件夹拷贝到
一个目录中,注意这个目录不能是Eclipse的工程目录,不知道为什么使用这个目录后不能创建Launcher2的工程,
可以先讲代码放到其他文件夹下,比如个人目录下,等创建完成后再移入workspace下,然后导入这里面的工程即可.
1.将Launcher2代码拷贝到一个目录中然后新建一个Android工程Launcher2,
选择从现有代码创建,工程路径指定为拷贝出来的Launcher2代码目录,然后点击Finish完成工程的创建.
这时候可以先删除掉这个工程,讲代码文件移入workspace,然后在eclipse中import这个工程,注意需要选择从现有代码导入.
这时候Launcher2工程已经导入到eclipse中了,不过这时候会有100多个错误.
2.添加Launcher2使用的包文件。
首先需要编译好android代码,编译完成后会生成一些包文件,
这里我们用到的有:(生成的包的路径为out/target/common/obj/JAVA_LIBRARIES)
1)framework_intermediates/classes.jar :这个主要是android的框架类
2)android-common_intermediates/classes.jar :这个包含com.android.common.Search这个类
3)core_intermediates/classes.jar :这个包包含dalvik.system.VMRuntime这个类
这些都是需要导入到工程里面的包,这个可以通过配置工程的Build Path来加入,
右键工程名称然后选择Build Path->Configure Build Path...->Libraries->Add Library->User Library->User Libraries...->New...
然后将上面3个依赖的包一个个的加入进来,分别命名为android_framework,android_common,android_core.
将3个包加入进来后,然后还需要将它们放到android2.3.3这个包的前面,可以在Build Path配置中选择Order and Export
为了避免与系统默认的包名冲突,所以需要进行修改。
1。在src/com.android.launcher上点击右键,"Refactor" -> "Rename...",名字可以自定义(我这里改成com.study.launcher),选项选择(全选上)
2。点击"Preview>",进行预览(途中弹出警告的话,不用管,继续"Countinue"),这里要去掉一些不必要的修改,否则就会改乱了
3。新出来的界面可能会有Android Package Rename 根节点,去掉它的子节点AndroidManiFest.xml前的勾选。然后OK,可能会弹出错误,直接Abort。
4。在gen/com.android.launcher上点击右键,"Refactor" -> "Rename...",名字可以自定义(我这里改成com.study.launcher),选项选择(全选上)
5。同上,这里要取消两个根节点:Manifest.java 和 R.java 前的勾选。同样OK下去。
***********************************************
做完这些就可以RUN运行了。
总结一下:主要是按照上面两个地址的方法,但有几个那两篇文章里没说到的地方需要注意,否则就出错了。
1。要导入的包有三个,不是其中一篇说的一个;
2。在导入包的时候,一定要选上System Library,两篇文章都没提到,但如果不选的话红叉也会消失,可编译时会提示一个错误Conversion to Dalvik format failed with error 1。用网上的方法全都不行,最后勾上那勾解决了。
3。重命名包名,其中一篇文章只说了重命名一个包名,另一篇文章说了要命名两个包名但没说怎么做,合并一下就好了。
2.重名包名
为了避免与系统默认的包名冲突,所以需要进行修改。
在src/com.android.launcher上点击右键,"Refactor" -> "Rename...",名字可以自定义(我这里改成com.study.launcher),选项如下图选择(全选上):
点击"Preview>",进行预览(途中弹出警告的话,不用管,继续"Countinue"),这里要去掉一些不必要的修改,否则就会改乱了。
进入到这么一个界面:
找到以下选项,去掉前面的钩子:
点击"OK",等待处理完毕...
ps:过程中可能会弹出这样一个错误提示,直接"Abort"就好:
*结束后可能会弹出这样的提示框:
点“Yes”。
最后:修改AndroidManifest.xml
去掉其中的"android:sharedUserId="android.uid.shared"":
自己写的launcher启动时报错如下:
[2011-03-03 19:47:46 - Launcher] Installation error: INSTALL_FAILED_CONFLICTING_PROVIDER
[2011-03-03 19:47:46 - Launcher] Please check logcat output for more details.
[2011-03-03 19:47:47 - Launcher] Launch canceled!
原因是有一个同名的launcher存在。
解决办法:
修改AndroidManifest.xml
<!-- The settings provider contains Home's data, like the workspace favorites -->
<provider
android:name="com.legends.launcher2.LauncherProvider"====》android:name="com.legends.launcher2.LauncherProvider“
android:authorities="com.legends.launcher2.settings""====》android:authorities="com.legends.launcher2.settings"
android:writePermission="com.unique.launcher.permission.WRITE_SETTINGS"
android:readPermission="com.unique.launcher.permission.READ_SETTINGS" />
</application>
</manifest>
重新运行即可