Debug with Android Emulator

摘要

研究Android, 最好的方法莫过于Step by Step地Debug。本文记录了下载编译x86 emulator及Debug Java Frame和C++库的过程。以WebKit为例,介绍Android的调试过程。

代码下载

从Google下载源码,本文以Android 4.2.2 r1学习WebKit为例。如果你也和我一样从Google下载Android源码有困难,可以从这里下载

下载eclipse: >>>>

下载ADT, 需要和Android SDK对应,查看一下Android 4.2.2 r1的SDK需要的ADT版本是20.0.0

$ cat sdk/files/plugin.prop 
# begin plugin.prop
plugin.version=20.0.0
http :// dl.google.com/android/ADT-21.0.0.zip

编译之前

先解决两个编译bug: http://blog.csdn.net/telnetchen/article/details/17596181

加上调试所需要的编译选项

在这里加上framework的调试信息

frameworks/base/core/java/android/webkit/DebugFlags.java

拷贝build/buildspec.mk.default到根目录并且改名为buildspec.mk,加入以下内容:

DEBUG_MODULE_libwebcore:=true
DEBUG_MODULE_libxml2:=true
DEBUG_MODULE_libchromium_net := true
TARGET_CUSTOM_DEBUG_CFLAGS:=­-O0 ADDITIONAL_BUILD_PROPERTIES += debug.db.uid=100000

查找所有模块:

确认以下的配置(false),以免出现文件过大的编译错误

external/webkit、Android.mk:
LOCAL_PRELINK_MODULE := false

编译

source build/envsetup.sh
lunch full_x86-eng 
make sdk -jx

生成的SDK目录:out/host/linux-x86/sdk/android-sdk_eng.${USER}_linux-x86

安装ADT及指定SDK

打开Eclipse, Help -> Install New Software ...

安装完ADT后,Eclipse要求重启,启动起来会要求SDK

创建一个简单的WebKit应用并开始调试

Java部分可以在Eclipse中逐步跟踪,对于C++部分,还需要用gdb

Run the following command on your computer: 
adb forward tcp:5039 tcp:5039
Run the following command on your running emulator: 
gdbserver 10.0.2.2:5039 ­­attach pid
Run the following commands in gdb:
set solib­-absolute­p-refix out/target/product/generic_x86/symbols
set solib­-search­-path out/target/product/generic_x86/symbols/system/lib
file out/target/product/generic_x86/symbols/system/app_process
在某个地方设置一个break point,就可以用你喜欢的gdb了.

对于Java部分如果还提示找不到某个文件,可以让它去framework目录下继续找。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值