ndkbuild 与 cmake

ndkbuild与cmake

在 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的方式

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值