2013-01-17 14 views
9

Obiettivo: Voglio copiare multipla txt file in/system (di dispositivo Android) utilizzando Android.mkcopiare più file txt in/system usando Android.mk

miei risultati:

Possiamo copia file usando due approcci 1) Utilizza PRODUCT_COPY_FILES. Questo viene fatto da dispositivi// makefile.mk

es:

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) Utilizzando BUILD_PREBUILD

es:

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

per sopra per funzionare rendere l'immissione di mydata.txt in build/target/product/core.mk

La mia query specifica è: Ora posso copiare più file utilizzando il 2o approccio riscrivendo il codice sopra riportato uno dopo l'altro. Ma voglio usare il 2o approccio (BUILD_PERBUILD) per copiare più file txt senza riscrivere il codice per tutti i file.

1) Posso farlo con una sola chiamata $ (BUILD_PREBUILT)?

2) È possibile utilizzare BUILD_MULTI_PREBUILD per risolvere lo scopo? Come ?

risposta

12

Ok, ho trovato un trucco (che conoscevo esiste), che non stavo cercando ma ha funzionato e risolto il mio problema in un modo molto semplice.

È possibile eseguire comandi di shell nel file mk.

Quindi, se vuoi copiare più file in una volta sola, usa il seguente codice e inseriscilo nel tuo file mk.

Nel seguente scenario i file che ho bisogno di copiare sono presenti in file_folder (directory), che si trova nella stessa directory in cui si trova il mio file mk. E voglio copiare tutti i file presenti in file_folder in 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/) 

Questo ha funzionato bene. Quindi ora in tutto abbiamo 3 modi per farlo. Spero che possa aiutare qualcuno come me.

Problemi correlati