[Android]Android Studio 导入FWK 和 packages app 等源码

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/champwang/article/details/81836068

start:

之前一直用source insight + opengrok组合看android源代码,包括Java,C/C++等,觉得挺方便了的。

最近负责的模块重点转向FWK,想加一个工具Android studio。

用 AS 加载 FWK / packages_app等 java,XML文件来查看Android 上层源码,发挥AS 的实用性。

本文将AS导入android源代码的step加以记录。

1.  准备好源码。可参考如下配置,不能文明上网的,可以用国内的Android的镜像源。

https://source.android.com/source/downloading.html

repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1

可以在命令后面加上 --depth=1 ,指定接下来的repo sync指令, 我们只需要下载 repo init命令中所指定分支的最后一版资料。

如果某个project要下载完整的,可以在对应的project下(比如 Frameworks/base)执行 git fetch --unshallow

2.  编译源码。

source build/envsetup.sh

lunch xxx_userdebug

time make -j32 2>&1 | tee build_userdebug.log; date

3.生成IEDA工程配置文件。

mmm development/tools/idegen/
sudo ./development/tools/idegen/idegen.sh

用命令在android根目录下生成以下三个文件:

android.ipr:通常是保存工程相关的设置,比如编译器配置,入口,相关的libraries等
android.iml:则是主要是描述了modules,比如modules的路径,依赖关系等.
android.iws:则主要是包含了一些个人工作区的设置.

4.Android studio加载。

使用AS打开android.ipr文件,就可以导入系统源码了。
由于Android系统源码比较庞大,导入比较耗时,建议先修改android.iml排除一些代码。

语法如下
<excludeFolder url="file://$MODULE_DIR$/.repo" />

如果只查看FWK,可以如下添加

<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" />

另外,如果AS 和 code 在 ubuntu下,直接加载全部的 Java 代码, 也不费一顿饭的时间,亲测。

Windows下,卡卡卡,亲测。

end.

猜你喜欢

转载自blog.csdn.net/champwang/article/details/81836068