开始之前,先要准备一份已经编译过的Android源码,

同时,你得安装配置了Android Studio(下载地址http://www.android-studio.org/)

1、编译源码idegen模块及生成AS配置文件(*.ipr)

首先进入源码目录,执行如下指令

mmm development/tools/idegen/

当出现如下语句,说明编译OK了

......
#### make completed successfully (7 seconds) ####

接着执行

development/tools/idegen/idegen.sh

这行命令的意思是在根目录生成对应的android.ipr、android.iml  IEDA工程配置文件。当出现如下语句,说明OK了

Read excludes: 21ms
Traversed tree: 194799ms

此时根目录下就出现了android.ipr、android.iml文件。

接着修改android.iml文件,将自己不用的代码过滤掉。想想,如果我们就这么直接导入,会把所有的源码模块导入到Android Studio中,这会很慢的,如果你的电脑配置不好,可能会直接假死。所以我们最好过滤一下我们不需要的源码文件,只导入我们需要的模块。

比如只要看frameworks的代码,打开android.iml文件,加入如下代码

<excludeFolder url="file://$MODULE_DIR$/.repo" />
<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$/libcore" />
<excludeFolder url="file://$MODULE_DIR$/libnativehelper" />
<excludeFolder url="file://$MODULE_DIR$/ndk" />
<excludeFolder url="file://$MODULE_DIR$/out" />
<excludeFolder url="file://$MODULE_DIR$/packages" />
<excludeFolder url="file://$MODULE_DIR$/pdk" />
<excludeFolder url="file://$MODULE_DIR$/prebuilt" />
<excludeFolder url="file://$MODULE_DIR$/prebuilts" />
<excludeFolder url="file://$MODULE_DIR$/sdk" />
<excludeFolder url="file://$MODULE_DIR$/system" />
<excludeFolder url="file://$MODULE_DIR$/tools" />


android导入源码 安卓源码怎么导入_as

到此,配置已经完成,下面开始导入代码到Android Studio

2、Android Studio导入源码

linux下启动Android Studio是使用命令启动,命令如下:

#首先确保在android-studio目录下执行 
$ bin/studio.sh

android导入源码 安卓源码怎么导入_android studio_02

选择Android.ipr

android导入源码 安卓源码怎么导入_as_03

等几分钟,就导入完成了

此时代码已经导入完成了。但是这时候如果你打开一个Service.java类,然后把鼠标放在其中任意方法的Intent参数上按住CTRL+鼠标左键跳转到Intent类你会发现跳转过去的是一个Intent.class文件,为啥呢?因为他跳转的是你的默认SDK中的jar内部的class文件。既然要修改查看整套源码,这么跳转得多蛋疼啊,所以我们需要配置让其能跳转到Intent.java文件,具体做法如下:

首先删掉依赖中的所有依赖,只保留下图中没被选中的那两个(当然你可以选择保留一些你用到的其他jar),如下:

android导入源码 安卓源码怎么导入_android_04

接着点击加号的JARs or directories将你源码的frameworks及external和你用到的其他跳转目录添加到依赖中,然后apply即可。

搞定后,可能会遇到如下报错

android导入源码 安卓源码怎么导入_android导入源码_05

解决方法是

复制出现红色字体的路径。。。
File -  Settings  - schemas and DtDs 

android导入源码 安卓源码怎么导入_android_06

点击加号。把路径考进去就可以了