Android编译

Android编译系统-下

2017-10-09  本文已影响0人  董成鹏

上面我们提到main.mk是我们编译流程的入口。那么要把整个Android编译完成,这个main.mk肯定include了很多其他的makefile。

为了证实我们这个猜想,我们在main.mk中搜索include关键字,看一下它都include了哪些makefile

从上面可以看到,如果我们要集成google的GMS包,要放在vendor目录下。

definitions.mk的主要作用是定义一些我们在Android.mk中要使用到的方法,比如all-subdir-makefiles这个方法就是在definitions.mk中定义的。

下面来讲一下config.mk,这是Android编译系统中很重要的一个makefile。

这个config.mk主要做三方面的工作:

也就是说会从device和vendor目录6层之内去寻找AndroidProduct.mk,这个AndroidProduct.mk有什么作用呢?

AndroidProdcut.mk中定义了编译过程中需要的各种信息,比如输出路径Product_Out等。

从上面可以看出,会从vendor和devicem目录下的四层文件夹之内寻找对应Target_Device的BoardConfig.mk,因为BoardConfig是对应板级配置,所以必须和Device对应。

现在我们已经知道了要编译的产品,对应的Device已经板级配置,已经安装路径,和所有的Module(Android.mk),接下来就是正常的编译过程了。

我们以一个例子来结束

假设我们公司叫做 大米,Product名字叫做mi6,Device那么叫做best
,那么lunch菜单应该是mi6_best-user或者mi6_best-userdebug.
那怎么把我们的产品加到编译系统中呢?

这样就把我们自己的产品添加到编译系统中了。

上一篇 下一篇

猜你喜欢

热点阅读