• Android代码宏控制方案 【转】


    本文转载自:http://blog.sina.com.cn/s/blog_769500f001017ro6.html

    目前107分支上,在各项目projectConfig.mk中已添加项目宏以及客户宏,例如:
    QH_CUSTOM = songri
    QH_PROJECT = s100
     
    使用上述projectconfig.mk中定义的宏,实现宏控制代码控制方法如下:
     
    1、对于java代码:
    在common.mk中,根据上述宏定义添加property属性,如下。
    ifdef QH_PROJECT
    ifeq ($(strip $(QH_PROJECT)),s100)
        PRODUCT_PROPERTY_OVERRIDES += 
          ro.project.name=s100
    endif
     
    ifeq ($(strip $(QH_PROJECT)),s107)
        PRODUCT_PROPERTY_OVERRIDES += 
          ro.project.name=s107
    endif
    endif
     
    在java代码中可以通过获取property属性来实现控制不同项目的代码,例如:
    private static final boolean IS_PROJECT_S100 = SystemProperties.get("ro.project.name").equals("s100");
    if (IS_PROJECT_S100)
    {
    // project s100 code
    }
    else
    {
    // other code
    }
    107分支上,上述项目和客户的property属性已经定义,java代码中如需使用可直接引用。
     
    2、在makefile中
    可以直接使用 ifeq ifneq 判断来实现逻辑控制。
    如:
    ifeq ($(QH_PROJECT),s100)
    LOCAL_CFLAGS += -D QH_PROJECT_S100
    endif
     
    3、对于.c cpp .h中,
    在projectConfig.mk中定义宏开关之外,还需在自己的android.mk中定义宏,如上述第2步。
    然后直接使用android.mk中定义的宏进行控制,如:
    #ifdef QH_PROJECT_S100
    // code s100
    #else
    // other code
    #endif
  • 相关阅读:
    debug和release转载
    坐标系与基本图元(8)
    坐标系与基本图元(7)
    坐标系与基本图元(5)
    坐标系与基本图元(6)
    坐标系与基本图元(4)
    坐标系与基本图元(3)
    坐标系与基本图元(2)
    BZOJ 1090
    Xor
  • 原文地址:https://www.cnblogs.com/zzb-Dream-90Time/p/7375942.html
Copyright © 2020-2023  润新知