Android 使用ninja加速编译的方法

ninja的简介

随着Android版本的更迭,makefile体系逐渐增多,导致make单编模块的时间越来越长,每次都需要半个小时甚至更长时间,其原因为每次make都会重新加载所有mk文件,再生成ninja编译,此完整过程十分耗时,实际编译代码仅占其中的一小部分。

因此我们可以使用google提供的一种快速编译方式:ninja,使用ninja编译,基本上十几秒就能快速编完一个模块,但必须注意ninja编译不会重新加载mk文件,故只适用于修改已存在的代码文件的情况,如果涉及到文件的增减、目录的重构就必须用mm/make重新编译之后,才能使用ninja快速编译新的修改。

第一步:进行一次完整编译

source build/envsetup.sh

lunch xxxx-userdebug

./build.sh --dist

(或者make -j24)

第二步:使用ninja进行编译

source build/envsetup.sh

lunch xxxx-userdebug

prebuilts/build-tools/linux-x86/bin/ninja -f out/combined-xxxx.ninja <module_name> -j24

其中module_name为模块名或镜像名:bootimage、dtboimage、framework、Settings等

理论上所有的Makefile或者Android.mk中的module_name皆可使用ninja进行快速编译

举例如下:

prebuilts/build-tools/linux-x86/bin/ninja -f out/combined-sm6150.ninja bootimage -j24

prebuilts/build-tools/linux-x86/bin/ninja -f out/combined-sm6150.ninja dtboimage -j24

prebuilts/build-tools/linux-x86/bin/ninja -f out/combined-sm6150.ninja sepolicy -j24

prebuilts/build-tools/linux-x86/bin/ninja -f out/combined-sm6150.ninja Settings -j24

prebuilts/build-tools/linux-x86/bin/ninja -f out/combined-sm6150.ninja framework -j24

其他常用命令

printconfig -- 打印当前配置清单(lunch xxx)

make bootimage -j16

make module_name -j16

m 编译从根目录开始的所有module

mm 进到module目录进行编译,目录下要有Android.mk

mmm 加指定的路径参数,指定目录下要有Android.mk

croot -- cd to the top of the tree

make clean-<module_name> 例如:make clean-libutils、make clean-charger

make clean 删除out目录

Android 使用ninja加速编译的方法_ninja编译-CSDN博客

相关推荐
私人珍藏库11 小时前
[Android] PeakFinder AR v4.8.89 (山峰全景识别+增强现实山峰查看器)
android·人工智能·智能手机·ar·工具·软件
researcher-Jiang11 小时前
高性能计算之OpenMP——超算习堂学习1
android·java·学习
alexhilton12 小时前
Kotlin DSL深度解析:从Gradle脚本到构建你自己的DSL
android·kotlin·android jetpack
烽火聊员12 小时前
查看Android Studio错误日志
android·ide·android studio
星空语18 小时前
音频001_Android+Linux车载/手机音频全链路分层架构图
android·linux·音视频
CyL_Cly18 小时前
解决官网下载慢!Android Studio 最新版网盘下载
android·ide·android studio
智塑未来18 小时前
鸿蒙系统对比安卓、iOS,核心优势是什么?
android·ios·harmonyos
AI刀刀18 小时前
豆包智能体对话导出后,如何构建长期归档与高效检索体系?
android·人工智能·word·excel·ai导出鸭
初雪云20 小时前
iOS 上架入门:证书、描述文件、IPA 上传到底是什么关系?
android·ios·自动化·产品经理·iphone
玩机达人881 天前
一加12/Ace5/Ace3pro手机ColorOS16降级回锁BL熔断变黑砖怎么办
android·智能手机·电脑