androidAndroid架构师之路

Android Studio Ndk So 文件

2018-07-12  本文已影响39人  Lrxc

一 下载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
上一篇 下一篇

猜你喜欢

热点阅读