源码的编译和导入
概念
在Android Studio中导入AOSP源码,需要利用以下配置文件
- android.iml AS工程配置文件,记录项目所包含的module、依赖关系、SDK版本等。
- android.ipr AS导入配置文件,记录工程的具体配置,代码以及依赖的lib等信息。
编译
进入源码根目录,执行如下
- source build/envsetup.sh
- lunch 选择对应的选项 我的pixel5 选的30
- mmm development/tools/idegen #编译idegen
- development/tools/idegen/idegen.sh#生成ipr与iml文件
配置
打开android.iml,找到excludeFolder
如果不想导入某个模块,将对应模块添加进去
比如我不想导入packages ,就添加如下
当然很多没啥用都可以添加进去
<excludeFolder url="file://$MODULE_DIR$/packages"/>
<excludeFolder url="file://$MODULE_DIR$/build"/>
<excludeFolder url="file://$MODULE_DIR$/art"/>
<excludeFolder url="file://$MODULE_DIR$/dalvik"/>
<excludeFolder url="file://$MODULE_DIR$/toolchain"/>
<excludeFolder url="file://$MODULE_DIR$/tools"/>
<excludeFolder url="file://$MODULE_DIR$/vendor"/>
<excludeFolder url="file://$MODULE_DIR$/system"/>
<excludeFolder url="file://$MODULE_DIR$/sdk"/>
<excludeFolder url="file://$MODULE_DIR$/prebuilts"/>
<excludeFolder url="file://$MODULE_DIR$/platform_testing"/>
<excludeFolder url="file://$MODULE_DIR$/pdk"/>
<excludeFolder url="file://$MODULE_DIR$/out"/>
<excludeFolder url="file://$MODULE_DIR$/libnativehelper"/>
<excludeFolder url="file://$MODULE_DIR$/libcore"/>
<excludeFolder url="file://$MODULE_DIR$/kernel"/>
<excludeFolder url="file://$MODULE_DIR$/hardware"/>
<excludeFolder url="file://$MODULE_DIR$/external"/>
<excludeFolder url="file://$MODULE_DIR$/device"/>
<excludeFolder url="file://$MODULE_DIR$/developers"/>
<excludeFolder url="file://$MODULE_DIR$/development"/>
<excludeFolder url="file://$MODULE_DIR$/cts"/>
<excludeFolder url="file://$MODULE_DIR$/compatibility"/>
<excludeFolder url="file://$MODULE_DIR$/bootable"/>
<excludeFolder url="file://$MODULE_DIR$/bionic"/>
AS配置
打开源码
进入源码地址,找到android.ipr,右键选择android studio 打开,耐心等待。
As内设置导入和屏蔽
项目project,右键,open Module Setting
右键选择要屏蔽的模块,勾选Excluted,则屏蔽不导入,勾选则导入。
选择源码点击跳转到AOSP源码而非SDK内

如果发现无效果,打开android.iml,拉到最后,找到orderEntry,修改为如下
可能因为我是外挂硬盘原因,跳转问题没遇到。