注:改方法用于Camera Tuning开发人员编译效果库文件,适用于Spectra 2xx之前架构的平台。
NDK全称Native Development Kit, 是一系列工具的集合。它提供了一系列的工具,帮助开发者快速开发C/C++的动态库,并能自动将so和java一起打包成apk。本文不做任何关于NDK开发的介绍,只对NDK提供的工具的使用做一个简介,主要方便Camera Tuning人员使用NDK来编译生成chromatix对应的库文件,同时驱动大神也可以用来编译eeprom的库文件。
好处:编译时检查语法错;速度快于buildSo软件。
工具下载,可在官网下载。
Google官网下载地址:
https://developer.android.google.cn/ndk/downloads/index.html
根据自己硬件选择对应平台,下载相应的NDK版本。
Windows配置(Linux环境大同小异,编译时将bat命令全部替换为sh命令即可):
下载Window版本之后,文件解压如下:
配置环境变量:
“计算机”—“属性”—“高级系统设置”--“系统环境变量”--“新建”,输入如下内容:
注:变量值为ndk-build解压之后的根目录。
新建完成之后,点击“确定”,选择“Path”—“编辑”,在字符串末尾添加如下字符:
“%NDK_ROOT%”
注:添加时若path字符串末尾如果没有分号(”;”),需手动添加,与上一个变量值分开。
添加完成之后,点击“确定”,完成环境变量配置。
打开cmd,输入:
ndk-build -v
环境变量配置无误情况下,应输出如下内容:
接下来进行工程代码的修改。
注:这部分已经整理成压缩包,可以直接解压到C盘根目录使用
vendor\qcom\proprietary\mm-camerasdk\sensor\includes
vendor\qcom\proprietary\mm-camera\common
Common目录下的camera_defs_i.h和camera_dbg.h会被使用到。
因不同平台,头文件会有差异,因此以不同平台分别建立各自的文件夹:
不同的3A header也根据3A version来建立各自的目录:
将common中的如下两个头文件copy到3A header目录下:
从代码中拷贝一份chromatx文件,放置includes文件夹同一个目录下:
includes文件夹和chromatix文件夹得平级,因为脚本包含的路径是这么一个相对的关系。
新增:
修改脚本中includes头文件的位置,将路径修改为决定路径,这样在同一台电脑上配置完成之后,脚本可在任意位置执行,更为方便
:: Defined by user
set INCLUDES_ROOT=C:\mm-camerasdk\includes ——新增
set BOARD_PLATFORM=msm8937
set HEADER_VERSION=0309
LOCAL_C_INCLUDES=%INCLUDES_ROOT%\%BOARD_PLATFORM%\%HEADER_VERSION%
对应脚本名为:buildSo_win_v2.1.bat(目前最新)
附件新增头文件目录,可直接解压使用,包含MSM8937和SDM636平台头文件。
将Scripts中的脚本buildSo_v1.2.bat拷贝到chromatix工程目录里下,记事本打开之后修改如下关键部分:
:: Defined by user
set BOARD_PLATFORM=sdm636
set HEADER_VERSION=0310
将BOARD_PLATFORM修改为自己工程对应的平台,如:msm8937,SDM660等
将HEADER_VERSION修改对应的3A的版本号,如0309,0310等
如上两个信息决定查找头文件的位置,因此两个名字保证是在includes下存在并且有对应的头文件!!!
修改完成之后直接双击运行即可编译,次方法不需要对chromatix工程文件做额外的修改。
若在编译中,提示缺少某个头文件,源码中找到之后copy对includes对应目录下即可。
工具集合:
NDK:
http://192.168.128.202/svn/repos/HQATD/4.Image/软件工具/android-ndk-r14b-windows-x86_64.zip
chromatix_demo:
pdf附件中
Enjoy…
将Chromatix_NDK目录中“Script”下的“buildSo.bat”和“push.ver1.2.bat”拷贝到Chromatix工程根目录下:
双击运行“buildSo.bat”,编译结果如下:
会在当前路径下生成两个目录:
Obj为生成的链接文件,libs下为生成的库文件:
手机在开启adb并连接电脑的情况下,直接双击“push.ver1.2.bat”即可完成push操作。
1.双击buildSo.bat之后报如下错误:
解决方法:查看和目录同级的Android.mk是否修改正确,效果参数根目录下的那个Android.mk是必须要修改的,具体修改方法参考文中第二步。
2.报错如下:
头文件找不到,查看源码对应的Android.mk中,对头文件目录的指向是否正确。
3.报错如下:
源码有语法错,第14行,多了几个逗号,实现了检查语法错的功能:
工程demo模版已上传网站:
https://gitee.com/mecode08/chromatix_demo/
代码已验证过, ndk配置没有问题的情况下,代码编译通过,下载后可直接在上面修改和验证。