车载技术—CarFramework框架【AOSP 源码编译】

本文详细介绍了AOSP源码的编译过程,包括使用repo工具管理版本库,编译的目的如定制Android系统和动态调试,以及编译系统概述,如Makefile、Ninja和Android.bp的作用。同时,讲解了在Linux环境中直接编译的步骤,以及遇到问题的处理方法。最后,提到了编译出的镜像可以使用emulator进行运行和调试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

repo

安卓源码包含数百个git库, googole开发了 repo工具来管理安卓版本库。 repo 使用python对git进行了封装。

内核源码

AOSP源码中不包含内核源码,需要单独下载。

  1. common 通用的 linux内核源码
  2. msm 用于高通 MSM芯片的 linux内核源码
  3. goldfish 是用于安卓虚拟机的 linux内核源码

编译AOSP 能做什么

  1. 定制 Android 系统
  2. 将 Android 系统 刷入设备
  3. 将整个系统源码导入到 Android Studio 中
  4. 动态调试 Android 系统源码

其中第三条和第四条也可以不用编译源码来实现, 第三条

  • 只要有对应 Android 源码版本的 android.iml 和 android.ipr 两个文件就可以将源码导入到 Android Studio 中

第四条

  • 动态调试系统源码不一定非要导入整个系统源码进行调试。关于第三条和第四条的具体内容,我会在以后的内容中进行讲解。

编译系统概述

了解以下一些概念,会对 Android 编译系统有大概的了解。 Makefile Android 平台的编译系统,其实就是用 Makefile 写出来的一个独立项目。它定义了编译的规则,实现了 “自动化编译”,不仅把分散在数百个 Git 库中的代码整合起来、统一编译, 而且还把产物分门别类地输出到一个目录,打包成手机 ROM,还可以生成应用开发时所使用的 SDK、NDK 等。 因此,采用 Makefile 编写的编译系统࿰

### 正确配置 `.bashrc` 环境变量以支持 AOSP 源码编译AOSP 源码编译过程中,正确配置 `.bashrc` 文件中的环境变量是非常重要的一步。以下是详细的说明: #### 1. 修改默认 Shell 某些系统可能使用 `zsh` 或其他 shell,默认情况下这些 shell 可能无法完全兼容 AOSP 的构建脚本。因此建议切换回 `bash`。 可以通过以下命令更改用户的默认 shell: ```bash chsh -s /bin/bash $USER ``` 此操作会将当前用户的默认 shell 更改为 bash[^1]。 #### 2. 安装必要的 JDK 版本 AOSP 构建通常依赖特定版本的 OpenJDK(如 Java 8)。确保已安装正确的 JDK,并设置 JAVA_HOME 环境变量。 编辑 `.bashrc` 文件,在文件末尾添加以下内容: ```bash export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 export PATH=$JAVA_HOME/bin:$PATH ``` 这将把 OpenJDK 8 添加到系统的路径中[^1]。 #### 3. 设置 Python 默认版本 部分旧版 AOSP 构建工具需要 Python 2.x 而非 Python 3.x。如果系统默认为 Python 3,则需调整默认解释器。 可以在 `.bashrc` 中定义别名来解决这个问题: ```bash alias python=python2 ``` 或者更推荐的方式是直接设置 PYTHONHOME 和 PYTHONPATH: ```bash export PYTHONHOME=/usr/bin/python2 export PYTHONPATH=/usr/bin/python2 ``` 这样可以确保即使系统中有多个 Python 版本,也能优先调用所需的版本[^1]。 #### 4. 配置 Repo 工具镜像源 为了加速下载速度以及避免网络问题,可使用清华大学开源软件镜像站作为 repo 工具的替代源。同样是在 `.bashrc` 文件中加入以下行: ```bash export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo' ``` 完成以上修改后记得重新加载该配置文件使改动生效: ```bash source ~/.bashrc ``` 此外还需要单独获取并放置好 repo 命令本身以便后续初始化仓库时能够正常工作[^3]。 #### 5. 其他常用环境变量 对于一些高级选项或调试需求来说,还可以考虑增加更多自定义参数比如 CCACHE_SIZE 来启用缓存机制从而加快重复构建的速度等等[^4]: ```bash export USE_CCACHE=1 export CCACHE_DIR=~/.ccache export CCACHE_MAXSIZE=50G ``` 综上所述,通过合理地调整个人用户级别的启动脚本即`.bashrc`, 不仅可以让整个开发流程更加顺畅而且还能有效规避不少潜在的技术难题.
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值