本文主要是介绍PRODUCT_COPY_FILES 客户配置无法覆盖的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
通常情况下,我们需要在各个客户配置目录下新建一个customer_xxx.mk来配置一个客户单独的属性、apk、文件等。
当在android源码下的device目录也存在同样的文件的时候,如果要让客户配置”覆盖”device目录下的文件,那需要将客户的customer_xxx.mk在拷贝对应文件之前include,否则无法”覆盖”,这里加了双引号的原因是它其实并没有覆盖,它是拷贝了第一个,第二个根本就没有去拷贝。
具体的原因是:我们知道makefile的规则是根据文件是否更新来选择是否执行编译动作。比如我要拷贝init.rc,假设现在out目录下是空的,这时候我编译,编译到第一句拷贝动作的时候系统将init.rc拷贝到root目录下,这时候的init.rc时间是比客户配置下的init.rc或者device目录下的init.rc都要新的,所以当执行到第二句拷贝的时候,由于root目录下的文件时间是更新的,所以不执行第二句文件拷贝。
至此,我们就可以知道为什么客户配置无法覆盖的问题了,是由于customer_xxx.mk放在了对应文件拷贝之后了。也是我们潜意识下导致该错误的,我们认为后面拷贝会覆盖前面的拷贝。。。 -_-。
这篇关于PRODUCT_COPY_FILES 客户配置无法覆盖的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!