android 网络调试 源代码,Android源代码调试环境搭建

我们在调试Android应用程序的时候,有时候遇到一些莫名其妙的问题,因此我们需要查看Android内部是如何调用的。我们都知道Android是一个伟大的开源项目,因此debug的时候肯定是支持源代码级别调试的。采用源代码调试,一方面有利于发现问题,另一方面有利于我们对Android系统的整个流程有一个比较清晰的认识,对我们以后开发app或者修改rom都是大有帮助的。好了废话不说,下面就介绍一下如何在eclipse中进行源代码调试吧!

显然要进行源代码调试,首先必须下载源代码。大家可以都google的官方网站http://source.android.com/source/index.html 去下载,因为Android源代码是用git进行管理的,同时google为了管理方便,用python写了一个repo脚本进行项目管理,因此你必须确保你的电脑上安装了git和python,至于具体如何下载,大家可以参考android网站上的说明,以后我也会专门介绍如何下载和编译整个Android源代码。

我下载的是Android4.2版本,整个源代码比较大,具体的目录结构如下:

89032144f938ed6e67dcc87a2a2447f3.png

源代码下载完成后,需要导入到eclipse,这样查看起来比较方便。在命令行下,cd到development/ide/eclipse这个目录下,会发现这个目录下有一个.classpath隐藏文件

14c2b1d945d6f5137211b00330332721.png

将.classpath文件拷贝到你的Android源代码的根目录下

eba7565e7cfc3ad0b6821de600b04043.png

打开eclipse,新建一个Java工程,Location选择你Android的源代码所在的目录

ef130888072287f22920010e2e0c6cc5.png

然后eclipse会加载Android的源代码,这个过程可能有点久,完成后点击finish,可以看到整个Android源代码都导入到eclipse中了,包括c,c++,java等所有的代码,这样查看起来就方便多了

bdc4f85202ca2dbaad8693271a65dcbb.png

Android源代码导入eclipse后,接下来就要进行关联调试了。首先新建一个Android的HelloWorld的工程,先在模拟器上运行一下确保没有问题,然后右击HelloWorld工程,选择Debug As  ->  Debug Configurations,选择左侧的Remote Java Application,右击选择New,可以自己设置一个端口,如我设置的是9000,然后点击Apply

de864b50a8e6280f7a9f8f29c5fa1cb7.png

在HelloWord的MainActivity设置一个断点

1f1e2b5e99b321e5b2a1e01342da36f4.png

然后右击Debug As -> Android Application,进入Android调试器

7481047dc83e49d6e24b8141fe640f29.png

你可以随便点击右边的ActivityThread中的一个方法,如performLaunchActivity,但是这个时候你会发现,提示源代码没有找到,你按照提示点击“Edit Source Lookup Path”,这时会弹出一个对话框,点击“Add”,选择Java Project,然后找到你之前的建的那个Java 源代码工程,这样就看到Android的源代码了,接下去的调试就和我们平常的调试一样了,如F5进入方法,F6 执行下一行等等。

因为我之前在super.onCreate方法上面设置了一个断点,按F5进入这个方法的内部,查看到Activity.java中的代码如下:

73cb2fa83807b085312189f1eab376b0.png

好了,整个Android源代码的调试就搭建完成了,这样就可以调试自己的代码,还有分析整个Android运行的流程了,这对于rom开发还是很有帮助的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/392935.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何使用HTTP压缩优化服务器

鉴于互联网上的宽带有限,网络管理人员任何旨在加速接入速度的努力都是有价值的。其中的一个方法就是通过HTTP压缩技术实现接入速度的加速,它通过减少在服务器和客户端之间传输的数据量,显著地提高网站的性能。数据压缩本身并不新鲜。但是&…

OpenGL研究3.0 多边形区域填充

OpenGL研究3.0 多边形区域填充 DionysosLai(906391500qq.com)2014-06-22 所谓多边形区域填充。就是将多边形内部区域,所有已相同色块填充。注意:这里讨论的多边形是简单多边形(即不考虑诸如五角星这样的相交多边形)。简单多边形&a…

ping、网络抖动与丢包

基本概念: ping: PING指一个数据包从用户的设备发送到测速点,然后再立即从测速点返回用户设备的来回时间。也就是俗称的“网络延迟” 一般以毫秒(ms)计算 一般PING在0~100ms都是正常的速度,不会有较为明显的卡顿。 测试…

[luoguP2801] 教主的魔法(二分 + 分块)

传送门 以为对于这类问题线段树都能解决,分块比线段树菜,结果培训完才知道线段树是一种特殊的分块方法,有的分块的题线段树不能做,看来分块还是有必要学的。 对于这个题,先分块,然后另开一个数组对于每个块…

鸿蒙系统适配开发,捕获科技拟建立鸿蒙开发组 为区块链钱包客户适配鸿蒙系统做筹备...

遭遇美国“实体清单”封杀的第85天,华为“鸿蒙”横空出世!8月9日下午,在华为全球开发者大会上,当余承东正式宣布鸿蒙系统(Harmony OS)发布的时候,全场掌声雷动!世界上第一个由中国企业自主研发的全平台微内…

关于VCP(Virtual Com Port)拓展的调试经历(一)

