ndkbuild与cmake

作者: efan | 来源:发表于2018-06-11 21:25 被阅读59次

    在 Android 项目中使用 jni 有两种编译方案,一种是传统的ndkbuild,一种是当前推荐使用的 cmake;

    如果在创建项目的时候选择了 include C++ support 则会创建包含 cmake 的项目模板;

    两者均是生成 so 包;

    编译方式

    gradle 对两种编译方式进行了统一;只需要在 module 下的build.gradle 中添加

    externalNativeBuild {
        ndkBuild {
            path "src/main/jni/Android.mk"
        }
    }
    

    或者

    externalNativeBuild {
        cmake {
            path "CMakeLists.txt"
        }
    }
    

    其中 path 指定的是两种编译情况下所需配置文件的地址

    此外:

    ndkbuild 编译情况下可在android->defaultConfig 中添加

    ndk{
        abiFilters "armeabi-v7a"
    }
    

    用于设置NDKOption,如abiFilters等;

    cmake 编译情况下可在android->defaultConfig 中添加

    externalNativeBuild {
        cmake {
            abiFilters "armeabi-v7a"
            cppFlags ""
        }
    }
    

    用于设置ExternalNativeNdkBuildOptions,如abiFilters、cppFlags等;

    编译配置

    在ndkbuild中,采用Android.mk+Application.mk+src的方式

    在camke中,采用CmakeLists.txt+src的方式

    相关文章

      网友评论

        本文标题:ndkbuild与cmake

        本文链接:https://www.haomeiwen.com/subject/cghkeftx.html