《Android框架揭秘》——2.5节应用程序Framework源码级别调试

article/2025/11/10 11:23:51

本节书摘来自异步社区《Android框架揭秘》一书中的第2章,第2.5节应用程序Framework源码级别调试,作者 金泰延 , 宋亨周 , 朴知勋 , 李白 , 林起永,更多章节内容可以访问云栖社区“异步社区”公众号查看

2.5 应用程序Framework源码级别调试
Android框架揭秘
Android平台由采用C/C++开发的Linux驱动、本地库、应用程序Framework(采用Java开发)以及应用程序四部分组成。在开发Android平台代码时,要经常调试编好的程序。下面以Java代码为例,讲解如何进行应用程序Framework源码级别的调试。

2.5.1 加载应用程序Framework源
在调试系统源码之前,首先要把系统源码调入Eclipse中。但在Android平台目录中存在数量庞大的Framework源码,若想将它们全部调入到Eclipse中,需要花费大量功夫。值得庆幸的是在Android中包含Eclipse设置文件,利用它可以把Framework的所有源码路径保存下来。下面列出了操作步骤,依据这些步骤,即可把Framework源码调入Eclipse之中。

(1)如2.2节所述,先搭建好Android编译环境,下载Android平台源代码,再使用make命令,编译Android系统。

(2)再把Android提供的.classpath文件复制到Android平台源码所在的最上层目录中。


0e38678a804248ddfc614eb40a237dc3e842cd71

(3)运行Eclipse,在菜单栏,依次单击File-New-Java Project,如图2-21所示。在弹出的New Java Project窗口中,输入工程名称后,指定Location为Android源码所在的目录(.classpath文件复制的位置),而后单击Finish按钮。

(4)查看Eclipse左侧的Package Explorer窗口,可以看到Android Framework源码被导入进来,如图2-22所示。


c03f7288df88686d8e03ca0df61080a0a6625909


261da28663603729193e1c71f0d888667b9a8510

(6)在Debug Configurations窗口左侧列表中,选择Remote Java Application,单击鼠标右键,在弹出的菜单中,选择New,在右侧窗框内进行相应设置后,单击Apply按钮,应用更改项目,如图2-24所示。


c2e427bc223f22dca6491d278a08c8743916f72a

2.5.2 调试HelloWorld Framework(源码级)
调试Android应用程序Framework的准备工作完成后,接下来开始调试HelloWorld程序,跟随与应用程序相关的Framework源代码,查看变量的值。

(1)首先在HelloWorld应用程序起始的地方,设置一个断点,而后在HelloWorld工程上单击鼠标右键,在弹出的菜单中,依次选择Debug As>Android Application,打开调试窗口,程序运行到断点的位置停止,并把控制权交给Eclipse的Java调试器,如图2-25所示。

(2)为了在源码级别上调试应用程序Framework,在左上Debug窗口中,选择ActivityThread类,出现源码无法找到的错误,如图 2-26 所示。此时在ActivityThread.perform LaunchActivity上,单击鼠标右键,在弹出的菜单中,选择Edit Source Lookup菜单,弹出Edit Source Lookup Path窗口。


c1418df4182d173618870878eebb5a210e86e1df


87336dff7b4b495657639858200d9fb2ac6a7e1c


d302647ba059075cbf254e8b8a3371b5ef312956

http://chatgpt.dhexx.cn/article/8Q7fWsjx.shtml

相关文章

《Android框架揭秘》读书笔记--在Java中调用C库函数

简介 以下试验在Ubuntu16.04 x86,jdk安装:sudo apt-get install openjdk-9-jdk-headless,原书介绍的是在win系统实现。 步骤 第一步:编写Java代码第二步:编译Java代码第三步:生成C语言头文件第四步&#…

Android 框架揭秘 --读书笔记

Android 框架揭秘 Insied the Android Framework 转载于:https://www.cnblogs.com/drduan/p/4788554.html

android框架揭秘!Android开发者跳槽指南一线互联网公司面经总结

前言概要: 1,进大公司还是小公司,真的有的选? 2,校招的潜规则 3,校招想进大厂怎么办 4,社招的潜规则 5,社招想进大厂怎么办? 面试部门 岗位:商业化 - 高级 …

《Android框架揭秘》——导读

本节书摘来自异步社区《Android框架揭秘》一书中的目录,作者 金泰延 , 宋亨周 , 朴知勋 , 李白 , 林起永,更多章节内容可以访问云栖社区“异步社区”公众号查看 目 录 第1章 Android Framework概要 1.1 Android源代码组成1.2 通过启动过程分析Android…

Android框架揭秘读书笔记

Android启动过程 1.linux内核,加载linux内核 2 init 进程对各种设备进行初始化, 执行Daemon进程,管理USB、ADB链接管理器、Debugger系统、rild管理无线通信链接 Content Manager进程,提供运行Android各种系统服务信息 Media …

