Android——编译体系中的【PRODUCT_COPY_FILES】【ALL_PREBUILT】【BUILD_PREBUILT】



转载地址:http://blog.csdn.net/jscese/article/details/40615801

一.PRODUCT_COPY_FILES :

这个变量就是用来标记Copy操作的,比较常见的形式如下:

#jscese cp 3g script and 
PRODUCT_COPY_FILES += \
    $(DEVICE_SOURCES)/3g-script/ip-up-datakey:system/etc/ppp/ip-up-datakey \
    $(DEVICE_SOURCES)/3g-script/ip-down-datakey:system/etc/ppp/ip-down-datakey \
    $(DEVICE_SOURCES)/3g-script/init.gprs-pppd:system/etc/ppp/init.gprs-pppd \
    device/sample/etc/apns-full-conf.xml:system/etc/apns-conf.xml \
    #external/usb-modeswitch/usb_modeswitch.d:system/etc/usb_modeswitch.d
#PRODUCT_COPY_FILES += \  
    #$(DEVICE_SOURCES)/3g-script/ip-down-datakey:system/etc/ppp/ip-down-datakey 
    
#end

可以看到 格式<source file>:<dest file> 中间用 “ :  ” 隔开!

这里需要注意一点, PRODUCT_COPY_FILES 不能在 Android.mk 中使用 添加新的Copy 项!使用 PRODUCT_COPY_FILES 应该算是最常用的Copy File 的方法了,一般可直接加在 device.mk 中!

还有PRODUCT_COPY_FILES不能copy apk文件。


二 .copy_to copy_from ALL_PREBUILT

这个方法用在Android.mk中,可参考 /system/core/rootdir/Android.mk:

copy_from += etc/init.goldfish.sh

copy_to := $(addprefix $(TARGET_OUT)/,$(copy_from))
copy_from := $(addprefix $(LOCAL_PATH)/,$(copy_from))

$(copy_to) : PRIVATE_MODULE := system_etcdir
$(copy_to) : $(TARGET_OUT)/% : $(LOCAL_PATH)/% | $(ACP)
    $(transform-prebuilt-to-target)

ALL_PREBUILT += $(copy_to)

ALL_PREBUILT  是一种过时的机制,已经不让用于copy新的文件了,推荐使用PRODUCT_COPY_FILES  !


三 .BUILD_PREBUILT :

这种方式把文件当成编译项目,在Android.mk中copy一个file:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS) \
LOCAL_MODULE := usb_modeswitch.conf \
LOCAL_MODULE_CLASS := ETC  \
LOCAL_MODULE_PATH := $(TARGET_OUT)/etc \
LOCAL_SRC_FILES :=$(LOCAL_MODULE)  \
include $(BUILD_PREBUILT) 
上面的就是copy usb_modeswitch.conf 文件到 OUT 下面的 etc目录,这个目录常用来存放配置相关文件。

上面所有的都说的是Copy File  但是如果需要 Copy 一个文件目录下所有就需要另做操作了!

这里我们需要把这个当成一个module来处理 写进 PRODUCT_PACKAGES, 这就代表这些Module 无论如何都会被编译安装进系统。


  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值