由于需要研究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. 如何在 iOS、Android、macOS、Windows 之间快速文件互传?
  2. Android资源文件夹及资源文件的详细介绍
  3. Android 切换系统语言源码分析
  4. Android Layout布局文件里的android:layout_height等属性为什么.

随机推荐

  1. android textview 文字均匀分布实现 利用
  2. Android关于触摸事件跟点击事件两个方法
  3. android UI定制的一些资料
  4. TL-android通过USB使用真机调试程序
  5. Android的animation
  6. Android(安卓)call requires API level解
  7. android aidl接口初步了解
  8. Android FileProvider
  9. Android模仿Buttonbar
  10. Android文件上传