计算机系统应用教程网站

网站首页 > 技术文章 正文

Mac 系统使用 Android Studio 调试源码

btikc 2024-09-09 01:38:07 技术文章 51 ℃ 0 评论



编译完 aosp 源代码后,不要急着导入,否则就出现下图的情况:

Android Studio 导入 Framework 源码后由于没有关联,所以阅读不顺。

我们需要在导入 Android Studio 之前先做这么几步:

第一步:在 make 完源码之后,执行这几部命令

source build/envsetup.sh
lunch [整编时选择的参数或者数字]
mmm development/tools/idegen/

这样,就会在目录:

out/host/linux-x86/framework/idegen.jar

生成 idegen.jar 文件,方便第二步的文件构建

第二步:执行下面命令生成 android.iml 和 android.ipr 两个编译所需文件

sudo development/tools/idegen/idegen.sh


修改二者的属性为可读写,方便更改第三步中的配置文件

执行下方命令即可

sudo chmod 777 android.imlsudo chmod 777 android.ipr

第三步:修改 android.iml 中 excludeFolder 配置,排除不需要看的源码,这样能快速构建项目,当然此步骤可以根据电脑性能可选。

查看下我们 aosp 目录

可以先把除 framework 的目录都排除掉,当然后续也可以通过

Android Studio 对排除的文件夹进行调整。

打开 android.iml 文件,搜索 excludeFolder,然后添加如下配置即可,可替换可以“追加”,我选择的“追加”

追加的内容是

<excludeFolder url="file://$MODULE_DIR$/.repo" />
<excludeFolder url="file://$MODULE_DIR$/art" />
<excludeFolder url="file://$MODULE_DIR$/bionic" />
<excludeFolder url="file://$MODULE_DIR$/bootable" />
<excludeFolder url="file://$MODULE_DIR$/build" />
<excludeFolder url="file://$MODULE_DIR$/compatibility" />
<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$/libcore" />
<excludeFolder url="file://$MODULE_DIR$/libnativehelper" />
<excludeFolder url="file://$MODULE_DIR$/out" />
<excludeFolder url="file://$MODULE_DIR$/packages" />
<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" />

第四步:用 Android Studio 导入

导入了将近 10 分钟

然后,我们配置下 jdk 和 sdk

创建一个新的 jdk 文件夹,起名是1.8(aosp)名字随意

删除 classpath 下方的所有 jar 文件

然后,选择编译好的 aosp 对应的版本,我的 asop 是 8.1 对应的 API 版本就是 27,然后将 Java SDK 的选项调整为 1.8(aosp)即可

然后调整 sdk 为对应版本的 sdk。

第四步:修改 Android 工程配置

切换到 Modules 选项,修改右侧的路径,改为 framework 目录下,如图

然后点 Apply,回到主页面后

点击 Add Configration

再点击 + 号按键

选择 Android App

然后修改红框内的选项改为 noting

确定后,我们就得到了一个可以调试 Framework 的 Module

第五步:调试源码

此时不要直接调试 module,我们先给我们想要看的源码的位置打上断点,调试启动后打也是可以的。

我们知道 Activity 的启动是需要 AMS 调用 ActivityStarter 的

startActivityMayWait()

所以我们可以先在该方法打断点:

然后点击

Run –> Attach Debugger to Android Process

然后弹窗中选择 system_process

确定后,Android Studio 中就会出现 Debug 的工具栏:

此时,我们手动点击打开任何一个应用,比如打开「电话」应用,此时就会进入调试阶段:

然后就可以愉快(ku bi)的看源码了。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表