欢迎光临
我们一直在努力

Android Studio 导入系统源码并对源码进行debug调试

Android9系统源码下载

Android9源码编译

之前阅读Android源码都是使用直接从百度云盘下载源码,并导入Source Insight进行阅读,这个工具也很强大,类的查找搜索都很方便,源码也不需要进行编译,但是,是不能进行类的关联以及进行调试。

如果你已经将源码进行编译,得到了Android Studio项目配置文件,就可以直接导入Android Studio了。优势是,各种快捷键随心使用,而且可以进行系统源码调试。

1.编译好的Android源码导入Android Studio

在源码目录,查看out/host/linux-x86/framework/idegen.jar是否存在,如果不存在,进入源码根目录执行如下的命令:

#!/bin/bash source build/envsetup.sh lunch 6 export PATH=$PATH:~/andrfoid9/out/host/linux-x86/bin export ANDROID_PRODUCT_OUT=~/android9/out/target/product/generic_x86 emulator 

因为我编译源码使用的6,所以这里直接写的6了。

得到idegen.jar之后,在源码根目录执行如下命令:

sudo development/tools/idegen/idegen.sh 

这时会在源码根目录生成android.iml 和 android.ipr 两个文件

更改这两个文件的读写权限

sudo chmod 777 android.iml sudo chmod 777 android.ipr 

做好这些就可以导入AS工具了,为了快速的导入,可以更改android.iml中的配置,忽略一些不必要的源码文件。操作步骤:

sudo gedit android.iml 

搜索excludeFolder,在下面加入这些配置

<excludeFolder url="file://$MODULE_DIR$/bionic" /> <excludeFolder url="file://$MODULE_DIR$/bootable" /> <excludeFolder url="file://$MODULE_DIR$/build" /> <excludeFolder url="file://$MODULE_DIR$/cts" /> <excludeFolder url="file://$MODULE_DIR$/dalvik" /> <excludeFolder url="file://$MODULE_DIR$/developers" /> <excludeFolder url="file://$MODULE_DIR$/development" /> <excludeFolder url="file://$MODULE_DIR$/device" /> <excludeFolder url="file://$MODULE_DIR$/docs" /> <excludeFolder url="file://$MODULE_DIR$/external" /> <excludeFolder url="file://$MODULE_DIR$/hardware" /> <excludeFolder url="file://$MODULE_DIR$/kernel" /> <excludeFolder url="file://$MODULE_DIR$/out" /> <excludeFolder url="file://$MODULE_DIR$/pdk" /> <excludeFolder url="file://$MODULE_DIR$/platform_testing" /> <excludeFolder url="file://$MODULE_DIR$/prebuilts" /> <excludeFolder url="file://$MODULE_DIR$/sdk" /> <excludeFolder url="file://$MODULE_DIR$/system" /> <excludeFolder url="file://$MODULE_DIR$/test" /> <excludeFolder url="file://$MODULE_DIR$/toolchain" /> <excludeFolder url="file://$MODULE_DIR$/tools" /> <excludeFolder url="file://$MODULE_DIR$/.repo" /> 

.

如果是使用的虚拟机进行源码的编译,将源码拷贝到共享目录,这样Windows系统就可以看到编译好的系统源码了,通过AS的Open an existing Android Studio project选项选择android.ipr 就可以导入源码,可能需要几分钟的事件就加载好了。

这样就可以使用AS查看Android 源码了

2.使用Android Studio 对Android源码进行debug调试

Android9的源码,对应的SDK版本是28,在SDK Manager下载对应的版本

点击File -> Project Structure–>SDKs配置项目的JDK、SDK。

查看是否有1.8(No Libraries),如果没有创建一个新的JDK,这里取名为1.8(No Libraries)

接着设置将Android SDK的Java SDK设置为1.8(No Libraries),这样Android源码使用的Java就是Android源码中的。

Android Studio 导入系统源码并对源码进行debug调试

确保的项目的SDK为源码对应的SDK。

Android Studio 导入系统源码并对源码进行debug调试

修改Manifest file等路径为下图中类似的路径

Android Studio 导入系统源码并对源码进行debug调试

在AS最顶部的工具条中选择Edit Configurations,在Run/Debug Configurations弹框中点击左上角的加号,添加一个Android App配置,按下图进行配置:

Android Studio 导入系统源码并对源码进行debug调试

在源码的根目录创建start_emulator.sh脚本,为了方便的启动模拟器,输入以下内容

#!/bin/bash source build/envsetup.sh lunch 6 emulator 

更改shell文件的权限

sudo chmod 777 ./start_emulator.sh 

启动模拟器

./start_emulator.sh 

在系统源码找到ActivityStarter这个类,在startActivityMayWait这个方法打断点

Android Studio 导入系统源码并对源码进行debug调试

点击菜单的Run–>Attach Debugger to Android Process,勾选Show all processer,选择system_process

在模拟器上随便启动一个应用程序就进入断点了

Android Studio 导入系统源码并对源码进行debug调试
可以调试源码,对系统的源码的运行过程以及理解都会有很大的帮助,也可以学习到源码中优秀的思想以及技巧。

  • 海报
海报图正在生成中...
赞(0) 打赏
声明:
1、本博客不从事任何主机及服务器租赁业务,不参与任何交易,也绝非中介。博客内容仅记录博主个人感兴趣的服务器测评结果及一些服务器相关的优惠活动,信息均摘自网络或来自服务商主动提供;所以对本博客提及的内容不作直接、间接、法定、约定的保证,博客内容也不具备任何参考价值及引导作用,访问者需自行甄别。
2、访问本博客请务必遵守有关互联网的相关法律、规定与规则;不能利用本博客所提及的内容从事任何违法、违规操作;否则造成的一切后果由访问者自行承担。
3、未成年人及不能独立承担法律责任的个人及群体请勿访问本博客。
4、一旦您访问本博客,即表示您已经知晓并接受了以上声明通告。
文章名称:《Android Studio 导入系统源码并对源码进行debug调试》
文章链接:https://www.456zj.com/36606.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址