在android源码中调试系统浏览器代码
深入了解android系统或某个项目,掌握在android系统源码上调试是非常必要的,项目团队中的每个成员都应该掌握此方法。本篇文档记录在android2.2系统源码中以浏览器调试为示例的一般步骤方法。
官方使用eclipse调试android源码文档:http://source.android.com/source/using-eclipse.html
前期准备工作
-
首先我们需要完成android源码的 编译,参考 编译 构建android 源码
-
导入 android 源码 到 eclipse 参考 导入android 源码到eclipse
调试浏览器源码
编译浏览器源码
每次修改过浏览器源码需要按以下步骤编译浏览器
cd android . build/envsetup.sh mmm packages/apps/Browser/
打包浏览器模块到系统映像 (system.img)
刚才的步骤并不会把浏览器软件包安装到系统映像,我们需要运行下面的命令把刚才编译的浏览器软件包安装到系统映像
make snod
eclipse 调试设置
通过下面几个步骤设置调试
-
选择菜单 Run→ Debug Configurations
-
选择 Remote java Application 双击
-
设置调试参数,命名调试为 “android_debug” 重要的是设置调试 主机/端口 host:localhost port : 8700
1. 启动模拟器(这里的模拟器不是sdk中的模拟器,而是我们通过源码构建生成的模拟器). 运行浏览器程序.
~/android$ emulator
2. 切换eclipse 到 ddms,这时候你应该能够看到 一些已经启动的进程,选择你想调试的进程(com.androd.browser)
3. 在调试菜单点击刚才设定的调试 “android_debug”
4. 这时候在刚才选择的调试进程旁边会出现 一个调试的标记(绿色虫子),我们就可以像往常一样设置断点进行调试了.
调试可能遇到的问题
1. 在运行“Debug Configations”之前,必须先要在DDMS中选中你要调试的线程,然后再debug调试即可,当debug的线程前有一个绿色的小虫子的时候说明已经可以进行debug调试了
2. 怎么打开编译源码后生成的模拟器,而不是sdk中的模拟器? 一般情况下都会设置sdk的android-sdk-linux_86/tools目录作为全局变量,那么在android的源码目录中直接使用emulator命令打开的肯定就是sdk中的模拟器,编译源码后生成的模拟器在 /usr/src/android/out/host/linux-x86/bin存放,打开这个模拟器就ok了