用eclipse调试android源代码
来源:互联网 发布:网络监控施工方案范本 编辑:程序博客网 时间:2024/06/11 19:58
上一篇详细记录了下载Android及内核源代码,并编译、运行模拟器emulator。
接下来,就到了要调试源代码的阶段了。在网上找了很多文章,加上自己尝试,总算成功了,所以分享出来,以备后忘。
(主要参考:http://blog.csdn.net/thl789/article/details/8033282)
在上一篇里,我使用了虚拟机从零开始搭建一个Android源代码的编译环境,所以像jdk这一类的工具都已经装好了,现在需要安装eclipse,这是一个强大的IDE编程环境,我们就用它来调试Android的源代码。
Ubuntu(还记得吗,我用的是ubuntu10.04-LTS)的软件中心里,能够找到eclipse,但是不要适用软件中心来安装,因为那上面的不是最新版本。
我们可以在http://www.eclipse.org/downloads/ 这里下载Eclipse。网站上有很多版本,其实他们不过是附带的插件不同而已,而插件我们是可以根据自己的需要来安装的,所以这里我选择的是:Eclipse Classic 4.2.2 这个版本。下载后,解压缩,文件夹里有个eclipse文件,在图形界面下直接双击就可以直接运行了。
【搭建Android开发环境】
以下摘自《http://mobile.51cto.com/android-227548_1.htm》
(1)打开Eclipse, 在菜单栏上选择
help->Install New SoftWare 出现如下界面:
点击 Add按钮,出现如下界面
输入网址: https://dl-ssl.google.com/android/eclipse/ (如果出错,请将https改成http)
名称: Android (这里可以自定义)
点击OK,将出现如下界面
点击 Next按钮 ,出现如下界面:
点击Next按钮,出现如下界面:
选择 I accept the terms of the license agreements点击Next,进入安装插件界面
安装完成后,出现如下界面
点击Yes按钮,重启Eclipse
【导入源代码】
在Eclipse里面导入Android的源代码,网上有些文章介绍这个过程,不过很多适用的是”Create project from existing source“,但是在我们下载版本的eclipse里面,其实你找不到这个选项,不过没关系,用下面的方法来做:
打开Eclipse,选择菜单: file -> new -> java project ,在弹出的面板上,勾掉”Use default locationg“选项,然后点击browse按钮,选择android源代码所在的路径。选择后,project name应该都是自动填好的,当然你也可以改,然后直接点击最下面的”finsh“。
Eclipse需要一段时间来加载代码,代码导入之后,就可以在编辑界面下看到工程目录了。
导入之后,Eclipse可能会报一些错误,网上有人说需要修改这些错误后才能调试,但我实测后发现其实不改也行,因为本来也没打算用Eclipse来编译源代码。
【DDMS】
选择Eclipse菜单:window->open perspective->DDMS,会启动DDMS窗口。此时再同时启动emulator,会看到DDMS窗口显示出emulator的运行实例以及相应的进程。
在DDMS窗口中点击你想要调试的进程,这里我选择的是”system_process“,选中它,你会看到它后面的端口号多了一个/8700。
然后在Eclipse菜单中选择:run->debug configurations,在弹出的窗口中选择”Remote Java Application“,双击这个选项,会新建一个远程调试链接,弹出的窗口中只要修改Port(端口)为:8700(就是前面选中进程的端口号),然后点击下面的”Debug“。
这时候,你再回到DDMS窗口(DDMS窗口、DEBUG窗口、代码窗口的切换在Eclipse的右上角),应该能看到刚才选中的进程图标上多了一个”Bug“,表示正在调试中。
【开始调试】
这里以解锁屏幕为例(我是跟网上学的,Android源代码太大,我自己完全找不到头绪),解锁屏幕的时候,Android会调用源代码路径下的:/frameworks/base/policy/src/com/android/internal/policy/impl/LockScreen.java中的onGrabbedStateChange函数。
所以,我们在Eclipse工作区中,打开frameworks/base/policy/src工程下的com.android.internal.policy.impl下的LockScreen.java,找到其中的onGrabbedStateChange函数,并在里面下一个断点(双击代码最前面的位置就可以)。
现在,尝试在emulator里面划动锁屏条解锁屏幕,eclipse会提示你进程已被暂停,申请呼出调试窗口。
如果到了这一步,就基本成功了,但是我在断点拦截后,打开Eclipse的工作区,发现有”Source not found“的提示,并且下面有一个”Edit Source Lookup Path“的按钮,点击按钮,选择add->java project,然后添加源代码路径,完成之后,就能看到断点处的代码和相关信息了。
完成!
- 用eclipse调试android源代码
- Eclipse中跟踪调试Android源代码
- Eclipse中跟踪调试Android Framework源代码
- Eclipse中跟踪调试Android源代码 .
- 将android源代码导入eclipse中调试
- Eclipse中跟踪调试Android源代码
- Eclipse中跟踪调试Android Framework源代码
- Eclipse中跟踪调试Android Framework源代码
- Eclipse中跟踪调试Android系统源代码
- Eclipse中跟踪调试Android源代码 .
- Eclipse中跟踪调试Android Framework源代码
- Eclipse中跟踪调试Android Framework源代码
- Eclipse中跟踪调试Android源代码
- Eclipse中跟踪调试Android源代码
- Eclipse中跟踪调试Android Framework源代码
- Eclipse中跟踪调试Android源代码
- Eclipse中跟踪调试Android源代码
- Eclipse中跟踪调试Android(Framework)源代码
- How to Setup Public Key Use Globally on SecureCRT
- 用定时器进行PIE编码的另一种思考
- C语言中的常用的几种系统时间结构体类型
- wxWidgets,wxgtk,gtk有什么区别?
- mysql cluster集群安装全纪录
- 用eclipse调试android源代码
- hdu4534
- 生命不息,技术不止
- iPhone 一些小知识点总结
- HEVC测试序列下载地址
- 深度优先搜索
- 嵌入式学习
- Highcharts axja 获取json对象动态生成报表生成
- 使用 Java 对 Linux 下文件编码格式进行批量转换