使用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://www.toymoban.com/news/detail-499732.html

参考

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

到了这里,关于使用AIDEGen进行AOSP开发的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 什么是 Jest ? Vue2 如何使用 Jest 进行单元测试?Vue2 使用 Jest 开发单元测试实例

    Jest 是一个流行的 JavaScript 测试框架,由 Facebook 开发并维护,专注于简单性和速度。它通常用于编写 JavaScript 和 TypeScript 应用程序的单元测试、集成测试和端到端测试。 特点: 简单易用: Jest 提供简洁的 API 和易于理解的语法,使得编写测试用例变得简单快捷。 零配置:

    2024年01月25日
    浏览(50)
  • 开发一款游戏大概需要多少钱?

    开发一款游戏所需的成本因多种因素而异,包括游戏的规模、类型、平台、开发团队的规模、地理位置、市场策略等等。因此,很难给出一个准确的数字,但我可以为您列举一些影响游戏开发成本的主要因素: 游戏类型和规模:不同类型的游戏(例如独立游戏、移动游戏、

    2024年02月10日
    浏览(37)
  • uniapp大概是怎么个开发法(前端)

    写在前面,博主是个在北京打拼的码农,从事前端工作5年了,做过十多个大大小小不同类型的项目,最近心血来潮在这儿写点东西,欢迎大家多多指教。 对于文章中出现的任何错误请大家批评指出,一定及时修改。 有任何想要讨论和学习的问题可联系我:13287946835@139.com。

    2024年02月05日
    浏览(28)
  • ASfP: 增强AOSP平台开发的利器——Android Studio for Platform

    Android Studio for Platform (ASfP) 是一个为使用 Soong 构建系统构建的 Android 开源项目(AOSP)平台开发者而设计的 Android Studio IDE 版本。与标准 Android Studio 不同,ASfP 具有多语言支持,可以在同一 IDE 中编写 C++、Kotlin 和 Java 程序语言,并且具有项目设置向导和配置 lunch 目标和平台模

    2024年02月06日
    浏览(45)
  • 0.【AOSP+Pixel 5】Android13 开发环境搭建及源码下载、编译和刷机

    本人——入行Android没多久的萌新一枚。这个系列文章主要是我客制化Android系统的一些记录。以下是我的开发环境的信息: Android 版本:13 Android 设备:Pixel 5(欧版) 操作系统:Ubuntu 20.04.5 LTS(64位) 先更新一下软件源和软件 Ubuntu 20.04 LTS已经移除Python2,默认安装python3,但是

    2024年02月14日
    浏览(53)
  • 什么是模块化?为什么要进行模块化开发?

    模块化是一种软件开发的设计模式,它将一个大型的软件系统划分成多个独立的模块,每个模块都有自己的功能和接口,并且能够与其他模块独立地工作。  先来一段八股文 模块化开发可以带来以下好处: 提高代码的复用性:模块化可以将代码划分成可重用的部分,降低代

    2023年04月12日
    浏览(54)
  • ChatGPT每月大概需要使用消耗了 17.5万人的电力

    估计基于 ChatGPT 服务在 16 个 A100 GPU 上运行的假设,ChatGPT 可能需要更多的 GPU 来为其用户提供服务。 由此自然也可以推断,ChatGPT 很可能部署在多个地理位置。这使得估算 ChatGPT 的每日总碳足迹变得非常困难,因为我们需要确切知道有多少 GPU 在哪些区域运行,以便将每个区

    2024年02月04日
    浏览(35)
  • 【区块链实战】什么是DAPP,区块链开发如何进行技术选型

    目录 一、简介 二、知识点 DAPP 公链 联盟链 区块链开发涉及的角色 Solidity 三、技术选型 1、DApp 架构分析 2、公链与联盟链 区块链技术现在已经进入一个高速发展时期,作为企业来说一般有两个选择:做底层链技术,或者做区块链应用。 对绝大多数企业或个人来说,无论是技

    2024年02月12日
    浏览(47)
  • 如何在Vue中进行单元测试?什么是Vue的模块化开发?

    在Vue中进行单元测试可以提高代码的可维护性和可读性,同时也能够帮助开发者更快地找到代码中的问题和潜在的错误。下面是一些在Vue中进行单元测试的步骤: 安装单元测试工具 首先需要安装一个单元测试工具,例如Jest或Mocha。可以使用npm或yarn进行安装。 创建测试文件

    2024年02月12日
    浏览(39)
  • 使用Google Pixel5手机调试AOSP(代码下载、编译、刷机、调试)详细攻略

    为了方便调试AOSP源码 ,花1000多大洋在pdd上买了一个99新的pixel5手机,从此终于可以在真机上调试代码了。 AOSP代码的下载在本专栏中已经有文章介绍过了,这里就不再赘述,没看过的可以去翻看之前介绍的文章。 这里想要说明的是如下下载对应手机型号的代码,比如pixel5对

    2024年02月15日
    浏览(91)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包