> 文章列表 > 使用AIDEGen进行AOSP开发

使用AIDEGen进行AOSP开发

使用AIDEGen进行AOSP开发

什么是AIDEGen

AIDEGen,大概是“Android IDE (helper) Generator”的简写,是 AOSP 源代码树中的一个工具,它允许从 Android Studio 等通常仅为非平台应用程序开发配置的 IDE 中处理系统应用程序。

AIDEGen 旨在自动化项目设置过程,以便开发人员在流行的 IDE 环境中处理 Java 项目。开发者不再需要手动配置一个 IntelliJ 项目,比如所有的项目依赖。它是一个命令行工具,提供以下功能:

  • 配置 Intellij 或 Android Studio 项目文件,并解决相关的模块依赖关系。
  • 为指定的子项目或构建目标启动 IDE,即 frameworks/base 或 Settings。
  • 为包含构建目标的指定文件夹启动 IDE,即 cts。
  • 为 Intellij 自动配置 JDK 和 Android 编码风格。

如何使用AIDEGen

需要注意的是,AIDEGen工具是在Android10以后才被引入的一个工具,所以如果你要使用它,需要确保你下载AOSP源码并切换到Android10或更高版本的分支

使用AIDEGen的前提是你下载并编译了AOSP源码,如果还不知道怎么编译AOSP源码,可以参考我的这篇文章:Ubuntu18 编译 AOSP 步骤 ,其中详细记录了编译AOSP源码的步骤。

这里假设你已经完成了AOSP源码的编译(完成编译以跑起来Android模拟器为准),AIDEGen工具就在源码的/tools/asuite/aidegen目录下,下面以使用AIDEGen导入AOSP Settings模块到Android Studio中为例,说明AIDEGen的使用方法:

  1. 首先需要在AOSP源码的根目录下执行下面的命令:
source build/envsetup.sh
lunch aosp_x86_64-eng // 这里具体构建哪个目标,根据你自己的情况来,你也可以使用默认的(即直接lunch回车)
  1. 上面一步执行成功后,即可在终端中使用AIDEGen命令了,使用下面的方法可自动编译Settings模块并使用Android Studio打开项目:
aidegen Settings -i s

-i s表示使用的IDE为Android Studio

以上命令执行后,AIDEGen 会自动帮你把对应的模块编译一遍,顺带把梳理出的依赖用 Python 生成一个个的 dependency,最后直接帮你把 AS 拉起,项目自动打开。这一步可能会有些耗时,执行成功后如下图所示:
使用AIDEGen进行AOSP开发
如果你确定某个模块已经编译过了,那么可以加上-s参数跳过编译,这样拉起Android Studio的速度会快很多,比如:aidegen Settings -s -i s

参考

  • https://android.googlesource.com/platform/tools/asuite/+/refs/tags/android-10.0.0_r35/aidegen/README.md
  • 使用 AIDEGen 将 AOSP 项目导入 Android Studio