使用Android Studio导入Android系统源码

转载请注明出处:https://blog.csdn.net/turtlejj/article/details/83857897,谢谢~

 

        在之前的工作中,由于不仅要分析和调试Android系统源码中Framework以及Telephony部分的Java代码,而且还要兼顾RIL和Modem相关的C/C++代码。然而Android Studio对于C/C++代码的支持并不是很好,所以我一直使用的是Source Insight来阅读代码。

        后来由于工作的调整,对于C/C++代码的关注少了很多,因此转而使用Android Studio来阅读代码。不得不说,Android Sutdio对于Android的开发跟调试要优于Source Insight太多太多。不仅可以快速的查找到想要查找的类和方法,更可以对系统进程打断点进行单步调试,从而在遇到问题时,不再需要进行“对出问题的模块加入debug log -> 重新编译模块 -> adb push -> 复现问题 -> 抓log -> 重新分析log”的操作,极大地提升了分析问题的效率。

        本篇文章会讲解如何使用Android Studio导入系统源码。关于如何使用Android Studio对系统源代码进行单步调试,请看文章《使用Android Studio对Android系统源码进行单步调试》。

 

使用Android Studio导入系统源码

        在这里我们默认大家已经下载好了Android系统的源代码,关于如何下载,网上有很多详尽的教程,我这里就不再过多的赘述,不会的同学可以自行百度。

        PS: 使用Android Studio导入系统源代码需要对代码进行一定的编译操作,如果有些同学使用的是Windows系统,可以尝试在Cygwin下进行编译,或者将在Linux下编译生成的三个产物拷贝到Windows的源代码根目录下,也可以起到一样的效果。

        进入正题,在下载好代码之后,我们需要对代码进行编译操作,对于目前比较新的Android 8.0以及9.0版本,我这里推荐使用Ubuntu 16.04的版本进行编译,编译过程中一般不会遇到什么问题 (使用Ubuntu 18.04的话,可能会遇到一些坑,我在《Ubuntu 18.04 编译安卓系统源码 及 adb连接手机遇到的问题详解》里列举了所有我遇到的问题以及解决方法,有需要的同学可以参考)。

        这里需要执行以下四条命令:

        1. "source build/envsetup.sh" (source可以用 . 代替,即". build/envsetup.sh")

        2. "lunch",并选择要编译的项目

        3. "make idegen -j4" (这里的 -j4 表示用4线程来编译,可以不加)

        4. "sudo development/tools/idegen/idegen.sh" (我的电脑需要管理员权限才能执行成功,所以我一般会在前面加上"sudo")

 

        下面进行分布讲解:

        1. 进入系统源码的根目录(即可以看到frameworks、kernel等等文件夹的那一级目录),执行". build/envsetup.sh"命令:

xxxxxx@xxxxxx-Ubuntu:~/code/android$ . build/envsetup.sh 
including device/generic/mini-emulator-arm64/vendorsetup.sh
including device/generic/mini-emulator-armv7-a-neon/vendorsetup.sh
including device/generic/mini-emulator-x86_64/vendorsetup.sh
including device/generic/mini-emulator-x86/vendorsetup.sh
including device/qcom/common/vendorsetup.sh
including vendor/qcom/propriet
  • 36
    点赞
  • 178
    收藏
    觉得还不错? 一键收藏
  • 16
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值