构建移动平台本地库
无论是iOS平台还是Android平台,可能都会用到C&&C++库。
而C&&C++是支持跨平台的使用的,但是在想要在移动平台上使用C&&C++库一般需要进行跨平台编译。
构建需求分析
无论是iOS平台还是Android平台,都有两种方式进行C&&C++调用。
- 源码引入:这种方式有时候很方便,尤其是头文件库,但是对于openssl这种库就非常不方便了。
- 静态库、动态库等文件引入:静态库引入之后,会和应用程序的可执行程序编译成一个文件,动态库需要打包到程序的运行目录。
构建iOS平台库
iOS平台的跨平台使用C&&C++相对比较容易,因为objective-c和C&&C++都是内存主动管理语言,可以混编。为了模块划分更加清晰可以使用静态库,为了节省编译时间可以使用动态库。
构建Android平台库
Android无法做到和C&&C++混编,所以只能间接调用Cmake构建系统进行源码编译,或者引入现有的静态库或者动态库。不过,为了防止代码的冲突,NDK建议使用动态库进行编译。代码冲突的原理也比较简单,就是A库使用了C++11库,B库使用了C++14库,产品程序依赖A库和B库,这样需要有两个版本的C++进行支持,如果静态编译则C++两个版本的库就会冲突。如果是动态链接,就是选择合适的库。
构建移动平台库的项目介绍
build-ios-and-android-script
这个脚本项目正式为了解决上述引入现有静态库和动态库而出生的。对于常见的但是难于源码引入的项目,可以在这里进行编译。
当然,该库应该是刚刚创建,支持的库不多,相信不久将来会有更多小伙伴加入和维护该库。
网友评论