AndroidStudio JNI SayHello

AndroidStudio新版本弃用ndk了,那我们就使用Cmake来玩JNI吧!

准备工作

acb41b3d001f125392cddf2571aea2154f4.jpg

1. 新建Android工程,创建

JniUtils.java
package com.example.hellojni;

public class JniUtils {
    static {
        //名字注意,需要跟你的build.gradle ndk节点下面的名字一样
        System.loadLibrary("NameProvider");
    }
    native static String getName();
}

2.切换到Terminal工作区,输入native源码路径 javah com.example.hellojni.JniUtils ,然后回车这时创建出新的.h文件“com_example_hellojni_JniUtils.h”。 

 

83f7489fb5ee26a755668901b7c84ce9c5f.jpg

3.新建jni文件夹,移动 com_example_hellojni_JniUtils.h 文件到 jni文件夹。新建 getName.cpp 实现getName方法。

//注意这里要修改对应的h文件名
#include "com_example_hellojni_JniUtils.h"
JNIEXPORT jstring JNICALL Java_com_example_hellojni_JniUtils_getName
    (JNIEnv * env, jobject obj){
//如果是用C语言格式就用这种方式
//  return (*env)->NewStringUTF(env,"Kiss dream");
  //如果是用C语言格式就用这种方式
return env->NewStringUTF((char *)"Kiss dream");
}

4.新建 CMakeLists.txt,注意路径位置!!!

0f4e71f69c7f4ad9f52b4b40ac044fa56e3.jpg

5.修改build.gradle,在 defaultConfig 节点下加入

// 使用Cmake工具
externalNativeBuild {
    cmake {
        cppFlags ""
        //生成多个版本的so文件
        abiFilters 'arm64-v8a','armeabi-v7a','x86','x86_64'
    }
}

在 android 节点下加入 

// 配置CMakeLists.txt路径
externalNativeBuild {
    cmake {
        path "CMakeLists.txt"  // 设置所要编写的c源码位置,以及编译后so文件的名字
    }
}

3a5eb2dccdebc00e0cf408f380a2f8b29e1.jpg

 

最后编译运行

5346af978fb5a3d8d9d10cf3e651fda7ecf.jpg

 

以上为Android JNI 初识,后期多多运用!!!谢谢!

 

源码下载地址 

 

转载于:https://my.oschina.net/u/2358780/blog/3078492

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值