环境搭建和通用技术随记1

tech2024-06-12  66

环境搭建和通用技术随记1

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

环境搭建和通用技术随记1 安卓ninja快速编译


安卓ninja快速编译

从 Android 7 开始,Android 源码编译时默认使用 Ninja,编译时,会先把 makefile 和 bp 转换成 ninja 再进行编译。这个转换过程非常慢(需要遍历处理所有关联的 makefile、bp 文件),即使只是通过 mm 或 mmm 编译某个模块,也会有很多因素触发 ninja 文件的重新生成在第一次执行mm之后。 安卓本身源码中已经自带ninja,路径在./prebuilts/build-tools/linux-x86/bin/ninja ninja 使用 -h可查看帮助文档 通常用法举例:./prebuilts/build-tools/linux-x86/bin/ninja -f /home/mi/android-source-code/j11-dev-all/out/build-lmi-target-files-package.ninja libaudiopolicymanager -f 指定ninja输入文件 然后接需要编译的模块名 如果全编译可不加

若模块使用的是 Android.mk:查找 LOCAL_PACKAGE_NAME 或 LOCAL_MODULE 等对应的值 若模块使用的是 Android.bp:查找 module 中 name 对应的值

8250平台上, ninja会报错 : ninja: error: ‘kati_always_build’, needed by ‘com.qti.chi.override’, missing and no known rule to make it 目前的解决方法是, 在 ./out/build-XXXXX.ninja 文件开始, 加入行: build kati_always_build: phony

最新回复(0)