本篇主要介绍在Android Studio中通过JNI完成NDK开发,后一篇文章会介绍通过CMake方式在Android Studio 中进行NDK开发,敬请期待。

源码地址:

https://github.com/xiaoliang0227/NDKDemo001

Step1:新建项目,命名为NDKDemo001

120724_hBiW_165872.png

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

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

120724_Z57M_165872.png

Step4:build项目

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

120725_P44H_165872.png

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

120724_JHuu_165872.png

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

120724_OCo1_165872.png

”com_zyl_ndkdemo001_cpp_HelloNDK.h“内容如下:

120725_1dnD_165872.png

Step8:在src/main目录下新建文件夹“jni”并把“com_zyl_ndkdemo001_cpp_HelloNDK.h”剪切到该处,结构如下:

120724_J76c_165872.png

Step9:在“jni”目录中新建c source文件“com_zyl_ndkdemo001_cpp_HelloNDK.c”,内容如下:

120725_9hXe_165872.png

Step10:配置app目录下的build.gradle文件,在defaultConfig标签中加入以下内容:

ndk {

    moduleName "hellondk"

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

}

 

120725_cPgJ_165872.png

Step11:“make project”

120725_YOAQ_165872.png

Step12:若遇到以下问题,请在项目的gradle.properties中添加:android.useDeprecatedNdk=true,然后clean project 重新make project

120725_uneM_165872.png

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

120725_xWjF_165872.png

Step13:把该lib下的所有为文件拷贝到,app下的libs中

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

120725_wXOG_165872.png

转载于:https://my.oschina.net/u/165872/blog/1541765

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