aidegen:为AOSP代码中Java和C / C ++项目自动生成ide配置

aosp中模块众多,依赖复杂,如何快速完成ide配置,从而能愉快地在ide中进行代码的导航和跳转是我们需要解决的问题,好在google给我们提供了一款好用的ide配置生成工具,能快速地生成Java和C/C++项目的ide配置文件,对于Java项目,能生成.idea文件,对于C、C++项目能快速生成cmake文件。

注意:
.idea文件夹在项目当前目录下
cmakeList文件在out/development/ide/clion/目录下

AIDEGen是一个命令行工具,旨在为在Android Studio、IntelliJ IDEA、Eclipse、CLion和VS Code等流行的IDE环境中开发Java或C / C ++项目的开发人员自动化项目设置过程。使用AIDEGen,开发人员无需手动配置项目文件和依赖项,节省了宝贵的时间和精力。

主要功能

  1. 配置Android Studio或IntelliJ项目文件:AIDEGen自动解析相关的模块依赖项,并为Android Studio或IntelliJ IDEA配置项目文件。

  2. 为特定子项目或构建目标启动IDE:开发人员可以直接为指定的子项目或构建目标(例如frameworks/base或Settings)启动IDE。

  3. 为指定的文件夹启动IDE:AIDEGen还允许开发人员为包含构建目标的指定文件夹(如cts)启动IDE。

  4. 自动配置JDK和Android代码风格:AIDEGen负责为IntelliJ配置JDK和Android代码风格,确保统一的开发环境。

先决条件

在使用AIDEGen之前,开发人员需要安装他们喜欢的IDE,例如Android Studio、IntelliJ IDEA、Eclipse、CLion或VS Code。此外,他们应该通过运行以下命令设置Android开发环境:

$ source build/envsetup.sh && lunch <TARGET>

基本用法

AIDEGen提供各种用法示例以适应不同的项目设置:

示例1:使用模块名称启动IDE

要为“framework”和“Settings”模块生成并启动IntelliJ项目,请使用以下命令:

$ aidegen Settings framework

示例2:使用模块路径启动IDE

如果您更喜欢指定模块路径,请使用此命令:

$ aidegen packages/apps/Settings frameworks/base

示例3:跳过构建并启动IDE

要在跳过构建时间的情况下生成并启动“framework”和“Settings”的IntelliJ项目,请添加“-s”选项:

$ aidegen Settings framework -s

示例4:使用本机模块启动IDE

对于本机模块,AIDEGen支持生成并启动CLion项目。请使用以下命令:

$ aidegen <module> -i c

在CLion中启动本地项目时,选择“工具>CMake>更改项目根目录”,并将项目根目录设置为CLion项目视图中显示的源目录。例如,如果您的项目位于frameworks/base/media,将项目根目录更改为frameworks/base/media。

示例5: 生成SystemUI idea配置文件并启动IDE

aidegen frameworks/base/packages/SystemUI -i s -p /home/cl/.local/share/JetBrains/Toolbox/apps/android-studio-2/bin

示例6 :生成framework/jni cmake配置并启动IDE

aidegen frameworks/base/core/jni -i c -p /home/cl/.local/share/JetBrains/Toolbox/apps/clion/bin


可选参数

开发人员还可以利用可选参数根据自己的需求来自定义AIDEGen命令。这些可选参数包括:

选项长选项描述
-d--depth源引用的模块深度。
-i--ide启动IDE类型:j=IntelliJ s=Android Studio e=Eclipse c=CLion v=VS Code
-p--ide-path指定用户的IDE安装路径。
-n--no_launch不启动IDE。
-r--config-reset重置所有AIDEGen的保存配置。
-s--skip-build跳过构建jars或模块。
-v--verbose显示DEBUG级别日志记录。
-a--android-tree为IDE生成整个Android源树项目文件。
-e--exclude-paths排除IDE中的目录。
-l--language使用特定语言启动IDE:j=java c=C / C ++ r=Rust
-h--help显示帮助消息并退出。

故障排除提示

如果开发人员遇到“Dependent modules dictionary is empty”或其他类似问题,建议运行以下命令进行干净的构建:

make clean

常见问题(FAQ)

Q1.如果我已经有一个IDE项目文件,并运行AIDEGen命令再次生成相同的项目文件,会发生什么?

A1:先前的IDE项目文件将被新生成的AIDEGen命令覆盖。

Q2:何时需要重新运行AIDEGen?

A2:建议在执行repo sync后重新运行AIDEGen。

附加提示

以下是一些附加提示,以增强对AIDEGen的使用:

1.在IntelliJ中,使用“文件>无效缓存/重新启动…”强制更新项目面板,如果IDE没有自动同步。

2.如果您在远程桌面上运行AIDEGen,请确保在不同的桌面会话中没有运行IntelliJ实例。

通过AIDEGen,开发人员可以简化项目设置过程,减少手动配置工作量,更多地专注于编码和开发。立即尝试AIDEGen,并体验它为Java和C / C ++开发人员带来的便利!

项目位置

/android/tools/asuite/aidegen

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