如何调试跟踪Android源代码

http://blog.csdn.net/xuxinyl/article/details/6900960

  Android平台代码很多,关系也很复杂,通常我们调试程序的时候是无法跟踪到Android framework code里的,如果能调试跟踪Android source code将给我们这些初学者带来很多便利,本文将给出一个调试跟踪Android source code 的方法。

  1.    首先,得到Android 源代码(可参考之前的文章--如何获取Android源代码并编译.doc),并且编译,得到output file,在(Android source)/out目录下,也可通过别的途径获取Android source code (以androidsrc.tgz为例) 和别人编译好的 output file(out.tgz)

  2.    解压缩这两个 tgz 文件,并把解压出来的out 目录放到 myandroid 目录下,如下图所示。

  3.    拷贝 myandroid/development/ide/eclipse/.classpath 到 myandroid/.classpath.

  4.    拷贝 myandroid/out/target/product/generic/*.img 到 {Android SDK}/tools/lib/images 并且覆盖源文件.

  5.    运行{Android SDK}/tools目录下的 emulator.exe.

  6.    运行{Android SDK}/tools目录下的 ddms.bat。你可以看到下面的窗口,里面会列出当前emulator里跑的进程:

  7.    启动 eclipse ,按照这个步骤 File->New->Java Project (不是 Android Project!) ->Create project from existing source 选到 myandroid 目录 .

  8.    在经过长时间等待之后,Android source code将被导入project,正常情况下应该没有error,但是会有很多warning,如果有error后面的debug将不会成功,原因可能是output file ,out.tgz在解压得过程中出错,重新copy out.tgz,或者完整拷贝 out/ 目录到本地目录下,即可解决。

  9.    选择想要调试的进程在 DDMS, 用 phone 进程为例,ddms一定要在eclipse之前启动,否则eclipse启动的时候也会启一个ddms,会造成冲突。

  10. 在eclipse里, Run->Debug Configuration->Remote Java Application->New, 设置 Connection port to 8700 (DDMS’s 默认端口,你可以改变它).

  11. 设置断点在source code,然后就可以像往常一样进行调试了。

 
网友评论:
1
网友: luowei
2010-01-26 15:57 | 回复
拷贝 myandroid/out/target/product/generic/*.img 到 {Android SDK}/tools/lib/images 并且覆盖源文件 .
这个{Android SDK} 指的是编译的sdk吧?(out/host/linux-x86/sdk/android-sdk_eng.root_linux-x86目录下)但是我并没用看到/tools/lib/ 下面有images目录?查看windos平台的sdk也没用这个目录 是怎么回事?
 
2 2010-01-26 17:17 | 回复
回复luowei:
可能你用的新版本,这样你可以到{Android SDK}/platforms/android-xx/images
根据你的版本放在不同的android-xx目录下。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值