使用Android.mk复制/ system中的多个txt文件

Aks*_*hay 9 android makefile android-ndk android-source

目标:我想使用Android.mk在/ system(Android设备)中复制多个 txt文件

我的发现:

我们可以使用两种方法复制文件1)使用PRODUCT_COPY_FILES.这是从devices// makefile.mk完成的

例如:

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
Run Code Online (Sandbox Code Playgroud)

2)使用BUILD_PREBUILD

例如:

##############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)
Run Code Online (Sandbox Code Playgroud)

为了上面的工作,在build/target/product/core.mk中输入mydata.txt

我的具体查询是:现在我可以使用第二种方法复制多个文件,一个接一个地重写上面的代码.但我想使用第二种方法(BUILD_PERBUILD)来复制多个txt文件而无需为所有文件重写代码.

1)我可以只使用一个包含$(BUILD_PREBUILT)的呼叫吗?

2)BUILD_MULTI_PREBUILD可以用来解决目的吗?怎么样 ?

Aks*_*hay 12

好吧,我发现了一个黑客(我知道存在),我不是在寻找它,但它起作用并以一种非常简单的方式解决了我的问题.

您可以在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/)
Run Code Online (Sandbox Code Playgroud)

这很好.所以现在我们有三种方法可以做到这一点.希望它会帮助像我这样的人.