高通Android安卓编译服务器配置推荐与环境配置搭建
背景概述:
公司编译环境经过多年迭代升级,由最开始的每人一台安装了Ubuntu 16.04加4T机械的i7主机,到后面的装了Ubuntu 16.04加16T NVMe阵列、5950x CPU、128G内存的多用户主机,再到现在的Ubuntu 24.04加8T NVMe + 机械硬盘的Bcachefs混合磁盘阵列、9950X CPU、192G内存、多用户加容器化环境的主机。

编译服务器环境配置简述:
在Ubuntu 24.04 LTS系统的基础上,安装SSH(用于Shell终端和VSCode远程)、samba(用于文件共享)、git、repo、python2.7、ccache编译器缓存等基础服务;搭建BCachefs或btrfs文件系统存储池;再安装我们定制化的轻量容器方案,并在容器中安装好不同Ubuntu系统的环境以及相关的SDK所依赖的组件;通过用户管理脚本添加和配置多个开发者。
推荐使用BTRFS或BCachefs文件系统存储池,前者适用于全闪磁盘整列,性能更高;后者适用于混合磁盘阵列,在略微牺牲性能的情况下硬件成本更低。这两个文件系统都是COW高级文件系统,可以支持透明压缩、引用拷贝、文件快照等高级特性。利用透明压缩,可以将磁盘上的数据实时压缩,大多数情况下可以将存储到磁盘上的文件减少1/3体积,进而极大降低硬件成本,提高代码存储量。利用引用拷贝,可以在极少写入硬盘的情况下将文件进行快速拷贝,比如多个用户可以拷贝同一份.repo文件夹,经过引用拷贝的文件不会占用磁盘空间,拷贝速度也非常快,这样就可以极大缩短代码拉取时间并降低代码仓库服务器的压力。另外在某些涉及文件拷贝的编译环节中,也是可以加快速度和减低磁盘空间占用。比如高通高版本安卓SDK中涉及到的QSSI文件夹拷贝到TARGET文件夹中,如果使用以上文件系统并结合引用拷贝,所需的时间相比普通拷贝可以缩短至1/10,空间几乎减少一整个QSSI文件夹的容量。同样地,安装的ccache编译器缓存在配置引用拷贝后省去了耗时的拷贝过程,可以让Android C++的代码编译速度有数十倍的提升,最终全量编译Android14的时间甚至可以缩短到50分钟以内。
以上方案采用多用户设计,让每个用户共享使用容器环境。容器环境的加入使编译环境得到统一,使部署编译环境变得十分简单,只要安装上容器就已经完成了编译环境的部署。需要注意的是操作系统务必使用6.8内核及以下版本,6.12内核更新了加密算法接口会导致avbtools工具无法正常运行,毕竟在容器中的程序仍旧依赖主机内核的系统调用。此外不同用户之间拥有各自的用户权限,用户与用户之间文件访问存在写入隔离,保证了每个用户的代码安全。此外通过cgroup v2进一步管理和限制用户空间内存、IO、CPU等硬件资源的访问,再加上kernel memory watermark、BIOS配置等更加精细的底层优化,提升系统响应和安全。
编译服务器硬件配置简述:
处理器:AMD 9950X 或 EPYC 9654
内存:192G 或 384G 以上内存
硬盘:NVMe全闪阵列 或 bcachefs混合磁盘阵列
散热:液冷散热 或 专业机房机柜
其他:傲腾SDD用于安装操作系统和sawp空间
编译代码实测:
使用s-tui工具观察硬件工作

↑ CPP编译时服务器CPU使用情况

↑ 编译规则解析时服务器CPU使用情况
在液冷散热加持下,可以看到多线程编译时CPU主频可以保持在5.5Ghz,单线程编译时CPU主频可以保持在5.8Ghz
进入Ubuntu 16.04 LTS 容器后使用time指令测试整编耗时:

↑全量编译高通Android 14所需时间
定制化的容器方案进入非常方便,无需root权限,容器进入指令经过包装后0学习成本。全量编译A14所耗费时间47分钟,得益于主机使用了更新的Linux内核,在容器中编译的速度比原生使用Ubuntu 16.04的机器更快。
总结:
可以说硬件升级与软件环境升级极大提高了当前的工作流效率和硬件利用率。特别是多用户加容器化环境的组合,在同一台主机上就能支持从Android5 到 Android15的所有开发环境,并支持多名开发者同时使用互不影响。不论是高通的AP还是CP的编译环境,甚至是Linux版本,定制化的容器方案都能完美兼容运行。高版本Ubuntu系统自带的高版本内核也带来了更加完善的驱动和文件系统支持,充分挖掘硬件性能,降低硬件成本。
=================
2025/08/19 更新
当前环境方案已部署到EPYC 9654 (96C192T)384G内存的H3C通用服务器上,可以同时满足30-50人的开发需求,全量编译安卓14 SDK时间更是可以缩短至30分钟左右。本方案可以说是目前最先进、高效、便捷的安卓SDK开发环境整合方案。需要详细硬件配置或者对环境件搭建方案有需求的可以私信留言。

浙公网安备 33010602011771号