本文转载自: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

最新文章

  1. 浅谈Android中的startActivityForResult和setResult方法
  2. VTK初学一,a Mesh from vtkImageData
  3. Linux磁盘及文件系统管理
  4. 手把手教你Linux服务器集群部署.net网站 - Linux系统安装和设置
  5. IOS 作业项目(4)步步完成 画图 程序(上)
  6. STM32的Cortex-M3核与ARM7有何区别?哪个性能更强?
  7. Python之Python Imaging Library
  8. php修改排序,上移下移
  9. Hadoop(十二)MapReduce概述
  10. LeetCode---Container With Most Water(11)
  11. 英语口语练习系列-C05-水电
  12. ububtu下安装配置搜狗输入法
  13. 【转】每天一个linux命令(5):rm 命令
  14. VC 判断网络连接函数
  15. Codeforces Round #334 (Div. 1) B. Moodular Arithmetic
  16. snmp获取设备相关管理信息
  17. Django和Ajax
  18. html开发基础
  19. Perl 获取时间函数
  20. 9-queue

热门文章

  1. vs2008 启动IE浏览器 出现DW20.exe占用大量cpu 服务器iis 异常调试
  2. android AIDL示例代码(mark下)
  3. ANE打包
  4. 09--c++ 类的继承与派生
  5. What is the difference between PKCS#5 padding and PKCS#7 padding
  6. tomcat ider配置
  7. jsTree checkbox plugin使用笔记
  8. Python批处理图片尺寸
  9. java实现简单窗体小游戏----球球大作战
  10. PAT_A1132#Cut Integer