• android源码编译时拷贝替换指定文件


    由于要做版本定制,某些版本的资源文件等(例如style.xml)需要不同的配置,但是android的编译开关无法在xml里使用,于是想到了编译时根据不同的编译开关编译不同的文件,如下:

    1.建立A.xml文件,当编译开关OEM_CUSTOMER_SUPPORT=22时编译将该文件拷贝到指定目录。

    建立B.xml文件,当编译开关OEM_CUSTOMER_SUPPORT不等于22时,将该文件拷贝到指定目录。

    2.编写拷贝脚本文件myDefine.sh,内容为:

    #!/bin/bash
    #
    if [ $OEM_CUSTOMER_SUPPORT -eq 22 ] ; then
    cp packages/apps/xxx/config/A.xml packages/apps/xxx/res/values/styles.xml
    else
    cp packages/apps/xxx/config/B.xml packages/apps/xxx/res/values/styles.xml
    fi

    3.将拷贝脚本文件myDefine.sh加入到系统编译build/core/main.mk

    ......

    # A helper goal printing out install paths
    .PHONY: GET-INSTALL-PATH
    GET-INSTALL-PATH:
    @$(foreach m, $(ALL_MODULES), $(if $(ALL_MODULES.$(m).INSTALLED),
    echo 'INSTALL-PATH: $(m) $(ALL_MODULES.$(m).INSTALLED)';))

    else # ONE_SHOT_MAKEFILE

    ifneq ($(dont_bother),true)
    #
    # Include all of the makefiles in the system
    #

    # Can't use first-makefiles-under here because
    # --mindepth=2 makes the prunes not work.

    $(shell chmod 777 packages/apps/PeepHole/config/PeepHoleStyle.sh)
    $(shell packages/apps/PeepHole/config/PeepHoleStyle.sh)

    ......

    粗体部分为新加内容,第一句是使得sh脚本有读写执行的权限,第二句是真正的执行

  • 相关阅读:
    mysql修改数据库的存储引擎(InnoDB)
    如何查看进程/服务是否启动
    Spark Streaming 入门
    Graphlab create的基本使用
    构建房屋预测回归模型
    构建应用深层特征的图像检索系统
    构建商品评价的分类器
    Elastic Static初识(01)
    《Linux就该这么学》笔记(二)
    《Linux就该这么学》笔记(一)
  • 原文地址:https://www.cnblogs.com/suxiaoqi/p/7299643.html
Copyright © 2020-2023  润新知