目标:我想复制multiple使用 Android.mk 在 /system(Android 设备)中创建 txt 文件
我的发现:
我们可以使用两种方法复制文件
1) 使用 PRODUCT_COPY_FILES。这是通过 devices//makefile.mk 完成的
ex:
PRODUCT_COPY_FILES := \
frameworks/base/data/etc/telephony.gsm.xml:system/etc/permissions/telephony.gsm.xml \
some/other/sourc/file:some/destination \
some/other/sourcefile2: some/destination
2)使用BUILD_PREBUILD
ex :
##############copy txt file##################
include $(CLEAR_VARS)
#LOCAL_MODULE := mydata.txt
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_PATH := $(TARGET_OUT)/myfolder
LOCAL_SRC_FILES := mydata.txt
include $(BUILD_PREBUILT)
为了使上述工作正常,请在 build/target/product/core.mk 中输入 mydata.txt
我的具体查询是:
现在我可以通过重写上面的代码使用第二种方法复制多个文件
一个接一个地。但我想使用第二种方法(BUILD_PERBUILD)复制多个txt文件,而无需为所有文件重写代码。
1)我可以只用一个 include $(BUILD_PREBUILT) 调用来做到这一点吗?
2)可以使用BUILD_MULTI_PREBUILD来解决目的吗?如何 ?
好吧,我发现了一个黑客(我知道存在),我没有在寻找它,但它有效
并以一种非常简单的方式解决了我的问题。
您可以在 mk 文件中运行 shell 命令。
因此,如果您想一次复制多个文件,请使用以下代码并将其放入您的 mk 文件中。
在以下场景中,我需要复制的文件存在于 file_folder (目录)中,该文件夹与我的 mk 文件位于同一目录中。我想将 file_folder 中存在的所有文件复制到 system/file_folder。
#create a directory in /system/
$(shell mkdir -p $(TARGET_OUT)/file_folder/)
#copy stuff
$(shell cp $(LOCAL_PATH)/file_folder/* `pwd`/$(TARGET_OUT)/file_folder/)
这很好用。所以现在我们总共有 3 种方法可以做到这一点。希望它能帮助像我这样的人。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)