什么是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的使用方法:
- 首先需要在AOSP源码的根目录下执行下面的命令:
source build/envsetup.sh
lunch aosp_x86_64-eng // 这里具体构建哪个目标,根据你自己的情况来,你也可以使用默认的(即直接lunch回车)
- 上面一步执行成功后,即可在终端中使用AIDEGen命令了,使用下面的方法可自动编译Settings模块并使用Android Studio打开项目:
aidegen Settings -i s
-i s
表示使用的IDE为Android Studio
以上命令执行后,AIDEGen 会自动帮你把对应的模块编译一遍,顺带把梳理出的依赖用 Python 生成一个个的 dependency,最后直接帮你把 AS 拉起,项目自动打开。这一步可能会有些耗时,执行成功后如下图所示:
如果你确定某个模块已经编译过了,那么可以加上-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