在開發(fā)Android system中,我們經(jīng)常要復制文件到bin、etc、lib等下面,這里把比較好的方法記錄下,以便后面使用。
首先在Android product下面創(chuàng)建自己的copyfiles目錄,,在這個目錄下添加system目錄和copyfiles.mk
copyfiles.mk內(nèi)容如下:
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目錄創(chuàng)建你要復制的文件及所在目錄,比如你要復制libtest.so到lib下,你的創(chuàng)建是這樣的
mkdir lib;
cp libtest.so lib/
最后在你的product.mk中加入
$(call?inherit-product-if-exists,?device/youproduct/copyfiles/copyfiles.mk)
通過這個方法,你就可以不必一條一條命令放到produt.mk中了,直接復制到相應的目錄,編譯時腳本會遍歷copyfiles的目錄,從而把復制的文件加入到firmware中。