在Android.mk中 添加宏定义变量

Android.bp 中进行条件判断 android编译系统的Android.mk,里面还有条件判断, 但是到了Android.bp之后, android.bp是类似JSON的纯文本形式. 对于Android.mk里面条件判断部分,在Android.bp里要借助使用go语言文件去进行控制. 有条件判断的宏开关添加Demo 在Android.mk中添加的宏开关: ifeq ($(ENABLE_USER2ENG),true) LOCAL_CFLAGS += -DALLOW_ADBD_DISABLE_VERITY=1 LOCAL_CFLAGS += 阅读详情

diff --git a/Android.mk b/Android.mk
index e5281b9..543b7de 100644
--- a/Android.mk
+++ b/Android.mk
@@ -35,6 +35,7 @@ LOCAL_SRC_FILES += \
        CameraAAAProcess.cpp
 
 LOCAL_CFLAGS += -DLOG_NDEBUG=1 -DSTDC99 -Wno-write-strings
+LOCAL_CFLAGS += -DPERFORMANCE_TUNING   //定义了该宏,可以在代码中判断
 
 ifeq ($(TARGET_PRODUCT), mfld_cdk)
 LOCAL_CFLAGS += -DMFLD_CDK
diff --git a/CameraHardware.cpp b/CameraHardware.cpp
index f115583..409d441 100644
--- a/CameraHardware.cpp
+++ b/CameraHardware.cpp
@@ -2040,6 +2040,9 @@ int CameraHardware::burstCaptureHandle(void)
     int skipped;
     void *main_out, *postview_out;
     struct BCBuffer *bcbuf;
+#ifdef PERFORMANCE_TUNING
+       gettimeofday(&burst_mode_handle,  0);
+#endif
     sp<MemoryBase> JpegBuffer;
 
     // get size
