Eclipse中跟踪调试Android源代码

Eclipse跟踪调试Android源代码 立即下载

田海立@优快云

2012-9-29

 

本文讲解如何在Eclipse中导入Android源代码(包括Framework和Application的代码),然后通过模拟器或真机跟踪/调试Android的Java代码,区别于一般基于Android SDK的纯应用开发,这里可以跟踪/调试Framework中的代码。

 

 

一、准备工作

 

确保机器上已经安装并配置下列软件环境:JDK/ Eclipse / Android SDK / ADT

即,机器上已经安装了Eclipse下Android应用开发所需的环境。如果还未配置,移步《搭建Windows下Android应用开发环境——Eclipse/Android/ADT》。

 

另外,为了跟踪调试Android源码,你还需要有Android源码,并有源码的编译环境,可以是:

  •  虚拟机环境 虚拟机中安装Linux,Linux下编译Android源码。此环境下,如果要在宿主机的Eclipse中调试,还需要把Android的源码路径共享出来,宿主机可访问到;
  •  有单独的可编译Android的网络环境 在你的客户端的机器上访问服务器共享出来的Android的源码路径;
  •  Linux环境下直接通过Eclipse跟踪调试本机上的Android源码。

注意:不管哪种工作方式,Android源码要都是已经编译过的,且编译时采用的是Eng模式(vs User mode)。编译Android Platform和Kernel的过程,可参考《Ubuntu10.10下编译Android2.2平台》及《Ubuntu10.10下编译Android2.2内核》。

 

 

二、基本设置

 

准备工作完毕之后,现在做一些基本的设置。

 

1. 把Android源码路径<Android_ROOT>下的development\ide\eclipse中的.classpath文件复制到<Android_ROOT>下;

2. 修改Eclipse的设置

修改eclipse.ini文件,更改下列内容:

[plain]  view plain  copy
  1. -Xms40m  
  2. -Xmx384m  

改为:

[java]  view plain  copy
  1. -Xms128m  
  2. -Xmx512m  

这里增大最小Java堆大小到128MB,增大最大Java堆大小到512MB。

 

 

三、Eclipse中创建工程

 

1. File > New > Java Project

New Java Project for Android

2. 输入项目名

3. 取消Use default location,并在Location中输入或选择Android源码路径<Android_ROOT>

4. 选择Next > Finish。会有一个漫长的等待过程

新建的工程可能会有错误,根据错误提示,加入或者删除项目中配置的程序包。

 

 

四、调试环境配置

 

1. 右击刚刚在#3中创建的项目;

2. 选择:Debug As > Debug Configurations…;

3. 右击“Remote Java Application”,选择New。或者直接双击“Remote Java Application”创建一个新的Remote Application。

Debug Configurations for Remote Application

4. 填入Name;Project选择刚刚创建的项目Android2.3.7;端口填写8700(不一定是8700,到DDMS Perspective下的Device View中看所需的端口号)。

5. Apply保存,然后退出。

 

 

五、调试

 

可以通过模拟器或者真机调试。

无论模拟器还是真机,都要:

  •  先启动机器(模拟器启动,或真机打开,并通过USB与PC正常连接),也就是要在DDMS Perspective的Devices视图中看到有机器连接;
  •  确保运行中的代码与你要调试的代码是一样的。

 

假如,我们想要跟踪锁屏解锁的调用情况。

我们知道解锁的实现是在LockScreen.java的onGrabbedStateChange()函数,运行在system_process进程中。

那么,

1.        在onGrabbedStateChange()中要调试的地方设置断点;

2.        在Device View中,选中system_process,并点击小爬虫图标;

3.        用Section#4创建的Debug配置,Debug;

4.        在模拟器或真机上,执行到解锁操作时,代码就会停在断点处;

Eclipse Debug Android Source Breakpoint

这样你就可以,

  •  把鼠标放在某个变量上,看它的值。也可以Eclipse中的各种调试手段调试你的代码。
  •  通过Step Into / Step Over / Resume / Suspend / Terminate等在Debug View中控制程序的执行。

 

 

总结


通过本文可以:

  •  本文讲解是基于Windows环境的,但是不仅适用于Windows环境,同样适用于Mac OS和Linux系统,只是一些路径和使用方式有差别;
  • 可以跟踪/调试所有Android中Java的源码(无论Framework的代码,还是App中的代码),并不能Debug Framework中的c/c++ code;
  • 为了使整个项目在Eclipse中都能编译过,.classpath中也包含了out/里编译生成的内容,所以必须保证Android源码是已经编译过的。

  •  跟踪/调试的前提是要在所要调试代码处设置断点,并知道该处代码执行在哪个进程中。


