AOSP Ubuntu编译环境搭建
一、搭建环境Liunx系统Ubuntu18.04 Android系统12现在open-vm-tools推荐open-vm-tools-desktop能够实现分辨率自适应可以直接通过apt安装速度快只有13M一键安装安装流程换源换成国内aliyun或者清华sudo apt update sudo apt-get install open-vm-tools-desktop -y给Ubuntu增加虚拟内存Linux 的交换分区swap或者叫内存置换空间swap space是磁盘上的一块区域可以是一个分区也可以是一个文件或者是他们的组合。交换分区的作用是当系统物理内存吃紧时Linux 会将内存中不常访问的数据保存到 swap 上这样系统就有更多的物理内存为各个进程服务而当系统需要访问 swap 上存储的内容时再将 swap 上的数据加载到内存中也就是常说的 swap out 和 swap in。首先查看是否已经存在交换空间终端输入free -m我们安装的Ubuntu默认有2G大小的swap空间使用以下命令查看swap详情swapon -s停用交换文件sudo swapoff /swapfile删除文件sudo rm /swapfile删除后继续创建创建swap交换空间新建swap空间以16G为例,创建文件sudo fallocate -l 16G /swapfile这里我们还是命名为“swapfile”当然你也可以随意写查看文件信息ls -lh /swapfile设置文件权限sudo chmod 600 /swapfile挂载sudo mkswap /swapfile激活启用sudo swapon /swapfile再次查看内存使用情况free -m准备编译环境安装jdk8sudo apt-get update sudo apt-get install openjdk-8-jdk安装依赖包Ubuntu18.04系统以上sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g-multilib libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig//不知道哪些有用哪些没用网上都是这么写的索性都安装了 sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g-multilib sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386 sudo apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 sudo apt-get install dpkg-dev libsdl1.2-dev libesd0-dev sudo apt-get install git-core gnupg flex bison gperf build-essential sudo apt-get install zip curl zlib1g-dev gcc-multilib g-multilib sudo apt-get install libc6-dev-i386 sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4 sudo apt-get install lib32z-dev ccache sudo apt-get install libssl-dev二、下载代码安装 Repo下载Repo前先安装 curl 库sudo apt-get install curl下载好 curl 库后设置清华源下载 Repo 然后给repo文件添加可执行权限sudo apt-get install repo设置 repo 镜像源自动更新export REPO_URLhttps://mirrors.tuna.tsinghua.edu.cn/git/git-repo/初始化 repo安装gitsudo apt-get install git配置 Git没有安装 git 要先安装 git引号里面填自己设置的用户和邮箱git config --global user.name *** git config --global user.email ***查看一下Git是否配置成功git config --global --list下载源码直接下载Git配置完成后创建工作目录mkdir ~/Android_12_AOSP cd ~/Android_12_AOSP运行 repo init 以获取最新版本的 Repo并指定版本使用清华源repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-12.1.0_r5最后同步代码repo sync -j8中断报错清理后重新执行repo forall -c git clean -fd下载内核源码AOSP源码中并不包括内核源码需要单独下载内核源码有很多版本比如common是通用的Linux内核msm是用于使用高通MSM芯片的Android设备goldfish是用于Android模拟器的内核源码这里以goldfish为例。和下载AOSP源码一样我们需要先建立工作目录 mkdir kernel cd kernel使用清华的镜像git clone https://aosp.tuna.tsinghua.edu.cn/kernel/goldfish.git完成后kernel目录中会生成一个goldfish文件夹进入goldfish目录并使用git命令cd goldfish git branch -a这时会列出有哪些内核的版本分支可以下载这里选择下载goldfish 3.4版本git checkout remotes/origin/android-goldfish-3.4三、编译源码编译源码时处理器可以设置多一些设置Ubuntu处理器数量Ubuntu关机在VirtualBox主页进入Ubuntu右侧设置–系统–处理器选项设置处理器数量设置最大处理器数量的一半或更高也不要设置最大容易卡主我设置了一半。源码整编进入到源码根目录cd Android_12_AOSP/在根目录下输入以下指令source build/envsetup.shlunch选择准备编译的版本,根据自己的需要选择版本比如我选择的是sdk_phone_x86_64lunch sdk_phone_x86_64开始编译指定的线程数一般应该遵从cpu内核数的2倍这个规律可以通过cat /proc/cpuinfo查看相关cpu信息make -j6 21 | tee build.log编译成功后在 Android 模拟器中运行 AVD 系统映像emulator

相关新闻

Skill-Agent 如何实践:从概念到落地的完整指南

Skill-Agent 如何实践:从概念到落地的完整指南

引言:为什么需要 Skill-Agent? 在当今快速发展的 AI 应用领域,单一、庞大的通用模型往往难以应对复杂、多变的业务场景。Skill-Agent(技能智能体)架构应运而生,它通过将复杂任务分解为一系列可复用、可编排…

2026/7/21 12:36:14 阅读更多 →
ESP32 TCP OTA升级方案:局域网稳定传输与AES-256加密实现

ESP32 TCP OTA升级方案:局域网稳定传输与AES-256加密实现

