AndroidStudio导入Android源码

简介

导入工具阅读源码这里是依靠了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的所有配置:

扫描二维码关注公众号,回复: 15269403 查看本文章
<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了,源码要和手机当中安装的应用是一致的。 

猜你喜欢

转载自blog.csdn.net/u013270171/article/details/129725348