简介

导入工具阅读源码这里是依靠了Android源码自带的idegen神器,development/tools/idegen/目录下有个README文件

1、生成导入到AS所需的配置文件

在导入源码之前,记得一定要正确的通过全部源码的编译。

1)、切换到Android源码的目录,导入环境变量

source build/envsetup.sh

2)选择要生成的版本,lunch

3)编译idegen,生成idegen.jar

mmm development/tools/idegen/

在这一步如果报了如下错误

ninja:error:"out/host/common/obj/JAVA_LIBRARIES/guavalib_intermediates/classes-full-debug.jar"need by"out/host/common/obj/JAVA_LIBRARIES/idegen_intermediates/class-full-debug.jar" missing and no know rule to make it

可以在根目录执行命令

make idegen

4)执行idegen.sh,生成 android.ipr 和 android.iml

development/tools/idegen/idegen.sh

如果顺利的话,就可以在Android源码的根目录下看到android.iml和android.ipr文件了。

android.ipr:一般保存了工程相关的设置,比如 modules 和 modules libraries 的路径,编译器配置,入口点等。android.iml:用来描述modules。它包括modules路径、 依赖关系,顺序设置等。一个项目可以包含多个 *.iml 文件。

2、生成导入到AS所需的配置文件

打开android.iml文件看看,默认把几乎所有的源码都导入了,只有几个文件夹被排除在外,工程将会非常大,而且会很耗时间。
然而我们并不关心这么多的源码,我们可以自己加excludeFolder标签,把自己不关心的目录写在这里,告诉AndroidStudio不要导入这个目录下的源码。

打开android.iml文件,以下是修改excludeFolder的所有配置:

<excludeFolder url="file://$MODULE_DIR$/./external/emma"/>
<excludeFolder url="file://$MODULE_DIR$/./external/jdiff"/>
<excludeFolder url="file://$MODULE_DIR$/out/eclipse"/>
<excludeFolder url="file://$MODULE_DIR$/.repo"/>
<excludeFolder url="file://$MODULE_DIR$/external/bluetooth"/>
<excludeFolder url="file://$MODULE_DIR$/external/chromium"/>
<excludeFolder url="file://$MODULE_DIR$/external/icu4c"/>
<excludeFolder url="file://$MODULE_DIR$/external/webkit"/>
<excludeFolder url="file://$MODULE_DIR$/frameworks/base/docs"/>
<excludeFolder url="file://$MODULE_DIR$/out/host"/>
<excludeFolder url="file://$MODULE_DIR$/out/target/common/docs"/>
<excludeFolder url="file://$MODULE_DIR$/out/target/common/obj/JAVA_LIBRARIES/android_stubs_current_intermediates"/>
<excludeFolder url="file://$MODULE_DIR$/out/target/product"/>
<excludeFolder url="file://$MODULE_DIR$/prebuilt"/>
<excludeFolder url="file://$MODULE_DIR$/abi"/>
<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$/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$/ndk"/>
<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$/rc_projects"/>
<excludeFolder url="file://$MODULE_DIR$/sdk"/>
<excludeFolder url="file://$MODULE_DIR$/system"/>
<excludeFolder url="file://$MODULE_DIR$/tools"/>
<excludeFolder url="file://$MODULE_DIR$/trusty"/>
<excludeFolder url="file://$MODULE_DIR$/u-boot"/>
<excludeFolder url="file://$MODULE_DIR$/vendor"/>
<excludeFolder url="file://$MODULE_DIR$/toolchain"/>
<excludeFolder url="file://$MODULE_DIR$/rkbin"/>
<excludeFolder url="file://$MODULE_DIR$/RKDocs"/>
<excludeFolder url="file://$MODULE_DIR$/rkst"/>
<excludeFolder url="file://$MODULE_DIR$/RKTools"/>
<excludeFolder url="file://$MODULE_DIR$/rockdev"/>
<excludeFolder url="file://$MODULE_DIR$/test"/>

3、修改Android Studio的配置文件

由于导入源码时需要消耗大量内存,所以建议修改studio64.exe.vmoptions文件:

-Xms2048m
-Xmx2048m
-XX:ReservedCodeCacheSize=2048m

这里的数值1024可以根据实际情况进行调整。

4、打开as开始导入source code

File -> Open 选择源码目录刚刚生成的android.ipr就可以导入了,这个过程第一次是比较慢的,大家需要耐心等待。

5、调试

导入源码之后,点击菜单栏上的attach debug按钮,弹出手机当前正在运行的进程,选择你想要调试的进程,就可以开始debug了,源码要和手机当中安装的应用是一致的。

