首页 > 系统相关 >Android AOSP Ubuntu 开发环境配置

Android AOSP Ubuntu 开发环境配置

时间:2024-06-20 19:30:39浏览次数:12  
标签:repo Git Repo AOSP Ubuntu Android 安装

在下载和构建 Android 源代码的 main 分支之前,请确保您的硬件满足必要的要求,并已正确安装所需的软件。您还应熟悉以下术语:

Git

Git 是一个免费的开源分布式版本控制系统。Android 使用 Git 执行本地操作,例如建立分支、提交、对比差异、修改。如需 Git 学习帮助,请参阅 Git 文档

Repo

Repo 是 Git 的 Python 封装容器,可简化跨多个 Git 仓库执行复杂操作的过程。Repo 不会取代 Git 来执行所有版本控制操作,只会让复杂的 Git 操作更易于完成。 Repo 使用清单文件将 Git 项目汇总到 Android 超级项目中。

清单文件

清单文件是一个 XML 文件,用于指定 Android 源代码中的各个 Git 项目在 AOSP 源代码树中的放置位置。

注意:本文档中所有命令的前面都带有美元符号 ($),以便与输出或文件条目区分开来。如需将命令复制到剪贴板,请点击每个命令框右上角的复制代码示例图标。

注意:如果您想要构建 Android 2.3 - 8.0,请参阅设置 AOSP 开发 (2.3 - 8.0)

满足硬件要求

您的开发工作站应该达到或超出以下硬件要求:

  • 64 位系统。

    注意:您可以在 32 位系统上编译低于 2.3.x 的 AOSP 版本。

  • 如果要检出和构建代码,至少需要 400 GB 可用磁盘空间(250 GB 空间用于检出代码 + 150 GB 空间用于构建代码)。

    注意:如果您要检出镜像,则需要更多空间,因为完整的 Android 开源项目 (AOSP) 镜像包含所有使用过的 Git 代码库。

  • 至少 64 GB RAM。Google 使用 72 核机器和 64 GB RAM 来构建 Android。采用此硬件配置时,一个完整的 Android build 大约需要 40 分钟;Android 增量 build 大约需要几分钟的时间。相比之下,使用 6 核机器和 64 GB RAM 构建一个完整 build 大约需要 6 个小时。

满足操作系统要求

开发工作站必须运行采用 GNU C 库 (glibc) 2.17 或更高版本的任何 64 位 Linux 发行版。

警告:自 2021 年 6 月 22 日 (Android 11) 起,我们不再支持在 macOS 上进行 Android OS 开发。如需了解如何针对 macOS 配置您的开发工作站,请参阅针对 AOSP 开发进行设置 (2.3 - 8.0)

安装必需的软件包

如需构建 Android 11 或更高版本,您必须使用 Ubuntu 18.04 或更高版本。如需安装 Ubuntu 18.04 或更高版本所需的软件包,请运行以下命令:

sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev libc6-dev-i386 libncurses5 x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig

在已安装的软件包中,此命令会安装用于下载 AOSP 源代码的 Git。

注意:此命令适用于 Ubuntu 18.04 或更高版本。如需了解如何为早期版本的 Ubuntu 安装软件包,请参阅 Android 开发设置 (AOSP 2.3 - 8)

安装必需的软件

您必须先安装 OpenJDK、Make、Python 3 和 Repo,然后才能使用 AOSP。Android 的 AOSP 主分支附带预构建版本的 OpenJDK、Make 和 Python 3,因此不需要额外的安装步骤。下一部分介绍了如何安装 Repo。

安装 Repo

请按以下步骤安装 Repo:

  1. 下载当前软件包信息:

    sudo apt-get update
    
  2. 运行以下命令以安装 Repo 启动器:

    sudo apt-get install repo
    

    Repo 启动器会提供一个 Python 脚本,该脚本可以初始化检出,并可以下载完整的 Repo 工具。

    如果成功,请跳至第 4 步。

  3. (可选)使用以下一系列命令手动安装 Repo:

    export REPO=$(mktemp /tmp/repo.XXXXXXXXX)
    curl -o ${REPO} https://storage.googleapis.com/git-repo-downloads/repo
    gpg --recv-keys 8BB9AD793E8E6153AF0F9A4416530D5E920F5C65
    curl -s https://storage.googleapis.com/git-repo-downloads/repo.asc | gpg --verify - ${REPO} && install -m 755 ${REPO} ~/bin/repo
    

    前三个命令会设置一个临时文件,将 Repo 下载到该文件中,并验证提供的密钥是否与所需的密钥匹配。如果这些命令运行成功,则最后一个命令会安装 Repo 启动器。

  4. 验证 Repo 启动器版本:

    repo version
    

    输出应指示版本为 2.5 或更高版本,例如:

    repo launcher version 2.40

