Android源代码(AOSP)调试 - Java部分

经过前面漫长的环境搭建、源码同步、编译之后,终于可以真正做点有意思的事情了 — AOSP源码调试。

AOSP源码导入

IDE内存优化

因为源码非常多,所以导入时IDEA/AS会需要大量内存。所以我们需要编辑IDE的VM选项。配置文件为

  • IDEA的是IDEA_HOME/bin/idea.vmoptions
  • AS的是AS_HOME/bin/studio.vmoptions

注意,AS有一个64位版本的配置文件studio64.vmoptions最好一并修改了。

找到上面的配置文件,将对应的内容修改为

-Xms748m -Xmx748m

即将VM的堆内存最小和最大都设置为748m

IDE创建空的SDK

添加空的SDK的原因是AOSP是以项目的形式导入的,而IDEA/AS的项目至少需要一个SDK,否则会报错。而我们使用空SDK就解决了这个错误并且在代码跳转时不会跳转到桌面版的Java SDK中,而是在Android的源代码里。

我们可以创建一个1.7 (No Libraries)的JDK,然后将它classpath中所有的jar都删掉。

编译idegen模块,生成IDE项目文件

首先需要编译idegen模块,命令如下

mmm development/tools/idegen/

这个命令是为了生成idegen.jar文件,默认情况下aosp编译并不会生成该文件。
该文件的路径一般在aosp-root/out/host/linux-x86/framework/idegen.jar

然后执行下面命令,生成IDE项目文件

development/tools/idegen/idegen.sh

如果你查看该脚本的源码,会发现它做了2件事情:
- 在out目录下查找,是否已经生成了idegen.jar文件
- 执行java -cp idegen.sh Main

源码导入

通过IDEA/AS打开AOSP根目录下的android.ipr文件,然后我们就可以去休息一会儿了。

这个过程非常慢(加上我的电脑也不快),花了大概一个小时才全部导入完毕。
只是第一次比较慢,后边就会快很多。

AOSP源码调试

这部分是重点参考Debugging AOSP Platform code with Android Studio - Part I - Java Debugger这篇文章,所以就没有必要再完全重复了,这里只是简要列出步骤及容易出现的问题。(为了方便被墙的用户,我借用一下原文的截图。)

导入AOSP源码之后,IDE看起来是这个样子的

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值