2013-01-17 56 views
9

目的複製多個txt文件在/系統:我想複製多個 txt文件在/系統(Android設備)的使用Android.mk使用Android.mk

我的發現:

我們可以使用兩種方法複製文件 1)使用PRODUCT_COPY_FILES。這是從設備做//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 

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) 

以上工作做出mydata.txt進入in build/target/product/core.mk

我的具體查詢爲: 現在我可以使用第二種方法複製多個文件,將上面的代碼 一個接一個地重寫。但我想用第二種方法(BUILD_PERBUILD)複製多個txt文件,而不用重寫所有文件的代碼。

1)我可以做只有一個包括$(BUILD_PREBUILT)調用嗎?

2)BUILD_MULTI_PREBUILD可以用來解決目的嗎?怎麼樣 ?

回答

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/) 

這工作得很好。所以現在我們有三種方法來做到這一點。希望它能幫助像我這樣的人。