AOSP导入IDE

Java代码导入 Android Studio

1.source build/envsetup.sh

2.编译生成 idegen.jar

1
mmm development/tools/idegen/ 

运行完毕上面的命令之后,就在根目录生成了2个文件:

1
android.ipr android.iml

3.排除不必要的模块,提高加载速度

1
打开android.iml, 找到excludeFolder属性,只添加framework
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<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$/pdk"/>
<excludeFolder url="file://$MODULE_DIR$/prebuilts"/>
<excludeFolder url="file://$MODULE_DIR$/sdk"/>
<excludeFolder url="file://$MODULE_DIR$/system"/>
<excludeFolder url="file://$MODULE_DIR$/tools"/>
<excludeFolder url="file://$MODULE_DIR$/kernel"/>

4.使用Android Studio直接android.ipr文件

Native代码导入CLion

1.打开开关,编译时生成CMakeLists.txt

1
2
export SOONG_GEN_CMAKEFILES=1
export SOONG_GEN_CMAKEFILES_DEBUG=1

2.编译

1
make -j16

3.生成CMakeLists.txt

1
out/development/ide/clion/xxxx

4. 创建CMakeLists.txt用于合并

在clion目录下创建CMakeLists.txt

1
2
3
4
5
6
7
cmake_minimum_required(VERSION 3.6)
project(AOSP-Native)

//用到了哪个模块再导入即可,要保证改目录下有CMakeLists.txt
// 添加子模块,导入了部分工程
add_subdirectory(frameworks/native)
.......

5. CLion导入

1
2
3
4
1. 打开CLion
2. 选择「open xxxxxx」
3. 指定包含 CMakeLists.txt 的目录out/development/ide/clion
4. 选择「Open Existing Project」

6.更改工程根目录

设置root为aosp源码根目录

1
Tools -> CMake -> Change Project Root

常见问题

交叉引用跳转到JDK源码

打开的Java代码,查看集成关系或者调用关系的时候,还是会跳转到.class文件中,而不是相应的Java类?

1. 删除多余的JDK和SDK

2. 添加JDK

3. 删除JDK中Classpath和Sourcepath中的内容

4. 删除SDK中Classpath和Sourcepath中的内容

5. 配置Modules

6把framework添加到Dependencies中

7. 确定Project SDK选择正确

参考文章

1
https://www.jianshu.com/p/2ba5d6bd461e