这次我们来看一个ESP32的TCP OTA升级方案。对于嵌入式开发者来说,OTA(空中升级)功能是产品化必备的能力,而TCP协议作为最基础的网络通信方式,在局域网环境下的OTA升级具有稳定性高、实现简单的优势。 urbanze开源的es…

2026/7/20 20:41:40 阅读更多 →
暗黑破坏神2存档编辑器:5步轻松修改你的游戏角色数据

暗黑破坏神2存档编辑器:5步轻松修改你的游戏角色数据

暗黑破坏神2存档编辑器:5步轻松修改你的游戏角色数据 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 你是否曾经在暗黑破坏神2中花费数小时刷装备,却发现想要的build始终无法成型?或者你的游戏…

2026/7/21 2:22:49 阅读更多 →

最新新闻

C#工业上位机开发实战:从架构设计到性能优化

C#工业上位机开发实战:从架构设计到性能优化

1. 工业上位机开发概述与C#技术选型工业上位机作为连接底层设备(如PLC、传感器、工业机器人)与操作人员的桥梁,在现代智能制造中扮演着核心角色。与传统IT系统不同,工业上位机需要处理实时数据采集、设备控制指令下发、异常报警等…

2026/7/21 12:35:15 阅读更多 →
嵌入式GPS解析利器:深入解析Minmea轻量级NMEA 0183库

嵌入式GPS解析利器:深入解析Minmea轻量级NMEA 0183库

嵌入式GPS解析利器:深入解析Minmea轻量级NMEA 0183库 【免费下载链接】minmea a lightweight GPS NMEA 0183 parser library in pure C 项目地址: https://gitcode.com/gh_mirrors/mi/minmea Minmea是一款专为资源受限嵌入式系统设计的GPS NMEA 0183解析库&a…

2026/7/21 12:35:15 阅读更多 →
4步实施框架:如何让开源项目高效适配你的开发流程

4步实施框架:如何让开源项目高效适配你的开发流程

4步实施框架:如何让开源项目高效适配你的开发流程 【免费下载链接】andrej-karpathy-skills A single CLAUDE.md file to improve Claude Code behavior, derived from Andrej Karpathys observations on LLM coding pitfalls. 项目地址: https://gitcode.com/Git…

2026/7/21 12:35:15 阅读更多 →
告别网页播放!如何用embyToLocalPlayer打造你的专属本地观影系统

告别网页播放!如何用embyToLocalPlayer打造你的专属本地观影系统

告别网页播放!如何用embyToLocalPlayer打造你的专属本地观影系统 【免费下载链接】embyToLocalPlayer etlp - Emby/Jellyfin 调用外部本地播放器,并回传播放记录。适配 Plex。 项目地址: https://gitcode.com/gh_mirrors/em/embyToLocalPlayer 你…

2026/7/21 12:35:15 阅读更多 →
如何使用Buzz实现本地音频转录与智能字幕生成:完全离线的高效解决方案

如何使用Buzz实现本地音频转录与智能字幕生成:完全离线的高效解决方案

如何使用Buzz实现本地音频转录与智能字幕生成:完全离线的高效解决方案 【免费下载链接】buzz Buzz transcribes and translates audio offline on your personal computer. Powered by OpenAIs Whisper. 项目地址: https://gitcode.com/GitHub_Trending/buz/buzz …

2026/7/21 12:35:15 阅读更多 →
技术革命:APK Installer突破性实现Windows原生Android应用部署架构

技术革命:APK Installer突破性实现Windows原生Android应用部署架构

技术革命:APK Installer突破性实现Windows原生Android应用部署架构 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer APK Installer通过创新的Windows原生安装…

2026/7/21 12:34:13 阅读更多 →

日新闻

Octane Render与C4D汉化版安装与优化指南

Octane Render与C4D汉化版安装与优化指南

1. Octane Render与C4D的黄金组合:为什么选择这个方案?在三维创作领域,渲染器的选择往往决定了作品的最终呈现质量和工作效率。作为Cinema 4D(C4D)用户,Octane Render的GPU加速特性与实时预览功能&#xff…

2026/7/21 0:00:19 阅读更多 →
GPMC接口设计:异步/同步模式与多路复用配置实战

GPMC接口设计:异步/同步模式与多路复用配置实战

1. GPMC接口设计:从硬件连接到软件配置的全局视角在嵌入式系统开发中,尤其是基于TI Sitara系列如AM263x这类高性能微控制器的项目里,外部存储器的扩展几乎是绕不开的一环。无论是存放大量非易失性代码的NOR Flash,还是作为高速数据…

2026/7/21 0:00:19 阅读更多 →
UE5 GAS框架下RPG被动技能系统:从核心原理到实战实现

UE5 GAS框架下RPG被动技能系统:从核心原理到实战实现

1. 项目概述:UE5 GAS RPG被动技能的核心价值在UE5里用GAS(Gameplay Ability System)做RPG游戏,主动技能像是你手里的武器,按一下打一下,逻辑直接,反馈也快。但被动技能,它更像是你身…

2026/7/21 0:00:19 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/21 8:48:31 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/21 5:34:47 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/21 8:25:39 阅读更多 →

月新闻