转自:http://blog.youkuaiyun.com/thl789/article/details/8033282


从零到一:用CubeMX和485模块快速上手多摩川绝对式编码器(附清零操作详解) 本文详细介绍了如何使用STM32CubeMX和485模块快速上手多摩川绝对式编码器,包括硬件连接、STM32配置、协议解析及清零操作。通过具体的代码示例和调试技巧,帮助开发者高效实现编码器数据读取和清零功能,特别适合STM32单片机开发者参考。 阅读详情

相关推荐

DSP配置I2C通讯(非IO口软件模拟时序)

dsp即数字信号处理器,是一种广泛应用的嵌入式处理器,主要应用是实时快速地实现各种数字信号处理算法,目前,国际主要的dsp供应商是ti公司,其tms32系列产品占据了dsp市场近一半的份额,本文以TMS320F28377D为例,使用ti公司dsp开发工具ccs10.1配置i2c模块。 写这篇文章的缘由,因为市面上很多DSP其实内部是具有硬件I2C接口的,但由于网络上大部分资料和例程都是利用IO口模拟I2C时序进而实现I2C通讯的。给很多想学习硬件I2C通讯的小伙伴带来了困难。 下面先介绍一下配置步骤 1.E

weixin_44387442的博客 5544

安卓追踪一个方法的调用链 #在linux里用grep来查询一个方法的调用 #一些常用命令

安卓追踪一个方法的调用链

qq_33667332的博客 664

用友U8 API 二次开发:WebService封装7个核心DLL引用与U8Login登录避坑

本文详细介绍了用友U8 API二次开发中的WebService封装与U8Login登录优化实践。通过7个核心DLL的正确引用、U8Login登录机制的深度解析及IIS环境下的特殊处理方案,为开发者提供了一套高可用性的通用解决方案,助力企业实现ERP系统的高效集成与数字化转型。

weixin_42524171的博客 505

android 用eclipse调试framework java层或者应用层代码

下面的方法,调试中无法查看变量值,推算是由于代码不完整,并且包含错误,所以下面的方法只针对流程调试。变量调试请按下面方法导入完整的编译好的项目。 1.首先保证你手机版本是eng版本,这样你的eclipse DDMS插件才会看到很多进程,类似于下图: 2.其次要有你当前手机版本的framework层或者app层源码,并且保持一致,否则会出现代码错位。 3.直接导

cool_ping的专栏 3502

告别WSL!用AMD ROCm7在Windows上跑ComfyUI,我的幻x2025 AI Max+ 395体验与性能调优心得

本文详细介绍了在搭载AMD Ryzen AI Max+ 395处理器的幻x2025笔记本上,如何通过ROCm7在Windows原生环境下高效运行ComfyUI,并分享了一系列性能调优技巧和实战经验,帮助开发者摆脱WSL束缚,提升AI创作效率。

weixin_29102619的博客 1115

【创作赢红包】Gurobi学术版证书更新与Python环境配置全攻略

本文详细解析了Gurobi学术版证书过期后的完整更新流程与Python环境配置方法。从彻底清理旧版残留、手把手注册获取新许可证,到软件安装、证书激活,最后重点讲解如何将gurobipy接口正确配置到Python的site-packages目录,并提供了常见问题排查方案,帮助用户高效解决证书与配置难题。

efc1234567的博客 612

R cannot be resolved - Android error

今天再次遇到这个问题,纠结了十多分钟。哦,原来Marko提到过,解决了之后才又重新看到。上次没做记录,补上!还有很多不同的原因造成这同一个问题,也有不同的解决方法,自己也遇到过好几种了。浏览了外国网站的一些回答,最后是官方的解释,不解释(翻译)。

aishiyi的专栏 1063

AI漫剧制作全流程零基础实操指南:从剧本到剪辑

AI漫剧是一种利用AI工具将剧本、分镜、出图、配音、剪辑整合为流水线的短视频内容形式。其技术原理基于文生图、图生图与文本转语音模型的组合,核心挑战在于角色一致性控制与分镜批量出图。这项技术大幅降低了视频制作门槛,使个人创作者无需演员和设备即可产出剧情向短内容,广泛应用于短视频平台的情景剧、玄幻、甜宠等题材。本文给出了一套零基础可照做的全流程实操方案,覆盖剧本提示词、分镜表、出图选型、配音合成与剪辑模板,帮助你快速跑通AI漫剧制作链路。