* The Overview 前日,接到老板部署的任务,将现有的基于STM32L151与L432的LoRaWAN程序中添加USB CDC(Communication Device Class)功能,并枚举为VCP(Virtual Com Port)用以替代以往的串口打印。很疑惑为什么以前架构代码的时候没有添加进去。。…

三星s6 android 8.0,再见Android 8.0,三星s6全系列系统都停止了,第一代国王已经倒下了吗?...

对于Android用户而言,最令人兴奋的事情是系统更新,因为该更新意味着更流畅的体验和更加用户友好的功能. 但是,旧的三星S6并不是那么幸运,并且不再错过Android 8.0.三星s6的全系列指的是三星s6,三星s6 edge,…

Exchange 2010无法安装问题解决方法

当你在活动目录(AD)森林中安装多台全局编录服务器(GC)之后,默认情况下你会发现在AD站点里面自动生成二条站点连接,从上面的截图可以看到目前在AD森林的Default-First-Site-Name(默认站点)里面有6台GC。 从上面的截图可以看到目前只有一台叫做Sh-Site1GC(全局编录服务器)是处于运…

一加6android9玩飞车掉,解锁新速度:一加6T深度评测

解锁新速度:一加6T深度评测2019-11-02 14:28:595点赞2收藏4评论创作立场声明:我们只谈智能硬件,向改变生活的智能硬件Say“嗨”!作为安卓旗舰机成员,一加这个品牌在玩机一类的同学手里可是大放光彩,各种刷机…

探讨跨域请求资源的几种方式

[转自:http://www.cnblogs.com/dojo-lzz/p/4265637.html] 什么是跨域JSONPproxy代理corsxdr由于浏览器同源策略,凡是发送请求url的协议、域名、端口三者之间任意一与当前页面地址不同即为跨域。具体可以查看下表(来源) JSONP 这种…

python处理excel文件(xls和xlsx)

一、xlrd和xlwt 使用之前需要需要先安装,windows上如果直接在cmd中运行python则需要先执行pip3 install xlrd和pip3 install xlwt,如果使用pycharm则需要在项目的解释器中安装这两个模块,File-Settings-Project:layout-Project Interpreter&a…

Mina、Netty、Twisted一起学(五):整合protobuf

protobuf是谷歌的Protocol Buffers的简称,用于结构化数据和字节码之间互相转换(序列化、反序列化),一般应用于网络传输,可支持多种编程语言。protobuf怎样使用这里不再介绍,本文主要介绍在MINA、Netty、Twi…

2021年南宁二中高考成绩查询,2021广西高考圆满结束,6月23日可查询成绩

6月8日下午,2021年高考统考圆满结束。今年广西参加高考统考考生人数40.05万余人,比2020年增加了2.2万人。我区预计6月23日可查询高考成绩,6月24日起可陆续填报志愿,我区的网上咨询会将于6月25日至27日举办。▲高考结束&#xff0c…

29 Python - 字符与编码

字符与编码 01 字符串本质 Python字符串相关概念 字符串 str 字节 bytes 字节数组 bytearray 电脑字符串存储机制 字符库:A、B每个字符有一个代码点如A是65 B为66,这种是方便人类读写的形式,但是最终需要存入计算机的CPU和内存&…

WPF:从WPF Diagram Designer Part 4学习分组、对齐、排序、序列化和常用功能

在前面三篇文章中我们介绍了如何给图形设计器增加移动、选择、改变大小及面板、缩略图、框线选择和工具箱和连接等功能,本篇是这个图形设计器系列的最后一篇,将和大家一起来学习一下如何给图形设计器增加分组、对齐、排序、序列化等功能。 WPF Diagram D…

ASP.NET Core跨域设置

项目中经常会遇到跨域问题,解决方法: 在appsettings.json 文件中添加json项 {"Logging": {"LogLevel": {"Default": "Warning"}},"AllowedHosts": "*","AppCores": "https…

CSS设计指南(读书笔记 - 背景)

本文转自william_xu 51CTO博客,原文链接:http://blog.51cto.com/williamx/1140006,如需转载请自行联系原作者

火车头如何才能设置发布的时候,如果是有html代码就直接的转换掉,互联网上笑话抽取及排重---火车头采集器的使用和MD5算法的应用...

10011311341 吕涛、10011311356李红目的:通过熟悉使用火车头采集器,在网络上采取3万条笑话并进行排重,以此来熟悉web文本挖掘的一些知识。过程:本次学习,主要分成两个部分。第一部分是笑话文本的采集,第二部…

win10上面安装win7的虚拟机怎么相互ping通

最近干了一些很蛋疼的事,这些都是自己踩过的坑,记录下来方便自己以后查阅 首先我的目的就是为了在自己的PC机上面部署一个SVN服务器,然后安装一个客户端,自己写的软件就可以定期入库,做好自己的版本控制,但…

win10用计算机名访问文件夹,win10系统提示你当前无权访问该文件夹的解决方法【图文教程】...

Win10系统下,我们在访问或更改某些系统文件夹时,有时会遇到系统提示“你当前无权访问该文件夹”的情况。那么,遇到这种情况的话,我们该怎么办呢?接下来,小编就向大家分享win10系统提示“你当前无权访问该文…