android studio NDK开发环境搭建实践

来源:互联网 发布:计算机程序员证书 编辑:程序博客网 时间:2024/04/28 14:59

android studio现在已经很好的支持了NDK开发,使用android studio进行NDK的开发变得很方便。本文讲的NDK开发时基于CMake编译的NDK开发,有关ndk-build编译的方法,我找时间会整理出来,因为我另一个项目就是用的ndk-build…..

在启动NDK开发时,通常是这样两种情况:一、全新的android项目,需要支持NDK功能开发;已有的项目新增NDK功能开发。

一、
第一种情况,其实比较简单。android studio在创建新项目时,直接选择support c++就可以了,android studio会自动做好NDK开发环境的配置。
这里写图片描述

这里写图片描述

android studio 配置好了CMake文件,gradle配置信息等。这样直接在对应的cpp文件中进行jni代码开发就可以了。

主要记录一下第二种情况。多数情况下,我们会遇到在已有的项目中增加NDK功能,即编写jni代码,这个时候我们就需要在已有的项目中,增加NDK的编译环境。主要步骤如下:
1. 编写相应的类以及native方法:

public class RKECG {    static {        System.loadLibrary("rkecg");    }    public static native int getHR(short[] data);}

2 . 使用Terminal,cd到java目录,执行javah 包名.类名命令,生成对应的.h头文件:

这里写图片描述

这里写图片描述

注:生成的.h文件在java根目录中。
3 . 在main目录下,新建cpp目录,并新建一个*.cpp(文件名任意)文件,把第2步生成的.h文件中的内容复制到该cpp文件中(之前的.h文件就可以删除了)

这里写图片描述

4 . 在app目录下添加并编写CMakeLists.txt文件,也可以直接从其他C++ support的android项目中复制个CMakeLists.txt文件(我就是这么干的..-_-!),修改里边的内容就可以了:

这里写图片描述

更多关于CMake文件的参数说明,请各位看官自定度娘吧,很多这样的资源。

5 . 配置app的build.gradle文件

这里写图片描述

6 . 最后,配置gradle.properties文件:文件中增加这样一行代码(其实是注释掉的,去掉#注释就可以了)

org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

sync一下就可以了~.

这样就配置完成了。~ _ ~

等等等~~! 并不能运行,报错了!

cannot resolve corresponding jni function

之前新增的native方法那里报了上面这个错误! 其实这是android studio没有更新对NDK的支持导致的。按照如下的方法解决:

1 . 打开settings/plugins,搜索ndk,取消ndk支持,然后重启android studio

这里写图片描述

2 . 重启之后,就发现上面那个错误没有了。但是我们是需要支持NDK的,怎么能把这个取消呢,所以我们再重新把这个ndk支持勾打上,再重启一下android studio。 此时,上面那个错误就完美的木有了~~

然后我们就可以美丽的编写jni代码了,还有代码提示有木有!~

这里写图片描述

最后运行一下我们的app,测试一下jni代码是不是便宜成功了:

这里写图片描述

结果出来了,有木有!

最后如果你想看下你的.so文件有没有被打包到app中,可以打包app,查看apk中的lib目录看.so文件:

这里写图片描述

有了,完美!~

开始愉快的编写jni代码吧~~

原创粉丝点击