什么是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 拉起,项目自动打开。这一步可能会有些耗时,执行成功后如下图所示:

如果你确定某个模块已经编译过了,那么可以加上-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

使用AIDEGen进行AOSP开发相关推荐

  1. AOSP开发环境搭建

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.安装虚拟机 二.安装Ubuntu 三.安装VMware tools 1.通用安装 2.Ubuntu22.04 中D ...

  2. 【Android车载系列】第5章 AOSP开发环境配置

    1 硬件支持 建议空闲内存16G以上,同时硬盘400G以上 内存不够可以使用 Linux 的交换分区 2 VMware Workstation安装 https://download3.vmware.c ...

  3. 基于MT6752/32平台 Android L版本驱动移植步骤

    基于MT6752/32平台 Android L版本驱动移植步骤 根据MK官网所述,在Android L 版本上Turnkey ABS 架构将会phase out,而Mediatek Turnkey架构 ...

  4. 使用 Cuttlefish 虚拟 Android 设备

    什么是 Cuttlefish? cuttlefish 是一种可配置的虚拟 Android 设备,既可以远程运行(使用第三方云产品,如 Google Cloud Engine),又可以在本地运行(在 L ...

  5. 鸿蒙系统被泼冷水,给鸿蒙泼冷水:见不得同行的好,是人间最可恶的蠢和恶

    给鸿蒙泼冷水:见不得同行的好,是人间最可恶的蠢和恶 2021年5月24日,OPPO公关骂华为.抵制鸿蒙,他认为"鸿蒙,本质上是基于AOSP开发的--base的AOSP版本太低,适配与维护的成 ...

  6. Linux学习总结(78)—— 常见开源协议讲解

    不根据协议使用开源软件可能面临的风险 2003 年 Linksys 公司(同年 3 月被思科收购)推出 WRT-54G,这款路由器采用了基于 Linux 的固件,而 Linux 使用的是 GPL 开源 ...

  7. Android 更加开放了!

    消息指出谷歌修改了 AOSP 政策,Android 将变得更加开放. 据 slashgear 报导,近日 Google 修改了其关于 AOSP,也就是 Android 开源项目的政策,今后 AOSP ...

  8. 鸿蒙系统2.0崩溃了,集体失声?鸿蒙系统官宣后,鸿蒙系统的真实现状显现

    原标题:集体失声?鸿蒙系统官宣后,鸿蒙系统的真实现状显现 文|北桥 校对|北桥 未经授权,不得以任何形式转载.复制或建立镜像! 本月初,鸿蒙系统开启了大规模的公测. 根据目前参加鸿蒙系统公测的用户对于 ...

  9. 华米在自主芯片和OS研发上取得突破,将成为又一个华为

    如今自主研发可谓当红炸子鸡,而华为凭借自主研发的海思麒麟芯片和鸿蒙OS更是备受国人赞誉,当然其他企业眼看着这是一个好噱头,都不愿错过,近日国内穿戴设备强企华米就宣布将推出自主研发操作系统,此前华米已推 ...

最新文章

  1. 无法打开文件“python310_d.lib”
  2. OpenGL 与 GLSL 版本号
  3. ubuntu 安装svn 版本12.04
  4. SAP Commerce Cloud Accelerator Checkout Delivery Mode 选择页面的实现 JSP
  5. 力扣——所有可能的路径
  6. codeIgniter3 学习笔记五(表单验证)
  7. 测试网卡芯片型号的软件,查看电脑无线网卡型号_查看无线网卡芯片型号
  8. MGV2000_CW、JL、JZ、KA/KX、CNTV,零配置_S905L-B_全套固件(可救砖)
  9. Spoon Kettle 输入之 excel 输入详解(Microsoft Excel input)
  10. Wingdings 2 符号编码对照表
  11. Hive分组 条件 分区排序 CLUSTER BY, Sort By,DISTRIBUTE BY
  12. Android接入微信分享视频和图片
  13. 聊聊我办上海居住证的经历
  14. c语言购买电影票程序,求助,怎么改把程序产生数据写入文件里,电影票管理系统,大佬们...
  15. 贸易大时代:代理IP助力企业出海
  16. linux上tftp上传文件失败,Linux下tftp上传文件失败的几条原因
  17. Delphi SM2/SM4国密算法
  18. 【CSS】线性渐变属性值及范例详解
  19. java 进程 sleep_Java多线程 -sleep 用法详解
  20. php 做支付宝接口 防钓鱼时间戳,ThinkPHP实现支付宝接口功能

热门文章

  1. 【无标题】Unknown custom element: <school> - did you register the component correctly? For recursive comp
  2. 小程序服务器token,小程序-登录-token
  3. mysql大数据迁移,备份
  4. python 执行sql语句_python中脚本怎么执行sql语句?
  5. QUI操作超时弹出登录窗口登录的处理方式
  6. 计算机二级excel服装采购表,计算机二级EXCEL 衣物采购表
  7. 图像风格迁移做了一件文化衫-【布尔艺数】
  8. 广联达bim5d手机端_【广联达BIM5D使用帮助】广联达BIM5D手机端操作说明-生产首页...
  9. pa...............
  10. spring 在web.xml 里面如何使用多个xml配置文件