美文网首页
NDK环境配置(附GitHub Demo)

NDK环境配置(附GitHub Demo)

作者: Ford_ | 来源:发表于2019-05-14 18:26 被阅读0次

    一些要求高性能 高安全类项目都会使用C、C++动态库,而NDK可以帮助我们快速开发集成,音视频转解码压缩等、直播、智能硬件、自己及公司封装的SDK等方面都有用到NDK

    一、NDK下载及环境集成

    1.File->setting->...Android SDK进入该界面勾选CMake、LLDB、NDK三个工具并Apply等待安装...

    图一

    2.配置NDK路径

    将安装的NDK路径填入图二红色标记中

    图二

    3.配置环境变量

    控制面板->....环境变量下

    新建系统变量NDK_ROOT 值为NDK安装路径

    图三

    新建系统变量Path 值为;%NDK_ROOT%;

    图四

    cmd命令ndk-build验证是否安装成功

    图五二

    二、测试Demo

    1、创建一个JNITest类如下图

    图五

    2、生成该类的头文.h

    快捷键alt+fn+f12或者alt+f12

    命令模式进入项目app/src/java目录如下图

    图六

    javah -d ../jni com.study.ndkdemo.JNITest 这句命令行的意思在项目中新建jni目录并生成.h文件成功后项目目录会多com_study_ndkdemo_JNITest.h文件

    图7

    3.在jni录下创建一个test.c、Android.mk、Application.mk文件

    test.c

    #include "com_study_ndkdemo_JNITest.h"

    JNIEXPORT jstring JNICALL Java_com_study_ndkdemo_JNITest_get

    (JNIEnv *env, jclass jclass){

    return (*env)->NewStringUTF(env,"Faye Wong NDK TEST");

    }

    Android.mk

    LOCAL_PATH := $(call my-dir)

    include $(CLEAR_VARS)

    LOCAL_MODULE := JNITest

    LOCAL_SRC_FILES := test.c

    include $(BUILD_SHARED_LIBRARY)

    Application.mk APP_ABI := all

    4.命令行生成so库

    图8 图11

    三.验证测试

    1.在build.gradle文件夹下加

    sourceSets {

            main() {

                jniLibs.srcDirs = ['src/main/libs']

                jni.srcDirs = [] //屏蔽掉默认的jni编译生成过程        }

        }

    2.在JNITest类中动态导入so库

    package com.study.ndkdemo;

    public class JNITest {

    static {

    System.loadLibrary("JNITest");

    }

    public JNITest(){

    }

    public native static String get();

    }

    3.最后在MainActivity中输出显示

    public class MainActivityextends AppCompatActivity {

    @Override

        protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    String value=JNITest.get();

    Toast.makeText(this,"返回值为->"+value,Toast.LENGTH_SHORT).show();

        }

    }

    GitHub下载地址:演示Demo

    相关文章

      网友评论

          本文标题:NDK环境配置(附GitHub Demo)

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