Android.bp快速入门
Posted xiangzhihong8
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android.bp快速入门相关的知识,希望对你有一定的参考价值。
一、Soong 编译系统
在 android 7.0 发布之前,Android 仅使用 GNU Make 描述和执行其构建规则。在Android系统级编译中,Make 构建系统得到了广泛的支持和使用,但它有一些缺点:编译缓慢、容易出错、无法扩展且难以测试,而Soong 构建系统正好提供了 Android build 所需的灵活性。
Soong 构建系统是在 Android 7.0 (Nougat) 中引入的,旨在取代 Make。它利用 Kati GNU Make 克隆工具和 Ninja 构建系统组件来加速 Android 的构建,Soong的编译流程图如下。
Soong编译系统下,原本打算输入是.bp文件,输出是.ninja文件,但是由于系统中的.mk文件还没有被完全消除掉,因此提供kati和ckati工具将.mk/Makefile文件转换为.ninja文件。.ninja成为编译系统的汇编文件,是不需要人为去修改的,相当于配置文件来调用gcc、java、clang等编译器去编译。
Soong编译系统的设计思想是消除.mk文件中的if/else等逻辑,使.bp文件只是一个简单的编译逻辑,这些复杂的选择配置逻辑应该放在更高层,比如使用更好调试的Python来编写。
二、Android.bp
Android.bp的出现就是为了替换Android.mk文件。bp跟mk文件不同,它是纯粹的配置,没有分支、循环等流程控制,不能做算数逻辑运算。如果需要控制逻辑,那么可以使用Android.mk或者Go语言进行
以上是关于Android.bp快速入门的主要内容,如果未能解决你的问题,请参考以下文章
Android Framework实战预制packages/apps下应用APK预制使用Android.bp方式
Android Framework实战预制packages/apps下应用APK预制使用Android.bp方式
Android Framework实战预制packages/apps下应用APK预制使用Android.bp方式
Android Framework实战预制packages/apps下应用APK预制使用Android.bp方式