AndroidStudio导入Android源码相关推荐

  1. android sutdio导入源码教程,《AndroidStudio导入安卓源码-idegen》---可方便查看安卓源代码...

    idegen是Android源码中的一个模块,需要编译一下.生成一个jar包.然后再进行构建生成AndroidStudio配置相关文件. > 什么是idegen 要将Android系统源代码工程 ...

  2. 一步一步教你如何在AndroidStudio查看Android源码(AOSP源码)

    一步一步教你如何在AndroidStudio查看Android源码(AOSP源码) idegen工具 要将Android系统源代码工程导入到Eclipse或者IntelliJ IDEA,关键是要有相应 ...

  3. 【Android】Source Insight 基本用法 ( 导入 Android 源码 | 设置字体 | 显示行号 | 搜索功能 | 快捷键设置 )

    文章目录 一.导入 Android 源码 二.配置字体 三.显示行号 四.Tab 键字符个数 五.搜索功能 六.打开文件列表 七.快捷键设置 在 [Android 系统开发]使用 Source InS ...

  4. Ubuntu安装Source Insight导入Android源码并设置仿IDEA主题Darcula

    预览 先来张图给大家感受下效果,然后我再慢慢道来过程,保证你避免每一步的坑. 我们要做什么 1.由于Source Insight(以下简称SI)是Windows应用,所以不能直接安装在Linux上,于 ...

  5. 导入android源码有错,R.java文件不能自动生成解决方法 http://caizi12.iteye.com/blog/975125

    最近几天学习android ,学习时候难免要导入一些示例,目的为了更加了解android各种API用法,顺便也可以学习下别人代码的写法.可是导入android源码后,基本都有错误,R.java也不会自 ...

  6. androidstudio调试android 源码 jni,在android studio下配置gradle用ndk-build和ndk-gbd编译调试JNI...

    因为要在旧版android在做一些工作.所以做用到了它.目标平台是:android api 10和armv6. 开发环境是:AS 版本2.3.2; SDK版配android 2.3.3(api10); ...

  7. 手把手教你在Mac OS下载、编译及导入Android源码

    1. 要求 1.1 硬件 160g可用磁盘空间. 笔者编译的是Android 9.0源码,下载下来后将近40g,编译后153g,所以至少需要160g可用磁盘空间. 看网上有别人下载编译7.1.1版本的 ...

  8. Android Studio导入Android源码

    1.生成Android.ipr 进入项目根目录,执行 source build/envsetup.sh lunch 项目版本号 make idegen -j16 编译完成后有idegen.jar生成 ...

  9. eclipse查看android源码包(eclipse导入android源码包)

    以前会,后来好长时间不稿,忘了,还是记下来: 下载对应版本的源码包比如:android-2.3-src.rar,android-2.3.3-src.rar, 下载完后,在对应版本的platforms里 ...

最新文章

  1. ML之FE:基于load_mock_customer数据集(模拟客户,单个DataFrame)利用featuretools工具实现自动特征生成/特征衍生
  2. 一张图看懂数据库十年大格局!
  3. 使用前端框架Foundation 4来帮助简化响应式设计开发
  4. alm系统的使用流程_840D sl系统授权管理
  5. 阿里云边缘云,驱动行业新价值
  6. 利用CSS的三列等高布局
  7. [探索] 利用promise做一个请求锁
  8. 质量效能研发部php,【百度】百度质量效能研发部【社招/实习】
  9. java sleep唤醒_JAVA wait(), notify(),sleep详解(转)
  10. 泛微发布亿元补贴计划,推动移动办公普及
  11. 【锂知道】锂电池基本原理解析:充电及放电机制
  12. 深入理解CSS动画animation
  13. J2ME 发送彩信问题,请个位高手帮忙,长时间在线等待
  14. 日期计算excel_在Excel中计算日期范围内的项目
  15. Linux alias(别名)设置
  16. 【尚筹网项目】 三、【后台】 管理员信息维护
  17. 计算机毕业设计ssm图书馆管理系统063z6系统+程序+源码+lw+远程部署
  18. TOEIC PLAN CHANGING
  19. 计算机毕业设计(附源码)python招聘信息管理平台
  20. C语言实现:最长回文子串算法

热门文章

  1. MacBookPro硬盘升级记
  2. 基于cnn的图像二分类算法(一)
  3. 《赵成的运维体系管理课》学习笔记(2)——持续交付
  4. 阿里高级技术专家张建飞:面对复杂业务,if-else coder 如何升级?
  5. Sicily 14514. Bread Sorting
  6. hive窗口函数必备宝典
  7. 计算机又坏了,第二次回家
  8. 2021年6月大学英语六级翻译
  9. 以下关于python函数说法错误的是def_以下关于Python函数的描述中,错误的是()
  10. Python实现自动批改作业系统~