weixin_29048309的博客 524

干货:阅读跟踪 Java 源码的几个小技巧!

今天跟大家分享一下我平时阅读源码的几个小技巧,对于阅读Java中间件如Spring、Dubbo等框架源码的同学有一定帮助。本文基于Eclipse IDE,我们每天都使用的IDE其实提供了很多强大的功能,掌握它们,往往能够事半功倍。1、Quick Type Hierarchy 快速查看类继承体系。快捷键:Ctrl + T查看类很多人可能都知道,可源码阅读的时候更多用来查看方法体...

weixin_34198762的博客 186

详解各类以太网标准10BASE-T/100BASE-T4/100BASE-FX/1000BASE-X等

以太网是现实世界中最普遍的一种计算机网络。以太网有两类:第一类是经典以太网,第二类是交换式以太网,使用了一种称为交换机的设备连接不同的计算机。经典以太网是以太网的原始形式,运行速度从3-10 Mbps不等;而交换式以太网正是广泛应用的以太网,可运行在100Mbps、1000Mbps和10000Mbps高速率,分别以快速以太网、千兆以太网和万兆以太网的形式呈现

不积跬步,无以至千里! 5万+

13、控制依赖与切片的新基础及递归While程序的摘要

本文探讨了控制依赖和程序切片的新研究进展,并提出了一种用于递归While程序的广义过程摘要概念和验证框架。文章介绍了控制依赖的新定义及其优势,程序切片的相关工作,以及递归While程序的过程摘要在完全正确性和终止性证明中的应用。通过阶乘和插入排序程序的示例分析,展示了过程摘要的有效性。未来的研究将聚焦于并发程序的依赖计算、依赖关系的语义连接以及时间属性的保留。

kotlin6android的博客 85

Eclipse中跟踪调试Android Framework源代码

FROM: http://blog.youkuaiyun.com/thl789/article/details/8033282 本文讲解如何在Eclipse中导入Android源代码(包括Framework和Application的代码),然后通过模拟器或真机跟踪/调试Android的Java代码,区别于一般基于Android SDK的纯应用开发,这里可以跟踪/调试Framework中

·没有风雨躲得过,没有坎坷不必走· 2万+

MicroCap声学仿真介绍(六)-入耳式耳机仿真

从上图可以看出,后腔开了泄声孔后,振膜的最大位移从4.8um提升到了10um,振膜位移增加了一倍。在实际应用中,一般耳机的前腔和后腔都需要开泄声孔,开孔的大小和调音网布的阻尼需要根据客户的要求以及仿真的结果进行权衡选择。接着在主界面放置电阻、电感、电容,电阻值为Rms,电感值为Mms,电容值为Cms,如下图。假设后腔泄声孔的直径为1.2mm,宽度为0.3mm,对应调音网的阻抗为5.5e8欧姆。假设前腔泄声孔的直径为1.2mm,宽度为0.3mm,对应调音网的阻抗为5.5e8欧姆。

山无忧的博客 1800

Eclipse中跟踪调试Android源代码 .

Eclipse中跟踪调试Android源代码 分类: Android 2012-09-29 20:57 467人阅读 评论(2) 收藏 举报 目录(?)[+] 一、准备工作二、基本设置三、Eclipse中创建工程四、调试环境配置五、调试总结 田海立@优快云 2012-9-29   本文讲解如何在Eclipse中导入Android源代码(

YUZHIBOYI的专栏 1509

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Eclipse中跟踪调试Android系统源代码

本文讲解如何在Eclipse中导入Android源代码(包括Framework和Application的代码),然后通过模拟器或真机跟踪/调试Android的Java代码,区别于一般基于Android SDK的纯应用开发,这里可以跟踪/调试Framework中的代码。 一、准备工作 确保机器上已经安装并配置下列软件环境:JDK/ Eclipse / Androi

zhou8572的专栏 824

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Eclipse中跟踪调试Android(Framework)源代码

原文地址:http://blog.youkuaiyun.com/thl789/article/details/8033282 本文讲解如何在Eclipse中导入Android源代码(包括Framework和Application的代码),然后通过模拟器或真机跟踪/调试Android的Java代码,区别于一般基于Android SDK的纯应用开发,这里可以跟踪/调试Framework中的代码。

pinghegood的成长之路,奋斗阶段 754

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

上一篇: Android之NDK开发
下一篇: 如何使用Android Studio开发/调试Android源码
SpeedyCoder
博客等级 码龄14年 415粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值