Android10的Soong编译系统
一、概述
Android 10的Build系统叫Soong,Soong之前,Android的编译系统是Make——意思是基于Makefile文件的编译系统。Soong大概在Android 7就崭露头角了。Soong的宏伟目标是干掉Make,但到Android 10,这个看起来比较容易的小目标也还未完全实现。
这个是Soong的编译流程图:
Soong编译系统下,原本打算输入是.bp文件,输出是.ninja文件,但是由于系统中的.mk文件还没有被完全消除掉,因此提供kati和ckati工具将.mk/Makefile文件转换为.ninja文件。.ninja成为编译系统的汇编文件,是不需要人为去修改的,相当于配置文件来调用gcc、java、clang等编译器去编译。
Soong编译系统的设计思想是消除.mk文件中的if/else等逻辑,使.bp文件只是一个简单的编译逻辑,这些复杂的选择配置逻辑应该放在更高层,比如使用更好调试的Python来编写。
参考优秀博文:
二、补充
1. lunch的板子
COMMON_LUNCH_CHOICES := \ //AndroidProducts.mk myboard-userdebug \ myboard-user \
posted on 2020-02-04 22:40 Hello-World3 阅读(3403) 评论(0) 编辑 收藏 举报