本篇文章为大家展示了如何进行Eclipse Android源码工程调试,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
关于Eclipse Android源码内容的详解
1、ubuntu 下源码编译
***切换到root用户下进行操作
$ sudo -s
(1)下载jdk1.5 并安装(下载自解压版本并设置环境变量)
编辑/root/.bashrc 添加
#set java environment export JAVA_HOME=/work/jdk1.5.0_22 export JRE_HOME=JAVA_HOME/jre export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export SDK_HOME=/work/froyo/out/host/linux-x86/sdk/android-sdk_eng.root_linux-x86/tools export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH:$SDK_HOME:/work/froyo/out/host/linux-x86/bin export ANDROID_PRODUCT_OUT=/work/froyo/out/target/product/generic
(2)安装(apt-get install xxx)
git-core gnupg flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev
(3)下载源码(网上有详细说明)
(4)编译源码
$ export ANDROID_JAVA_HOME=$JAVA_HOME $ make
查看编译过程中是否有错误,一般情况不会有错误,如果有错误可能是某个依赖包没有安装,安装提示的依赖包后重新make
(5)生成sdk
$ make PRODUCT-sdk-sdk ###使用make sdk 会出现R文件不能自动生成的问题
编译完成后会在/work/froyo/out/host/linux-x86/sdk/目录生成sdk
(6)编译完成之后查看是否编译成功
$ . build/envsetup.sh $ emulator& //启动模拟器,如果能成功启动代表编译成功。
2、Android Eclipse 中进行调试
(1)拷贝development/ide/eclipse/.classpath到源代码根目录并修改.classpath
删除下面两行
<classpathentry kind="lib" path="out/target/common/obj/JAVA_LIBRARIES/google-common_intermediates/javalib.jar"/> <classpathentry kind="lib" path="out/target/common/obj/JAVA_LIBRARIES/gsf-client_intermediates/javalib.jar"/>
添加
<classpathentry kind="lib" path="/work/froyo/out/target/common/obj/JAVA_LIBRARIES/android-common_intermediates/javalib.jar"/>
(2)在eclipse中修改
(2.1)通过create project from existing source 导入froyo源代码
(2.2)展开packages/providers/CalendarProvider/src
(2.3)展开包: com.android.providers.calendar
(2.4)右键点击包com.android.providers.calendar
(2.5)选择 "new file"
(2.6)在对话框中选择点击 "Advanced >>" 按钮, 可以看到"Link to file in the file system" checkbox,
(2.7)勾选上 checkbox. 这时 "Browse…" 可用.
(2.8)点击 "Browse…" 按钮,选择EventLogTags.java (e.g.,out/target/common/obj/APPS/CalendarProvider_intermediates/src/src/com/android/providers/calendar/EventLogTags.java)
(2.9)点击OK
(2.10)点击 Finish (in "New File")
(3)同样的方式修改com.android.providers.contacts的问题
3、调试
在IDE(eclipse)中修改源代码后在shell中编译运行
源码自带编译工具
先在Eclipse Android 源码根目录执行 . build/envsetup.sh 再通过m/mm/mmm进行编译
- m: Makes from the top of the tree. - mm: Builds all of the modules in the current directory. - mmm: Builds all of the modules in the supplied directories.
$cd /path/to/android/root $. build/envsetup.sh $lunch 1 # 初始化模拟器等 $make/m/mm/mmm # $emulator& # you should see a GUI picture of a phone $ddms& #调试工具
(1)修改APK应用:在packages中的应用如果修改后都可以单独编译。先执行
$. build/envsetup.sh #初始化 $mmm packages/providers/ContactsProvider/ ##用mm/mmm来编译生成的.apk并不会打包到system.img中,需要我们手动通过make snod把system文件夹打包为system.img ##可以使用make snod将模块打包到system.img中,也可以使用 adb install *.apk安装
注:通过mmm packages/providers/ContactsProvider/ 编译后的apk在 out/target/product/generic/system/app
这时候通过 adb install out/target/product/generic/system/app/xxx.apk 安装你刚修改过的apk就可以在模拟器上看到你修改的效果了。
(2)修改framework:如果在Contacts.java中修改了,必须重新编译下framework。先执行
$ . build/envsetup.sh #初始化
#网上有的说要执行 make update-api,实际上直接make PRODUCT-sdk-sdk就可以将修改后的framework编译到sdk中。 #编译framework后,那些修改了的应用可以不用再单独编译了。4~6分钟
$ make PRODUCT-sdk-sdk #重新生成SDK 10~20分钟.
上述内容就是如何进行Eclipse Android源码工程调试,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/204681.html