本篇文章主要介绍 Android
开发中的部分知识点,经过阅读本篇文章,您将收获如下内容:node
一. MtkCam3的代码结构及学习资料
二. MtkCam3设计架构概览
三. MtkCam3代码跟读
四. MtkCam3 Debug
mtk online里搜Camera 能够搜到很全面的Mtk Hal3的学习文档,Mtk整理的文档很棒,简单到位!
https://online.mediatek.com/Q...android
下述的代码结构只是列出了mtk平台的camera路径,Android Camera相关路径并未记录程序员
APP
MTK Camera算法
vendor/mediatek/proprietary/packages/apps/
HAL
MTK Camera Hal,目前最新Android Camera Api2下用的都是HAL3的内存,HAL3主要代码在mtkcam3中,有些工具类复用了mtkcam中架构
vendor/mediatek/proprietary/hardware/mtkcam/ vendor/mediatek/proprietary/hardware/mtkcam3/
如下是和camera强相关app
vendor/mediatek/proprietary/hardware/jpeg/ vendor/mediatek/proprietary/hardware/bwc/ vendor/mediatek/proprietary/hardware/m4u/
Kernelide
kernel-x.xx/drivers/misc/mediatek/imgsensor/
设置log level,cameraHalserver重启生效
工具
persist.vendor.mtk.camera.log_level 控制代码以下:学习
#define CAM_ULOGMD(fmt, arg...) ALOGD(fmt, ##arg) mtkcam/include/mtkcam/utils/std/Log.h #define CAM_LOGD(fmt, arg...) do{ if(0!=mtkcam_testLog(LOG_TAG, 'D')) ALOGD(fmt, ##arg); } while(0) mtkcam/utils/std/Misc.cpp static int32_t determinePersistLogLevel() { int32_t level = ::property_get_int32("persist.vendor.mtk.camera.log_level", -1); CAM_ULOGMD("###### get camera log property =%d", level); if (-1 == level) { level = MTKCAM_LOG_LEVEL_DEFAULT; } return level; } __BEGIN_DECLS static int32_t gLogLevel = determinePersistLogLevel(); int mtkcam_testLog(char const* /*tag*/, int prio) { switch (prio) { case 'V': return (gLogLevel>=4); case 'D': return (gLogLevel>=3); case 'I': return (gLogLevel>=2); case 'W': return (gLogLevel>=1); case 'E': return (1); default: break; } return 0; }
原文连接:https://blog.csdn.net/TaylorP...
友情推荐:
Android 干货分享 ui
至此,本篇已结束,若有不对的地方,欢迎您的建议与指正。同时期待您的关注,感谢您的阅读,谢谢!