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.mk的用法
Android.mk文件是 Android 编译系统中用于描述项目源文件、库和模块的 Makefile。它采用 GNU Make 的语法,但也包含了一些特定于 Android 编译系统的规则和变量。以下是对其语法和使用方法的详细解释及示例。
如何在Android.mk定义C/C++宏
如何在Android.mk定义C/C++宏
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.mk中添加宏定义
在Boardconfig.mk 中添加一个 IS_FLAG := true 由于Boardconfig.mk和各目录的Android.mk是相互关联的 所以我们可以在Android.mk 中添加 一个 ifdef IS_FLAG LOCAL_CFLAGS += -DHHHH endif 在Android.mk中添加的这行相当于在 该目录下的文件中定义了一个
Android开发:使用Android.mk增加编译宏开关
如果MY_MACRO宏被定义为1,编译器会添加编译选项“-DMY_MACRO_ENABLED”,从而使得编译后的可执行文件在运行时输出"宏已启用";通过使用Android.mk文件,我们可以很方便地添加编译宏开关,从而实现不同的编译选项。这样,在编译过程中,预处理阶段会将代码中所有使用该宏的地方替换为编译选项所指定的值。通过添加编译宏,我们可以根据不同的编译配置来控制代码的行为,实现更灵活和可定制的应用程序开发。这样,我们可以根据不同的编译配置来控制代码的行为,从而实现更灵活和可定制的应用程序开发。
PDMS二次开发入门:手把手教你用PML2写第一个交互式窗体工具
本文详细介绍了如何使用PML2进行AVEVA PDMS二次开发,从零开始构建交互式窗体工具。通过PML2语言的面向对象特性、即时调试能力和深度系统集成优势,开发者可以高效创建自动化设计工具、批量修改属性和定制报表系统。文章包含开发环境配置、基础语法、窗体架构设计、事件处理等实战内容,帮助读者快速掌握PDMS二次开发技能。
怎样在Android.mk上加宏定义【转】
本文转载自:http://blog.csdn.net/ttxgz/article/details/7591282 很简单, LOCAL_CFLAGS += -DWHATEVERDEFINE 就可以了
Java面试题大全(2025版)
== 对于基本类型来说是值比较,对于引用类型来说是比较的是引用;而 equals 默认情况下是引用比较,只是很多类重新了 equals 方法,比如 String、Integer 等把它变成了值比较,所以一般情况下 equals 比较的是值是否相等。
对android.mk debug
android makefile编写一直是我这边的痛,目前找到一个好的办法对makefile进行debug的工作 $(warning value of LOCAL_OPPO_SRC_FILES is: $(LOCAL_OPPO_SRC_FILES)) 如上就可以实现打印当前变量。 原文具体帖子见 http://stackoverflow.com/questions/
MuJoCo柔性体仿真实战:从FlexComp建模到自定义模型导入
柔性体仿真是机器人交互研究中不可或缺的一环,MuJoCo作为高精度物理求解器,凭借高效的求解速度与批量并行能力,成为强化学习与软体抓取任务的热门选择。其FlexComp机制将连续材料离散为粒子-约束系统,以较低建模成本模拟布料、软组织等形变行为,相比Gazebo等平台更具实时性与可扩展性。技术价值体现在自定义柔性体建模与导入流程中:通过XML配置网格密度、间距与材料参数,即可生成贴合任务需求的软体垫子或硅胶抓手。在柔性抓取、颗粒抓手、医疗仿真等场景中,该方法能快速构建可训练的环境。围绕环境搭建、FlexCo
mtk-drm commit送显流程(二):内核态atomic_commit实现解析
本文深入解析了mtk-drm框架中atomic_commit机制的内核态实现流程,详细介绍了从用户态触发到硬件提交的完整调用链,包括状态检查、硬件提交等关键阶段。特别分析了MTK平台在动态刷新率、内存带宽优化等方面的特有实现策略,为开发者提供了调试技巧和常见问题解决方案。
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)
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 问题的解决方案,希望能对你有所帮助。
NDK调试
第一种(控制台输出): 1、配置好环境变量,这是为了方便起见。将你sdk和ndk的根目录放到环境变量path中。配置完成之后可以来个小检测: 在命令行分别输入adb和ndk-stack后点击回车,只要他不报你这些东西找不到,就表示你配置好了; 2、在命令行中使用cd进入当前工程下; 3、接下来在命令行输入:adb logcat | ndk-stack -sym [so文件所在...
2024年CSP-X复赛真题题解(T1:购物)
2024年CSP-X复赛真题题解(T1:购物)
拼多多小球直径轨迹重合验证码识别
本文分析了拼多多新型验证码的实现原理与破解思路。该验证码采用Canvas绘制小球弹跳轨迹验证,主要难点在于参数还原和轨迹计算。作者通过逆向工程提取了包括弹跳段数、振幅、旋转参数等关键配置(存储在config.json),并利用Python成功模拟了验证过程。核心算法将滑块值映射为0-1区间,通过三次变换计算小球位置,最终采用斜率截距最小值比对完成验证。整个过程分为静态初始化、核心计算和动态渲染三个阶段,其中干扰元素不影响核心验证逻辑。该研究仅用于技术学习,强调严禁任何违法行为。
LOCAL_CFLAGS 总结
先介绍下LOCAL_CFLAGSLOCAL_CFLAGS += -DXXX 相当于在所有源文件中增加一个宏定义#define XXX1、-Wall是打开警告开关2、-O代表默认优化,可选:-O0不优化,-O1低级优化,-O2中级优化,-O3高级优化,-Os代码空间优化3、-g是生成调试信息,生成的可执行文件具有和源代码关联的可调试的信息4、-fopenmpOpenMp是由OpenMP Ar...
FPGA 学习笔记:Vivado 2020.2 MicroBlaze MIG 测试 DDR3 篇四
FPGA 学习笔记:Vivado 2020.2 MicroBlaze MIG 测试 DDR3 篇四
Android.mk中宏定义的高级用法剖析-安卓framework高级实战
上面就是一个经典使用mk传递具体的系统的节点路径到cpp代码中,cpp代码中就可以方便根据mk传递进来的字节节点路径进行相关的设置。使用该方法可以大大提高代码的灵活性,大家可以设想一下,在一套代码需要适配不同的产品目标时候,可以使用同一套代码逻辑来实现,差异变化的路径部可以在Product.mk中进行定义,不同的Product也可以设置不一样的节点路径。
精雕软件(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命令验证实际生效值,这种设计既避免了代码重复,又便于
迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)
迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)
[ Android 编译 ] Android.bp 根据条件添加宏定义
如果不需要添加控制逻辑,只是单纯地添加宏定义,直接在 Android.bp 对应模块的 cflags / cppflags 中添加 "-DXXX" 即可。 但是如果需要添加控制逻辑,由于 bp 文件跟 mk 文件不同,它是纯粹的配置,没有分支等流程控制,所以只能通过编写 Go 语言实现。 之前没接触过 go 语言,但是编程语言都是相通的,百度一下相关的文章,根据自己的实际情况进行修改,磕磕绊绊地也算是完成了这个需求,这里记录一下实现的整个流程。
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当前...
1337



被折叠的 条评论
为什么被折叠?