@@ -2073,6 +2076,9 @@ int CameraHardware::burstCaptureHandle(void)
         //Skip frames
         snapshotSkipFrames(&main_out, &postview_out);
         for (i = 0; i < mBCNumReq; i++) {
+#ifdef PERFORMANCE_TUNING
+            gettimeofday(&burst_mode_start,  0);
+#endif
             if (mBCCancelPicture) {
                 LOG1("BC, line:%d, in burstCaptureHandle, mBCCancelPicture is true, terminate", __LINE__);
                 burstCaptureCancelPic();
@@ -2102,6 +2108,10 @@ int CameraHardware::burstCaptureHandle(void)
                 mNotifyCb(CAMERA_MSG_SHUTTER, 0, 0, mCallbackCookie);
             LOG1("BC, line:%d, shutter:%d", __LINE__, i);
 
+#ifdef PERFORMANCE_TUNING
+            gettimeofday(&burst_mode_shuttered,  0);
+                       LOGD("xiaohai : ----------- each frame shutterd time : %ldms\n", calc_timediff(&burst_mode_start, &burst_mode_shuttered));
+#endif
             // do nothing for RAW message
             if (mMsgEnabled & CAMERA_MSG_RAW_IMAGE) {
                 LOG1("BC, line:%d,do nothing for CAMERA_MSG_RAW_IMAGE", __LINE__);
@@ -2140,6 +2150,10 @@ int CameraHardware::burstCaptureHandle(void)
                 mDataCb(CAMERA_MSG_POSTVIEW_FRAME, pv_buffer, mCallbackCookie);
                 pv_buffer.clear();
             }
+#ifdef PERFORMANCE_TUNING

Android JNI学习笔记(三)-编译文件Android.mk、Application.mk 与camke 1. 前言在android2.2中,加入了cmake编译,而以前都是用Android.mk、Application.mk的,今天就来记录下,他们的配置选项。2. Android.mkAndroid.mk在jni目录下,用于描述构建系统的源文件以及 shared libraries 。文件格式如下: 以LOCAL_PATH变量开始 LOCAL_PATH := $(call my-dir) 紧接着是C 阅读详情

相关推荐

Android.mk的用法

Android.mk文件是 Android 编译系统中用于描述项目源文件、库和模块的 Makefile。它采用 GNU Make 的语法,但也包含了一些特定于 Android 编译系统的规则和变量。以下是对其语法和使用方法的详细解释及示例。

XuChaofafa的博客 1337

如何在Android.mk定义C/C++宏

如何在Android.mk定义C/C++宏

weixin_48438353的博客 1137

Android.mk与Makefile基础用法

CFLAGS + = -DG_DEBUG # 在源码中可以使用 # ifdef G_DEBUG XXXX。LOCAL_PATH := $(call my-dir) #定义当前mk文件的目录 include $(CLEAR_VARS) #清除全局变量 LOCAL_MODULE := hello #生成目标的so文件 名 LOCAL_SRC_FILES := hello.c #需要编译的源文件 LOCAL_C_INCLUDES :=

Android驱动开发 3421

Android.mk中添加宏定义

在Boardconfig.mk 中添加一个  IS_FLAG := true 由于Boardconfig.mk和各目录的Android.mk是相互关联的 所以我们可以在Android.mk 中添加 一个 ifdef IS_FLAG            LOCAL_CFLAGS += -DHHHH endif 在Android.mk中添加的这行相当于在 该目录下的文件中定义了一个

Sam 的专栏 7637

Android开发:使用Android.mk增加编译宏开关

如果MY_MACRO宏被定义为1,编译器会添加编译选项“-DMY_MACRO_ENABLED”,从而使得编译后的可执行文件在运行时输出"宏已启用";通过使用Android.mk文件,我们可以很方便地添加编译宏开关,从而实现不同的编译选项。这样,在编译过程中,预处理阶段会将代码中所有使用该宏的地方替换为编译选项所指定的值。通过添加编译宏,我们可以根据不同的编译配置来控制代码的行为,实现更灵活和可定制的应用程序开发。这样,我们可以根据不同的编译配置来控制代码的行为,从而实现更灵活和可定制的应用程序开发。

HackDashX的博客 689

PDMS二次开发入门:手把手教你用PML2写第一个交互式窗体工具

本文详细介绍了如何使用PML2进行AVEVA PDMS二次开发,从零开始构建交互式窗体工具。通过PML2语言的面向对象特性、即时调试能力和深度系统集成优势,开发者可以高效创建自动化设计工具、批量修改属性和定制报表系统。文章包含开发环境配置、基础语法、窗体架构设计、事件处理等实战内容,帮助读者快速掌握PDMS二次开发技能。

weixin_29281941的博客 271

怎样在Android.mk上加宏定义【转】

本文转载自:http://blog.csdn.net/ttxgz/article/details/7591282     很简单,      LOCAL_CFLAGS += -DWHATEVERDEFINE 就可以了

weixin_34248849的博客 468

Java面试题大全(2025版)

== 对于基本类型来说是值比较,对于引用类型来说是比较的是引用;而 equals 默认情况下是引用比较,只是很多类重新了 equals 方法,比如 String、Integer 等把它变成了值比较,所以一般情况下 equals 比较的是值是否相等。

2401_89221704的博客 2442

对android.mk debug

android makefile编写一直是我这边的痛,目前找到一个好的办法对makefile进行debug的工作 $(warning value of LOCAL_OPPO_SRC_FILES is: $(LOCAL_OPPO_SRC_FILES))  如上就可以实现打印当前变量。 原文具体帖子见        http://stackoverflow.com/questions/

黄老板的专栏 4863

MuJoCo柔性体仿真实战:从FlexComp建模到自定义模型导入

柔性体仿真是机器人交互研究中不可或缺的一环,MuJoCo作为高精度物理求解器,凭借高效的求解速度与批量并行能力,成为强化学习与软体抓取任务的热门选择。其FlexComp机制将连续材料离散为粒子-约束系统,以较低建模成本模拟布料、软组织等形变行为,相比Gazebo等平台更具实时性与可扩展性。技术价值体现在自定义柔性体建模与导入流程中:通过XML配置网格密度、间距与材料参数,即可生成贴合任务需求的软体垫子或硅胶抓手。在柔性抓取、颗粒抓手、医疗仿真等场景中,该方法能快速构建可训练的环境。围绕环境搭建、FlexCo

weixin_29045585的博客 159

mtk-drm commit送显流程(二):内核态atomic_commit实现解析

本文深入解析了mtk-drm框架中atomic_commit机制的内核态实现流程,详细介绍了从用户态触发到硬件提交的完整调用链,包括状态检查、硬件提交等关键阶段。特别分析了MTK平台在动态刷新率、内存带宽优化等方面的特有实现策略,为开发者提供了调试技巧和常见问题解决方案。

weixin_30839881的博客 1305

Android NDK打印日志

1. 定义打印日志宏 #include #define LOG_TAG "TestLib" #define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__) 2. 打印日志 char name[50] = "ZhangSan"; LOGD("name: %s\n", name)

zhangmiaoping23的专栏 1411

fatal: unable to access ‘https://github.com/Stability-AI/stablediffusion.git/‘解决方案

本文主要介绍在安装 stable-diffusion-webui 时出现的 fatal: unable to access 'https://github.com/Stability-AI/stablediffusion.git/': Failed to connect to github.com port 443 after 21071 ms: Couldn't connect to server 问题的解决方案,希望能对你有所帮助。

水滴的博客 5685

NDK调试

第一种(控制台输出): 1、配置好环境变量,这是为了方便起见。将你sdk和ndk的根目录放到环境变量path中。配置完成之后可以来个小检测:   在命令行分别输入adb和ndk-stack后点击回车,只要他不报你这些东西找不到,就表示你配置好了; 2、在命令行中使用cd进入当前工程下; 3、接下来在命令行输入:adb logcat | ndk-stack -sym [so文件所在...

231

2024年CSP-X复赛真题题解(T1:购物)

2024年CSP-X复赛真题题解(T1:购物)

王老师青少年编程 1180

拼多多小球直径轨迹重合验证码识别

本文分析了拼多多新型验证码的实现原理与破解思路。该验证码采用Canvas绘制小球弹跳轨迹验证,主要难点在于参数还原和轨迹计算。作者通过逆向工程提取了包括弹跳段数、振幅、旋转参数等关键配置(存储在config.json),并利用Python成功模拟了验证过程。核心算法将滑块值映射为0-1区间,通过三次变换计算小球位置,最终采用斜率截距最小值比对完成验证。整个过程分为静态初始化、核心计算和动态渲染三个阶段,其中干扰元素不影响核心验证逻辑。该研究仅用于技术学习,强调严禁任何违法行为。

码王吴彦祖的博客 1331

LOCAL_CFLAGS 总结

先介绍下LOCAL_CFLAGSLOCAL_CFLAGS += -DXXX   相当于在所有源文件中增加一个宏定义#define XXX1、-Wall是打开警告开关2、-O代表默认优化,可选:-O0不优化,-O1低级优化,-O2中级优化,-O3高级优化,-Os代码空间优化3、-g是生成调试信息,生成的可执行文件具有和源代码关联的可调试的信息4、-fopenmpOpenMp是由OpenMP Ar...

pirionFordring的博客 5226

FPGA 学习笔记:Vivado 2020.2 MicroBlaze MIG 测试 DDR3 篇四

FPGA 学习笔记:Vivado 2020.2 MicroBlaze MIG 测试 DDR3 篇四

坚韧与专注 2161

Android.mk中宏定义的高级用法剖析-安卓framework高级实战

上面就是一个经典使用mk传递具体的系统的节点路径到cpp代码中,cpp代码中就可以方便根据mk传递进来的字节节点路径进行相关的设置。使用该方法可以大大提高代码的灵活性,大家可以设想一下,在一套代码需要适配不同的产品目标时候,可以使用同一套代码逻辑来实现,差异变化的路径部可以在Product.mk中进行定义,不同的Product也可以设置不一样的节点路径。

learnframework的博客 877

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Android SDK中关于BoardConfig.mk的宏定义继承和覆盖规则

在Android构建系统中,当两个BoardConfig.mk文件定义同名宏时,更具体的设备配置会覆盖通用平台配置。对于device/rockchip/rk356x/rk3568_caigong/BoardConfig.mk和device/rockchip/rk356x/BoardConfig.mk,前者定义的宏会生效。这是因为构建系统采用继承机制,先加载通用配置后被具体配置覆盖,遵循"后定义优先"原则。可通过get_build_var命令验证实际生效值,这种设计既避免了代码重复,又便于

Android/Linux驱动开发传帮带学习,让驱动入门门槛更低! 451

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

[ Android 编译 ] Android.bp 根据条件添加宏定义

如果不需要添加控制逻辑,只是单纯地添加宏定义,直接在 Android.bp 对应模块的 cflags / cppflags 中添加 "-DXXX" 即可。 但是如果需要添加控制逻辑,由于 bp 文件跟 mk 文件不同,它是纯粹的配置,没有分支等流程控制,所以只能通过编写 Go 语言实现。 之前没接触过 go 语言,但是编程语言都是相通的,百度一下相关的文章,根据自己的实际情况进行修改,磕磕绊绊地也算是完成了这个需求,这里记录一下实现的整个流程。

a572423926的博客 4154

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

android 宏替换_Android.mk常用宏定义

常用变量定义为了方便模块编译,Build系统还设置了很多编译环境。单独编译一个模块时,需要配置变量后才能执行编译:变量作用LOCAL_SRC_FILES当前模块包含的所有源代码文件LOCAL_MODULE当前模块的名称,这个名称应当是唯一的,模块间的依赖关系就是通过这个名称来引用的LOCAL_C_INCLUDESC 或 C++ 语言需要的头文件的路径LOCAL_STATIC_LIBRARIES当前...

weixin_35977444的博客 1006
上一篇: 各类总线传输速率
下一篇: adb 调试前,需添加usb属性到 51-android.rules
lamdoc
博客等级 码龄18年 155粉丝 655原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值