首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Android.bp与Android.mk的区别

Android.bp与Android.mk的区别
EN

Stack Overflow用户
提问于 2018-09-18 18:46:17
回答 1查看 7.9K关注 0票数 8

在Android框架代码中,我们可以看到Android.bp和Android.mk文件。这两个文件有什么需要?根据文档,宋代构建系统使用.bp文件。当我们进行构建时,将执行哪个文件?.mk还是.bp?

EN

回答 1

Stack Overflow用户

发布于 2019-02-03 02:19:30

Soong是一个针对安卓系统的构建系统,旨在取代旧的make-based build system。Soong读取Android.bp文件,这些文件以类似于Bazel的语法定义模块。Soong本身是在Blueprint框架之上用Go编写的,而Go框架又使用Ninja作为后端。忍者是为高效率而设计的,特别是对于增量构建。

因为Android是一个大项目,所以迁移到Soong/Android.bp需要一些时间。在过渡期间,两种格式都受支持,Soong用于Android.bpKati用于Android.mk。一个标准的构建可以同时运行这两个版本。Android.mk文件中的模块可以依赖于Android.bp文件中的模块,但不能以其他方式依赖。

Android.bp的一个重要区别是没有显式的if语句来提高性能。虽然Android.mk文件可以包含对任意环境变量的ifeq检查,但Android.bp格式仅允许区分预定义的情况,如处理器体系结构或调试/发布构建(reference)。自定义大小写的区别必须在Go (reference)中单独定义。

由于设计上的差异,Android.mkAndroid.bp的自动转换是不可行的,尽管有一个名为androidmk的工具可以将简单的Android.mk文件(例如,没有if语句)转换为Android.bp

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52384832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档