做cmcc分支,我们需要将heathd的唤醒间隔设置短一点,但是又在一个主分支上着就需要做宏。

具体我们可以编译的时候带参数:

make BUILD_MASS_PRODUCTION=false

后面参数的意思就是不是量产分支,这样我们就认为是cmcc分支。

一、局部修改

我们的第一反应可以在heathd的Android.mk中修改如下:

ifeq ($(strip $(BUILD_MASS_PRODUCTION)),false)
LOCAL_CFLAGS += -DCONFIG_IS_CMCC
endif

这样在heathd中,就定义了CONFIG_IS_CMCC这个宏了。

在healthd.cpp的修改如下:

#ifdef CONFIG_IS_CMCC
#define DEFAULT_PERIODIC_CHORES_INTERVAL_SLOW (60 * 10 * 6)
#else
#define DEFAULT_PERIODIC_CHORES_INTERVAL_SLOW (60 * 10)
#endif

二、全局修改

这样修改就可以了,但是cmcc分支的宏应该是全局的,而不是每修改一次就在修改的Android.mk中增加LOCAL_CFLAGS。

于是我们可以在common下的device.mk中修改如下:

ifeq ($(BUILD_MASS_PRODUCTION),true)MASS_PRODUCTION := true
elseMASS_PRODUCTION := falseGLOBAL_FEATURE_CFLAGS += -DCONFIG_IS_CMCC
endif

加入GLOBAL_FEATURE_CFLAGS的话就是全局的CFLAGS了,也就是在所有的c代码中都可以使用CONFIG_IS_CMCC这个宏了。

而java中要做宏的话怎么办,

PRODUCT_PROPERTY_OVERRIDES += \ro.build.mass.production=$(MASS_PRODUCTION)

java的话我们通过属性了。

三、注意

但是有一点需要注意上面在common下的device.mk中为GLOBAL_FEATURE_CFLAGS加flag,要注意后面的mk文件会不会把GLOBAL_FEATURE_CFLAGS 这个变量清除,如果清除我们要在清除那个mk文件后面加这个操作。

还有一点,java的属性是否生效可以用getprop命令查看,一般需要make clean后,在make才生效。GLOBAL_FEATURE_CFLAGS 的话是一个编译项,只要编译就生效。




android编译做cmcc分支宏相关推荐

  1. Android 编译之make基础(转)

    Android 编译之make基础 原文链接 qiuxintai 0.498 2020.10.14 18:52:40 字数 13,246 阅读 2,631 引言 做android系统相关的开发已经有几 ...

  2. Android 编译过程介绍,Android.mk 和 Android.bp 分析, 在源码中编译 AndroidStudio 构建的 App

    目录 一.Android 编译 1. 编译流程 2. Soong 介绍 3. build.sh 二.Android.mk 解析 三.Android.bp 解析 1. 模块类型 2. 模块属性 四.An ...

  3. Android编译流程

    目录 一.编译流程 1.初始化编译环境 2.选择编译平台 3.开始编译 二.Soong工具 1.Soong工作原理 2.转换关系 三.make流程 1.编译开端main.mk 2.编译配置config ...

  4. android编译全过程

    android编译全过程 (2011-06-04 15:27) 标签:  android编译  android 模块编译,mm 命令 如果你只需要修改某一个模块的内容,但是却每次都要执行make, 最 ...

  5. android 编译主机,Android】源码编译 ---zzz

    问题解决 参考 1)/bin/bash: prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcc: 权限不够 解决:chmod a+x ...

  6. Android编译默认英语,Android 编译系统 (一)

    1.Makefile & Android build system 在进行讲述Android编译系统之前,应该先了解一下编译时所使用的Makefile,或者说复习下这方面的知识,这样才能更好的 ...

  7. [Android编译(二)] 从谷歌官网下载android 6.0源码、编译并刷入nexus 6p手机

    1 前言 经过一周的奋战,终于从谷歌官网上下载最新的Android 6.0.1_r62源码,编译成功,并成功的刷入nexus6p,接着root完毕,现写下这篇博客记录一下实践过程. 2 简介 自己下载 ...

  8. 美图Android编译速度优化实践指南

    分享嘉宾:张仙华 美图 资深开发工程师 分享嘉宾:张仙华,美图秀秀android团队资深研发工程师,负责编译加速.性能优化.架构设计等公共基础相关工作 导读:本文的主题是美图秀秀的Android编译速 ...

  9. Android编译及编译脚本、Android构建基础学习笔记

    Android编译及编译脚本.Android构建基础学习笔记 Android编译及编译脚本 概述 Android.mk转换成Android.bp 例子(简单Android.mk文件转Android.b ...

最新文章

  1. python语言编程环境-python语言开发搭建电脑环境的方法
  2. access mysql 同步_使ACCESS数据库保持同步
  3. php 转化数字,php实现中文转数字
  4. Docker_容器命令
  5. 一眼看穿的最佳图像标记工具!
  6. python27.dll引起的appcrash_python27.dll错误代码126怎么解决
  7. PHP从零开始--字段修饰符数据操作SQL语言
  8. 最优化课堂笔记06-无约束多维非线性规划方法(含重点)
  9. 2-10 就业课(2.0)-oozie:9、oozie与hue的整合,以及整合后执行MR任务
  10. greenplum 查询出来的数字加减日期_POLA宝丽美白精华怎么查看生产日期保质期?保质期时间是几年的?查批号在哪里查?...
  11. iphone编译警告
  12. 滴滴顺风车回归倒计时!
  13. Mysql 电商常用的时间操作(当天,昨天,7天,30天,半年,全年,季度等等)...
  14. Using WIN32 calling convention 阅读笔记
  15. 程序员眼中的统计学(3)】概率计算:把握机会
  16. 2021非科班生的Java面试之路,java思维导图笔记
  17. 盖茨自说不善招聘、管理:善于“借力”
  18. XYIXY.COM短网址在线生成,快速、稳定、永久有效,免费开放网址缩短API接口。...
  19. 开发一个基于Dalvik字节码的相似性检测引擎,比较同一款Android应用程序的不同版本之间的代码差异(二)
  20. separator path php,php常量 DIRECTORY_SEPARATOR 和 PATH_SEPARATOR

热门文章

  1. 【单调队列】恐怖的奴隶主
  2. 如何检测网站是否存在XSS跨站漏洞
  3. 面试官:我一句话就能让你不敢进阿里!
  4. repo 切换manifest
  5. 软件测试方法——等价类划分法详解
  6. 【开店宝典】Lazada怎么入驻?
  7. 国内访问github
  8. 华为Mate20将是你的专属翻译官,AI翻译或将迎来较大革新
  9. python单例模式的几种写法
  10. GP2Y1014AU传感器