由于需要研究Android4.0Launcher2的源码,必要的时候我们需要对代码进行调试,所以我们需要能够运行自己修改后的

Launcher。由于LauncherAndroid内置的应用,因此,可以通过搭建Android源码开发环境来进行调试和开发,这些工作只能在

LinuxMacOS上进行,对于大多数习惯了windowseclipse开发环境的程序员来说,能够在eclipse下进行开发和调试是最好不过的

了。这里将自己windows下用eclipse搭建Launcher开发环境的步骤分享给大家。我所使用的eclipse3.6.2ADT版本

20.0.2,在搭建的过程中可能与你的过程稍有出入,但基本流程是一样的。


1、创建工程,选择File--->New----->Project...---->AndroidProjectfromExistingCode---->Browse---->找到源码所在的路径-----

>Finish,工程就创建完成了。工程创建之后需要更改SDK的版本,右键工程,选择Properties---->Android--->Android4.0.3API版本

高于15都可以)--->OK。但这时,工程还是不能运行的,主要的原因是源码中调用了部分Android未公开的API。这时就需要编译

Android源码,因为要用到一些编译生成的class.jar文件,这样才能使用这部分API,如果不会源码的编译可以google一下,资料

很多的~~~~为方便网友,提供了launcher源码和jar文件的下载点击打开链接

2、添加需要使用的jar文件。源码编译完成之后,会在根目录中生成out文件夹。而我们需要的文件就位于

out/target/common/obj/JAVA_LIBRARIES目录中。需要添加的jar文件包括:

1framework_intermediates/classes.jar:这个主要是android的框架类

2android-common_intermediates/classes.jar:这个包含com.android.common.Search这个类

3core_intermediates/classes.jar:这个包包含dalvik.system.VMRuntime这个类

右键工程,选择BuildPath-->ConfigureBuildPath-->Libraries-->AddLibrary-->UserLibrary-->UserLibraries

-->New...-->输入名称(如,Debug_Launcher-->OK-->AddJAR...--->分别添加上面需要的几个JAR文件。导入完成之

后,在BuildPath中选择OrderandExport,将Debug_Launcher排到Android4.0.3(我选的SDK版本)前面


3、接下来,先打开AndroidManifest.xml如果没有以下代码,则添加:

<uses-sdk        android:minSdkVersion="13"        android:targetSdkVersion="15" />

minSdkVersion可以填大于13的数值,同样,targetSdkVersion至少是15。此时如果还有错误,一般是由于SDK版本造成的,更换为

高版本的SDK可以解决问题。


4、添加android-support-v13.jar

这个文件路径(你的SDK目录)\extras\android\compatibility\v13,如果没有,通过SDKManager下载即可。找到文件之后,

将其复制到工程根目录下的lib文件夹中(没有就自己建一个),然后选择BuildPath--->ConfigureBuildPath-->Add

JARs...--->选择android-support-v13.jar


5、此时如果还有错误的话,一般是由于SDK版本造成的,改为更高的版本,就可以了。这样下来,工程中应该就没有错误了。但

是这个时候还不能在模拟器上运行,需要修改包名。首先在包名上右键选择Refactor-->Rename-->输入修改后的包名。接着右

键工程,选择AndroidTools-->RenameAndroidPackage输入修改后的包名。查看AndroidManifest.xmlactivity

receiverprovider的路径是否正确,否则替换为正确的路径。全部替换了之后,工程中的红叉叉就没有了。如果还有错误,如果

布局文件有错误,多数为命名空间的错误,替换命名空间即可。如果是java文件中的错误,如果是SDK版本问题,则替换为高版本

即可,如果是导入R文件的问题,删除导入语句重新导入。这样修改下来应该就不会有错误了。


6、(可选)接下来修改LauncherProviderDATABASE_NAMEAUTHORITY分别为

//修改为自己的名字DATABASE_NAME = "launcherdebug.db"
AUTHORITY = "com.android.launcherdebug.settings"

接着修改provider,将修改以下代码:

<provider            ......            android:authorities="com.android.launcher.settings"            ...... />
改为:

<provider            ......//需要与LauncherProvider.AUTHORITY一致            android:authorities="com.csy.testlauncher.settings"            ....../>
接着修改 AndroidManifest.xml 中的自定义的 Permission ,修改包名前缀即可,如:

<permission        android:name="com.android.launcher.INSTALL_SHORTCUT"        ....../>
改为:

<permission        android:name="com.android.launcherdebug.INSTALL_SHORTCUT"        ...... />
至此,整个工程就可以顺利的编译运行了。

原帖地址:http://blog.csdn.net/chenshaoyang0011/article/details/7857634


eclipse导入android源码目录下Launcher2项目时,导入android自编译生成的几个jar包后还会提示找不到BasicDream类,如图,找不到对应的jar包支持,直接找的源码,修改下包名使用。
下载地址
http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.0.1_r1/android/support/v13/dreams/BasicDream.java

原帖地址:http://www.eoeandroid.com/forum.php?mod=viewthread&tid=265717


更多相关文章

  1. Flutter Android(安卓)端热修复(热更新)实践
  2. Android(安卓)Button及TextView动态变换颜色
  3. Android泡泡聊天界面的实现
  4. android的5种数据存储方式
  5. Android(安卓)Studio 更换debug.keystore问题
  6. 双击运行Android模拟器、创建SDcard、AVD、安装APK文件、上传文
  7. Android(安卓)Telephony启动过程源码分析
  8. Django服务器与App(Android)客户端的简单实现
  9. NPM 和webpack 的基础使用

随机推荐

  1. android利用spinner选择加减乘除进行运算
  2. Android对应的版本号
  3. Android(安卓)自带图标库 android.R.draw
  4. Layout inflation is the term used with
  5. android的文件操作
  6. Android关于获取用户是否允许某项权限
  7. RelativeLayout常用属性介绍
  8. android计算器简单版【安卓进化一】
  9. Android(安卓)compress Image
  10. android 代码片段整理