美文网首页Android NDK 进阶之旅
JNI(NDK)开发教程二 (androidstudio JNI

JNI(NDK)开发教程二 (androidstudio JNI

作者: Mr_Ares | 来源:发表于2017-05-31 12:05 被阅读67次

                         window 下 AndroidStudio JNI开发环境搭建以及Test Project

    开发环境:

    windows 7

    AS2.1.2

    1. NDK下载和环境配置

    1.1   点解studio 工具File --》ProjectStructure--》SDK Location

    点击download 下载ndk ,ndk会下载到对应sdk 目录下:sdk\ndk-bundle

    1.2 配置NDK

    2.ndk环境搭建好,新建Test 测试工程

    2.1 新建好的项目如下:

    2.2检测local.properties 文件里面是否有ndk的路径,没有加上。

    2.3  然后在app\build.gradle 

    加上这段代码:

    ndk{

    moduleName “MyLibrary”

    }

    sourceSets.main{

    jni.srcDirs = []

    jniLibs.srcDir “src/main/libs”

    }

    别加错位置了。具体见下图:

    2.4 在gradle.properties中添加

    android.useDeprecatedNdk=true

    2.5 然后新建JNI文件夹

    2.6下面开始配置工具三个工具,分别用来编译java类文件,C文件。clean JNI工程

    File--->settings-->external Tools  ,分别配置javah,ndk-build ,ndk-build clean 

    javah配置:

    ndk-build 配置:

    ndk-build clean 配置:

    3. 添加对应JNI 代码:

    3.1   // 1 定义一个c方法的接口  相当于在java代码中定义了一个接口 接口的实现方法是C语言实现的

    public native String helloWorldFromC();

    Activity 中调用JNI,如图:

    3.2 点击 external Tools javah  编译myndk

    下图结果表示编译通过,同时生成了com_example_test_myjnitest_myndk.h

    3.3  将com_example_test_myjnitest_myndk.h 剪切到JjniI文件目录下,并且将内容全部拷贝到新建test.c中

    注意 Java_com_example_test_myjnitest_myndk_sayHello 方法参数修改,具体实现在该方法内

    3.4jni文件目录下,新增andrond.mk

    / andrond.mk  告诉编译器 如何把c代码打包成函数库

    LOCAL_PATH := $(call my-dir)

    include $(CLEAR_VARS)

    LOCAL_MODULE    := TestHello (库函数名字)

    LOCAL_SRC_FILES := test.c (接口C语言实现的文件名)

    include $(BUILD_SHARED_LIBRARY)

    3.5  把c代码 打包成函数库 ,右击test.c文件 ,external Tools --》ndk-build

    编译成功,无错误,如下图

    生成lib文件如图:

    3.5 在myndk  java代码中 引入库函数 // 注意事项 去掉前面的lib 后面的.so 用于加载lib文件

    3.6 在Activity代码中调用myndk JNI 接口

    最后运行app 查看效果!

    相关文章

      网友评论

        本文标题:JNI(NDK)开发教程二 (androidstudio JNI

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