设置备用输出目录

默认情况下,每次构建的输出都会存储在相应源代码树的 out/ 子目录下。您可以通过导出 OUT_DIR 环境变量来替换此目录。例如,如果要将输出存储在其他驱动器上,您可以将 OUT_DIR 指向该驱动器:

export OUT_DIR=my_other_drive

标签:repo,Git,Repo,AOSP,Ubuntu,Android,安装
From: https://blog.csdn.net/qq_31138209/article/details/139840926

相关文章

  • Android的Manifest.xml文件有什么用
     Android的Manifest.xml文件是一个重要的配置文件,用于描述应用程序的各种信息,包括应用程序的包名、版本号、应用程序的入口Activity、权限要求等等。它的作用如下:1.声明权限:Manifest文件可以声明应用程序需要使用的权限,例如访问网络、读写SD卡等。当用户安装应用程序时,系统会向......
  • Linux学习笔记(一)(以Ubuntu为例)
    Linux操作命令的笔记(一)(Ubuntu)其实Linux不同发行版的基础命令区别不大。Linux命令基础格式命令通用格式:command[-options][parameter][]表示可选的意思command:命令本身-options:[可选,非必填]命令的一些选项,可以通过选项控制命令的行为细节parameter:[可选,非必填]命令......
  • 【Android】代码中将 SVG 图像转换颜色
    要在代码中将SVG图像转换为黑色,你可以使用一个库,例如AndroidSVG或SVG-Android。以下是一个简单的示例代码,展示了如何通过代码方式将SVG图像改为黑色://导入AndroidSVG库importcom.caverock.androidsvg.SVG;importcom.caverock.androidsvg.SVGParseException;......
  • 【Android】Android Studio版本手动升级到指定版本方法
    前言AndroidStudio本身存在自动升级的功能,但是这个功能使用的时候基本都是要升级到最新版本,但是有时候我们也不想升级到最新版本,是想升级到某一个版本,这个时候,AndroidStudio的自动升级版本的功能就无法使用了,需要我们进行手动升级。自动升级方法点击这里就可升级了,自......
  • 【ASeeker】Android 源码捞针,服务接口扫描神器
    ASeeker是一个Android源码应用系统服务接口扫描工具。项目已开源:☞Github☜如果您也喜欢ASeeker,别忘了给我们点个星。说明ASeeker项目是我们在做虚拟化分身产品(『空壳』)过程中的内部开发工具,目的是为了提升Android系统各版本适配效率。由于产品需支持Android9......
  • Android面试题 之App性能优化的卡顿监控和卡顿优化
    本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点卡顿优化这里主要介绍卡顿优化方面的布局优化布局优化1、在主线程中,加载SP,或者是缓存加载,JSON解析,可以放到Idelhander2、viewpager的懒加载,用viewpager2替换v......
  • 【问题】Ubuntu下使用ftp命令下载文件
    Ubuntu下使用ftp命令下载文件具体的方法示例如下:$ ftp192.168.180.3Connectedto192.168.180.3.Name(192.168.180.3:test):此处输入用户名 Password:此处输入对应的密码/*查看当前路径*/ftp> pwd257"/"iscurrentdirectory. ftp>cdtest250CWDcommands......
  • COMPX202 Android Studio
    NZUWI2024S_COMPX202Assignment3:AndroidStudio(Weighting:20%)Duedate:Friday21stJune2024at23:59Submissioninstruction:Asindicatedbelow,youmustworkwithaGitrepositoryanduploadyourworkontheuniversity’sGitLabserver.Youalsonee......
  • VirtualBox Ubuntu 22.04 Server联网、与主机互联
    使用VirtualBox7.0安装了两个Ubuntu22.04Server虚拟机,想要实现:主机与虚拟机互联虚拟机之间互联,且互联的IP应为静态虚拟机可以联网解决方法每个虚拟机配置两个虚拟网卡:一个为桥接网络模式,用于联网以及与主机互联一个为仅主机模式,用于配置静态IP并实现虚拟机之间互联......
  • Android Java开发异步
    目录AndroidJava开发异步为什么需要异步编程?AsyncTask类异步编程的注意事项总结AndroidJava开发异步在Android应用程序中,异步编程是至关重要的,它可以确保应用的流畅性和响应性。在本文中,我们将探讨Android开发中的异步编程,以及如何使用Java语言进行异步操作。为什......