在开发Android system中,我们经常要复制文件到bin、etc、lib等下面,这里把比较好的方法记录下,以便后面使用。
首先在Android product下面创建自己的copyfiles目录,,在这个目录下添加system目录和copyfiles.mk
copyfiles.mk内容如下:
copy_files := $(subst $(LOCAL_PATH)/,, \
$(filter-out %.mk,\
$(patsubst ./%,%, \
$(shell find $(LOCAL_PATH) -type f -name "*" -and -not -name ".*") \
)))
PRODUCT_COPY_FILES += $(foreach file,$(copy_files),\
$(LOCAL_PATH)/$(file):$(file))
然后在system目录创建你要复制的文件及所在目录,比如你要复制libtest.so到lib下,你的创建是这样的
mkdir lib;
cp libtest.so lib/
最后在你的product.mk中加入
$(call inherit-product-if-exists, device/youproduct/copyfiles/copyfiles.mk)
通过这个方法,你就可以不必一条一条命令放到produt.mk中了,直接复制到相应的目录,编译时脚本会遍历copyfiles的目录,从而把复制的文件加入到firmware中。