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

简介:

本节书摘来自异步社区《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
相关文章
|
2月前
|
存储 消息中间件 人工智能
【03】AI辅助编程完整的安卓二次商业实战-本地构建运行并且调试-二次开发改注册登陆按钮颜色以及整体资源结构熟悉-优雅草伊凡
【03】AI辅助编程完整的安卓二次商业实战-本地构建运行并且调试-二次开发改注册登陆按钮颜色以及整体资源结构熟悉-优雅草伊凡
104 3
|
7月前
|
存储 Android开发
如何查看Flutter应用在Android设备上已被撤销的权限?
如何查看Flutter应用在Android设备上已被撤销的权限?
319 64
|
2月前
|
存储 消息中间件 人工智能
【08】AI辅助编程完整的安卓二次商业实战-修改消息聊天框背景色-触发聊天让程序异常终止bug牵涉更多聊天消息发送优化处理-优雅草卓伊凡
【08】AI辅助编程完整的安卓二次商业实战-修改消息聊天框背景色-触发聊天让程序异常终止bug牵涉更多聊天消息发送优化处理-优雅草卓伊凡
197 10
【08】AI辅助编程完整的安卓二次商业实战-修改消息聊天框背景色-触发聊天让程序异常终止bug牵涉更多聊天消息发送优化处理-优雅草卓伊凡
|
2月前
|
缓存 Unix Android开发
Android安卓项目调试之Gradle 与 Gradle Wrapper的概念以及常用gradle命令深度详解-优雅草卓伊凡
Android安卓项目调试之Gradle 与 Gradle Wrapper的概念以及常用gradle命令深度详解-优雅草卓伊凡
266 8
|
2月前
|
存储 API Android开发
【02】完整的安卓二次商业实战-配置gradle-构建打包原生安卓项目-调试本地运行模拟器-优雅草伊凡
【02】完整的安卓二次商业实战-配置gradle-构建打包原生安卓项目-调试本地运行模拟器-优雅草伊凡
153 4
【02】完整的安卓二次商业实战-配置gradle-构建打包原生安卓项目-调试本地运行模拟器-优雅草伊凡
|
7月前
|
存储 Android开发 数据安全/隐私保护
如何在Android设备上撤销Flutter应用程序的所有权限?
如何在Android设备上撤销Flutter应用程序的所有权限?
415 64
|
7月前
|
缓存 Android开发 开发者
Flutter环境配置完成后,如何在Android设备上运行Flutter应用程序?
Flutter环境配置完成后,如何在Android设备上运行Flutter应用程序?
1215 62
|
7月前
|
开发工具 Android开发 开发者
在Android设备上运行Flutter应用程序时,如果遇到设备未授权的问题该如何解决?
在Android设备上运行Flutter应用程序时,如果遇到设备未授权的问题该如何解决?
428 61
|
6月前
|
XML 搜索推荐 Android开发
Android改变进度条控件progressbar的样式(根据源码修改)
本文介绍了如何基于Android源码自定义ProgressBar样式。首先分析了系统源码中ProgressBar样式的定义,发现其依赖一张旋转图片实现动画效果。接着分两步指导开发者实现自定义:1) 模仿源码创建一个旋转动画XML文件(放置在drawable文件夹),修改图片为自定义样式;2) 在UI控件中通过`indeterminateDrawable`属性应用该动画。最终实现简单且个性化的ProgressBar效果,附带效果图展示。
391 2
|
9月前
|
前端开发 Java 编译器
当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
250 36
当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡

热门文章

最新文章