本篇文章主要介紹 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
至此,本篇已結束,若有不對的地方,歡迎您的建議與指正。同時期待您的關注,感謝您的閱讀,謝謝!