android studio umake,Android Studio中NDK开发傻瓜教程(CMake)

继上篇文章《Android Studio中NDK开发傻瓜教程(JNI)》之后,本篇介绍CMake技术在Android Studio中的NDK开发。

源码地址:

Step1:新建项目,命名为NDKDemo002,记得勾选“Include C++ support”

c1891d992efb67921be410cdd9d0868b.png

Step2:一路点击“Next”,最终点击“Finish”完成新项目的创建

Step3:默认项目会自动生成一个cpp文件夹,在main下,该目录存放C相关的文件,项目本身是可以运行NDK的,感兴趣的大家可以直接运行试一下。我们本次教程不使用默认的native-lib.cpp,所以我们后边会删除掉他。原来的项目结构如下:

b24ad116526492bde72ae38f25621593.png

Step4:创建类包“cpp”,并在该包中创建文件”HelloNDK”,内容与结构如下:

21629d44eace6f47e02d392011c7153e.png

Step5:build项目

Step6:build完成后app/build/intermediates/classes/debug中结构如下:

3752967d528d551ed7b89424c79ee9ff.png

Step7:通过Android Studio 自带的Terminal定位到文件夹app/build/intermediates/classes/debug,如下:

f8788d4363d1db1b00cd9ef364a1ae5c.png

Step8:使用指令,生成c语言头文件。指令:javah -jni com.zyl.ndkdemo002.cpp.HelloNDK,目标头文件在app/build/intermediates/classes/debug下,文件名为“com.zyl.ndkdemo002.cpp.HelloNDK.h”,如果看不到请刷新下项目。示例如下:

e2126a2419dd10835be07f28a0dc907a.png

”com.zyl.ndkdemo002.cpp.HelloNDK.h“内容如下:

8f48a9338355c0fa4339eebb42333548.png

Step9:把“com.zyl.ndkdemo002.cpp.HelloNDK.h”剪切到src/main/cpp中:

ec75e0e07a217c216311840e843dbced.png

Step10:在“src/main/cpp”目录中新建c source文件“com.zyl.ndkdemo002.cpp.HelloNDK.c”,内容如下:

1edc9e9f0e1d720acad2b0032d6fb177.png

Step11:配置app目录下的build.gradle文件,在defaultConfig标签中将externalNativeBuild修改为以下内容:

externalNativeBuild {

cmake {

cppFlags ""

// 指定只用clang编译器

// clang是一个C语言、Objective-C、C++语言的轻量级编译器

arguments "-DANDROID_TOOLCHAIN=clang"

// 生成.so库的目标平台

abiFilters "armeabi", "armeabi-v7a", "arm64-v8a", "x86", "x86_64", "mips", "mips64"

}

}

b6e5855a20ff2cf85483a5803fe1c8ee.png

Step12:修改“CMakeLists.txt”文件,将配置的“native-lib”修改为“hellondk”,并配置“com_zyl_ndkdemo002_cpp_HelloNDK.c”

的注入路径,修改后内容如下:

4ffd4e2ed0665a553aaa2f64de9bd9bc.png

Step13:“make project”

9fe9c2f3c55070cffbab68f57c7d4e3b.png

Step14:生成的动态链接库文件在项目中的结构如下:

6b16085159a8a5eeaa650a68d1140e34.png

Step15:把该lib下的所有为文件拷贝到,app下的libs中,删除掉先前提到 的无用的“native-lib.cpp”,并从MainActivity中删除相关代码

Step16:激动人心的时刻到了,测试,如果能够弹出“this is a android ndk hello.”,恭喜你,你成功了。代码如下:

5aeac587a4ca5b3c384bd95ad2812606.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值