Android Studio Ndk So 文件

作者: Lrxc | 来源:发表于2018-07-12 16:04 被阅读39次

    一 下载NKD,并解压
    官网:https://developer.android.com/index.html
    二 新建项目
    1 新建Android Studio项目
    2 项目配置NDK路径

    image.png
    3 gradle.properties 增加
    //使用NDK
    android.useDeprecatedNdk=true
    

    3 项目的build.gradle defaultConfig增加

     ndk {
                moduleName "native-jni"        // 生成的so动态库名称
                abiFilters "armeabi", "armeabi-v7a", "x86" // 输出指定三种abi体系结构下的so库
            }
    

    三 写相关代码
    1 新建jni目录
    2 新建jni调用类

    public class JNIUtils {
        // 加载native-jni
        static {
            System.loadLibrary("native-jni");
        }
        //java调C中的方法都需要用native声明且方法名必须和c的方法名一样
        public native String stringFromJNI();
    }
    

    3 打开底部Terminal 进入到 ../src/main/java路径下 生成 .h文件

    javah -d jni com.example.bxlt.myapplication.JNIUtils
    

    成功后生成对应文件


    image.png
    1. jni路径下新建c文件,保持名字一致


      image.png

      内容如下

    #include "com_example_bxlt_myapplication_JNIUtils.h"
    
    JNIEXPORT jstring JNICALL Java_com_example_bxlt_myapplication_JNIUtils_stringFromJNI
      (JNIEnv *env, jobject obj){
        return (*env)->NewStringUTF(env,"这里是C++代码");
      }
    

    C的内容说明:这三个地方名字一致


    image.png

    5 Android 调用

            TextView tv = findViewById(R.id.tv);
            tv.setText(new JNIUtils().stringFromJNI());
    
    image.png

    6 SO文件


    image.png

    相关文章

      网友评论

        本文标题:Android Studio Ndk So 文件

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