android框架揭秘!连续四年百度Android岗必问面试题!实战篇

前言 今天想停下代码,写点脑袋里不断浮现出来的一些看法。 也就是最近在微博和知乎上老看到“互联网寒冬”的说法。要么是看到啥公司薪水无法如期发放了,要么是看到别人说什么“裁员了,没有交接,签字然后电脑还了就走人&#xf…

字节大佬封神之作《Android Framework高级开发笔记》,完整版开放下载

在现阶段的Android开发工作中,无论是底层,还是应用层,Framework都至关重要。Framework的火热程度,相信我也不必再赘述。 为帮助大家深度学习Framework背景及它的巨大作用,这里分享一份《Android Framework高级开发笔记…

ANDROID框架揭秘

本书通过对Android系统源代码的分析,主要介绍Android框架的初始化过程及 主要组件的工作原理。作者直接分析和整理了Android框架的主要源代码,并详细讲 解了理解框架工作原理所需的各种基础知识和构成实际Android平台骨干的服务框架。 其中的主要内容包括…

用Java写linux命令行cd,java执行linux命令cd

java执行linux命令cd [2021-01-31 01:51:23] 简介: php去除nbsp的方法:首先创建一个PHP代码示例文件;然后通过“preg_replace("/(\s|\&nbsp\;| |\xc2\xa0)/", " ", strip_tags($val));”方法去除所有nbsp即可。推荐&#xff1…

Linux 常用命令与教程

http://c.biancheng.net/view/705.html C语言编程网的教程很好 还有菜鸟教程的 还有这个 https://mp.weixin.qq.com/s/7bSwKiPmtJbs7FtRWZZqpA 讲的也不错 https://baike.baidu.com/item/PS/8850709 百度百科 搜索一个linux命令 会出来这个 〇、序言:命令基本格式…

最强的linux命令总结.pdf

白月光-焰灵姬 来源:掘金- Lion https://juejin.cn/post/6938385978004340744 | 编辑:五角钱的程序员 前言 Linux 的学习对于一个程序员的重要性是不言而喻的。前端开发相比后端开发,接触 Linux机会相对较少,因此往往容易忽视它。…

linux命令 视频教程,常用的linux命令视频教程

常用的linux命令视频教程 [2021-02-19 11:27:41] 简介: php去除nbsp的方法:首先创建一个PHP代码示例文件;然后通过“preg_replace("/(\s|\&nbsp\;| |\xc2\xa0)/", " ", strip_tags($val));”方法去除所有nbsp即可。推荐&#…

ps 命令详解

From:http://blog.chinaunix.net/uid-25681671-id-3201927.html 进程和作业管理命令:http://man.linuxde.net/sub/进程和作业管理 Linux 关于 进程/线程 的命令 kill 和 pgrep 和 pidof 和 awk 和 pkill 和 killall:https://blog.csdn.net/fr…

Linux命令详解词典高频命令(三)

ln(link) 功能说明:链接文件或目录。 语法:$ ln [参数] [被链接文件] [链接目录] 包名称:coreutils 相关命令:cp,lndir,symlinks 补充说明:ln命令用在链接文件或目录,如同时指定两个以上的文件或目录&…

Linux命令详解词典高频命令(1)

参考机械工业出版社,施威铭研究室著的《Linux命令详解词典》 列出了其中的一些高频命令供自己学习 alias 功能说明:设置命令的别名。 语 法:-$ alias [别名][命令] 包 名 称:bash 相关命令:unalias 命令说明&#xf…

linux命令 语法 pdf,Linux命令详解词典pdf

摘要 精选381个命令,详细列出1729个范例,提供3种查询索引,适合各种Linux发行版。 Linux命令详解词典 内容简介 本书精选了381个Linux命令,详细罗列1729个范例,并提供3种查询索引方式。本书详细列出Linux命令的参数、功…

linux命令详解词典pdf,[计算机]linux命令详解词典

[计算机]linux命令详解词典 (42页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 22.9 积分 linux命令详解词典cat cdchmod chowncp cut名称:cat使用权限:所有使用者使用方式…

【基础篇】linux常用命令大全及命令说明

对于刚接触linux来说,命令是必不可少的。在linux中很多东西都是要用命令来控制,接下来就将我所了解到的常用命令列举一下,供大家参考: 一、基础命令 su root : 进入管理员用户 cd :切换到当前用户的主目录 cd 目录…

Linux命令详解词典高频命令(2)

grep 功能说明:查找文件里符合条件的字符串 语 法:# grep [参数] [查找范例] *[文件类型] 包 命 令:grep 相关命令:egrep,fgrep,rgrep 补充说明:命令用于査找内容包含指定范本样式的文件,如果发现某文件的…

100个linux常用命令,肝货,很实用

Linux命令是对Linux系统进行管理的命令。 对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心。 线上查询及帮助命令(2个) man:查看命令帮助&#xff…