在eclipse 中编译Launcher2的方法

来源:互联网 发布:网络热门小说下载 编辑:程序博客网 时间:2024/05/18 19:39
转自dclchj

  鉴于有朋友找资源不方便,我把这个项目需要的资源都上传了,需要的可以从这个地址下载http://download.csdn.net/detail/dclchj/3928496

 

  Android自带的Home应用程序Launcher2是比较重要也比较复杂的程序,开机后用户看到的第一个界面就是它。这里详细介绍将Android源码中的Launcher2工程导入Eclipse工程的方法。可以为学习与修改Launcher2工程打好基础。

  感谢前辈在网上分享的资料,使我知道怎么着手。不过这些资料有不完整的问题,导致我昨天跟着做时遇到一些问题从而卡住至今天才解决。

 

  下面是我的开发环境:

  操作系统:Windwos XP  编译器:Eclipse

        Android源码版本:2.3.4        Android SDK(ADK)版本:在编译器里装了两个,分别是4.0 和 2.3.3(这个项目使用2.3.3)

        JAVA  compiler compliance level 1.6  (这个从Project / Properties / Java Compiler 可以看到与修改)

 

  需要准备的资源:

  Android2.3.4编译好的源码一份(之所以要编译好,是因为后面需要用到编译出来的classes.jar文件)

        Launcher2工程文件夹。(就在上面的源码的路径 packages / apps 路径下)

 

  然后可以开始工作了,以下主要引用了两位前辈的博客内容,地址分别为:(建议参考这两篇文章看,其中一篇有图片很不错!)

  http://univasity.iteye.com/blog/937547 和http://blog.csdn.net/chenzhixin/article/details/6264209

        另有参考资料 Android 2.1 源码目录结构详解 自已百度

  如果只看其中一篇文章的话,会不成功,两篇都看了,仍会遇到问题。下面我写的是实践后成功的详细方法与总结。

 

***********************************************************

——————————这一步是添加工程—————————————

1。将源码中packages/apps/Launcher2整个文件夹拷贝到一个目录中,这个目录不能是Eclipse的工程目录比如wrokgroups。最好在D盘根目录新建一文件夹别带中文(习惯)

2。新建Android项目,选择"Create project from existing source",并指定项目的路径即步骤1创建的文件夹。SDK你要根据你下载的Project所支持的Android版本选择(这里2.3.3),然后“finish”。

3。删除项目,然后复制2中创建的文件夹到Eclipse工作目录中。

4。File / Import  / General (Existing Projects into Workspaces) / Browse 选择步骤3复制来的的工程。这时Launcher就导入到Eclipse中了。不过工程会有很多红叉,接下来解决这个问题。

——————————这一步是导入包文件———————————

5。此段为复制前辈内容: 

首先需要编译好android代码,编译完成后会生成一些包文件,复制下面三个文件到D盘根目录(其实可以任意选)

这里我们用到的有:(生成的包的路径为源码的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...   输入任意名字(注意,这里一定要先中 System Library),确认后再选Add JARs 选择三个classes.jar之间再确认。重复三次将三个classes.jar都导入进来。

将3个包加入进来后,然后还需要将它们放到android2.3.3这个包的前面,可以在Build Path配置中选择Order and Export  (注:选中3个新目录,然后UP就行了)

这时候就会发现Launcher2工程以及没有错误了,也可以编译了。

—————————这一步是重命名包名—————————————

6。此段为复制前辈:

为了避免与系统默认的包名冲突,所以需要进行修改。
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。重命名包名,其中一篇文章只说了重命名一个包名,另一篇文章说了要命名两个包名但没说怎么做,合并一下就好了。

 

经过上面的操作,eclipse可以成功编译Launcher2并在模拟器里跑了。

_______________________