Android Framework-AOSP源码-编译和导入

490 阅读1分钟

源码的编译和导入

概念

在Android Studio中导入AOSP源码,需要利用以下配置文件

  • android.iml AS工程配置文件,记录项目所包含的module、依赖关系、SDK版本等。
  • android.ipr AS导入配置文件,记录工程的具体配置,代码以及依赖的lib等信息。

编译

进入源码根目录,执行如下

  1. source build/envsetup.sh
  2. lunch 选择对应的选项 我的pixel5 选的30
  3. mmm development/tools/idegen #编译idegen
  4. 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内

image.png

如果发现无效果,打开android.iml,拉到最后,找到orderEntry,修改为如下

image.png 可能因为我是外挂硬盘原因,跳转问题没遇到。