第一、准备工作
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中了。不过工程会有很多红叉,接下来解决这个问题。
第二、导入工程所需要的包
首先需要编译好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工程以及没有错误了,也可以编译了。
第三、需要重命名项目
工程的包名,因为模拟器中的包名和程序的名称造成冲突。
1。导人eclipse中。在src/com.android.launcher上点击右键,"Refactor" -> "Rename...",名字可以自定义,选项选择(全选上)
2。点击"Preview>",进行预览(途中弹出警告的话,不用管,继续"Countinue"),这里要去掉一些不必要的修改,否则就会改乱了
3. 修改XML中自定义VIEW包名
备注:AndroidManiFest.xml中的android:sharedUserId="@string/sharedUserId"删除掉否则会启动失败
第四、修改eclipse的配置文件有eclipse.ini(我的Eclipse3.6.2)
eclipse.ini 如下
-startup plugins/org.eclipse.equinox.launcher_1.1.1.R36x_v20101122_1400.jar --launcher.library plugins/org.eclipse.equinox.launcher.gtk.linux.x86_1.1.2.R36x_v20101019_1345 -product org.eclipse.epp.package.jee.product --launcher.defaultAction openFile -showsplash org.eclipse.platform --launcher.XXMaxPermSize 512m --launcher.defaultAction openFile -vmargs -Dosgi.requiredJavaVersion=1.5 -XX:MaxPermSize=512m -Xms512m -Xmx1024m