安装和简单使用NDK

作者: i冰点 | 来源:发表于2016-07-31 22:08 被阅读73次

1、什么是NDK?

JNI是为了方便Java调用C、C++等本地代码而封装的一层接口。NDK是一个工具集合,调用NDK可以很方便的使用JNI。

2、在Android Studio中配置

    1、下载NDK:https://developer.android.com/ndk/downloads/index.html

    2、配置PATH=F:\li_yi\tools\Android\android-ndk-r12b

    3、在AS中关联NDK,ndk.dir=F:\li_yi\tools\Android\android-ndk-r12b

3、NDK开发

1、新建一个类,增加native方法:

    public class NDKTest {

        public native String getTestStr();

    }

2、得到.h文件

    2.1、执行build---make project,会得到一个class文件

     (在XXX\app\build\intermediates\classes\debug\com\liyi\jnitest目录下)。

    2.2、点开AS的Terminal标签,

        进入到XXX\app\build\intermediates\classes\debug目录下(cd 命令),

        执行javah命令生成h文件:

            javah -jni com.liyi.jnitest.NDKTest

    2.3、在main目录下新建一个jni目录,剪切该文件到改目录下。

    .h文件:

    #include"com_liyi_jnitest_NDKTest.h"

    JNIEXPORT jstring JNICALL Java_com_liyi_jnitest_NDKTest_getTestStr

    (JNIEnv *env,jobject obj){

    return(*env)->NewStringUTF(env,

        "Java_com_liyi_jnitest_NDKTest_getTestStr!");

    }

3、新建一个c文件,实现在DNKTest中定义的native方法

    #include "com_liyi_jnitest_NDKTest.h"

    JNIEXPORT jstring JNICALL Java_com_liyi_jnitest_NDKTest_getTestStr

    (JNIEnv *env, jobject obj){

    return (*env)->NewStringUTF(env,

        "Java_com_liyi_jnitest_NDKTest_getTestStr!");

    }

4、在app module目录下的build.gradle中设置库文件名(生成的so文件名)

    defaultConfig {

    ......

    ndk{

    moduleName "NDKTest"        //生成的so名字

    //输出指定三种abi体系结构下的so库。目前可有可无。

    abiFilters "armeabi", "armeabi-v7a", "x86"  

    }

5、在NDKTest中,静态初始化load代码,

    static {

        System.loadLibrary("NativeExample"); 

    }

6、打开Project的gradle.properties文件,添加

        android.useDeprecatedNdk=true

7、同步操作:

    Tools->Android->Sync Project with Gradle Files

8、生成SO文件:Build->Rebuild Project

    在项目的app\build\intermediates\ndk\debug\lib路径下生成SO文件

9、使用生成SO文件:

    在jnitest\src\main下新建文件夹jniLibs,并将生成的SO文件拷贝到该文件夹下。

代码:

http://download.csdn.net/detail/le_shuo/9591352

参考:

http://blog.csdn.net/krubo1/article/details/50547681

http://blog.csdn.net/yanbober/article/details/45309049/

相关文章

  • 安装和简单使用NDK

    1、什么是NDK? JNI是为了方便Java调用C、C++等本地代码而封装的一层接口。NDK是一个工具集合,调用N...

  • Android Studio NDK 示例

    本文是在mac环境,使用android studio完成ndk开发ndk安装在这里略过配置也比较简单 具体步骤 1...

  • Hello NDK-初学

    一.NDK的安装 本文使用的是android studio 2.2.3安装NDK,自然所在环境是windows。打...

  • Android JNI(一)——NDK与JNI基础

    一、什么是NDK NDK官网介绍 简单的来说: 二、为什么使用NDK 三、NDK到so的演变 从图中可知:我们上层...

  • Mac 下编译FFmpeg4.3.1

    需要使用NDK来编译FFmpeg,需要下载NDK和FFmpeg我使用的NDK版本:android-ndk-r21F...

  • NDK配置教程

    在Linux中配置NDK工具 准备工作 首先需要下载ndk安装包,安装列表: 谷歌官方NDK下载列表:NDK下载 ...

  • NDK开发一之环境搭建

    一、下载安装Android NDK 二、下载安装cygwin 由于NDK编译代码时必须要用到make和gcc,所以...

  • Android Studio SDK tools 安装NDK:

    错误描述 SDK manager 安装NDK时报错 No space left on device. 查看磁盘使用...

  • AndroidNDK入门

    Android NDK 入门Android NDK 安装Android NDK 实例-静态方式函数Android ...

  • Android NDK入门 —— CMake

    前言 我会在小专栏和简书一起分享。上篇说了入门一个NDK程序,大致讲解了如何简单的使用ndk-build。 正题 ...

网友评论

    本文标题:安装和简单使用NDK

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