标签:网盘下载 int 文件中 gradle head set str rate included
版权声明:本文出自阿钟的博客,转载请注明出处:http://blog.csdn.net/a_zhon/。
native方法如下图:HelloWorld.java进行编译,然后使用javah -jni命令编译获取jni所需要的头文件javah -jni命令。,命令javah -jni 包名.类名错误: 找不到‘com.zsy.hellojni.HelloWorld‘ 的类文件。···\src\main\java目录下看到一个.h文件/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class com_zsy_hellojni_HelloWord */
#ifndef _Included_com_zsy_hellojni_HelloWord
#define _Included_com_zsy_hellojni_HelloWord
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     com_zsy_hellojni_HelloWorld
 * Method:    helloWorld
 * Signature: ()Ljava/lang/String;
 * TODO:      返回一个字符串
 */
 //相当于Interface里的抽象方法
JNIEXPORT jstring JNICALL Java_com_zsy_hellojni_HelloWorld_helloWorld
  (JNIEnv * env, jclass);
/*
 * Class:     com_zsy_hellojni_HelloWorld
 * Method:    add
 * Signature: (II)I
 * TODO:       做一个加法
 */
JNIEXPORT jint JNICALL Java_com_zsy_hellojni_HelloWorld_add
  (JNIEnv * env,jclass , jint , jint);
#ifdef __cplusplus
}
#endif
#endif
hello_jni.c文件来实现.h文件中的抽象方法//自己创建一个c文件,实现自己定义的native方法,也就是.h文件中的方法
//引入自己生成的.h头文件
#include <com_zsy_hellojni_HelloWord.h>
//返回一个字符串
JNIEXPORT jstring JNICALL Java_com_zsy_hellojni_HelloWorld_helloWorld
  (JNIEnv *env, jclass jobj) {
    return (*env)->NewStringUTF(env,"HelloWorld 我是用jni调用出来的字符串");
}
//返回 a+b的结果
JNIEXPORT jint JNICALL Java_com_zsy_hellojni_HelloWorld_add
  (JNIEnv *env, jclass jobj, jint a, jint b){
  return a+b;
}
build.gradle中添加ndk配置defaultConfig {
            //...
            ndk {
                 moduleName "Hello"//指定生成的so文件名
                abiFilters "armeabi", "armeabi-v7a", "x86"//cpu的类型
            }
        }

static {
        //名字必须和build.gradle中的moduleName一致
        System.loadLibrary("hello");
    }
    TextView textView = (TextView) findViewById(R.id.tv);
    String s = HelloWorld.helloWorld();
    int add = HelloWorld.add(3, 66);
    textView.setText(s+"\n"+"我是一个加法: "+add); 
Android JNI编程(七)——使用AndroidStudio编写第一个JNI程序
标签:网盘下载 int 文件中 gradle head set str rate included
原文地址:http://www.cnblogs.com/Free-Thinker/p/6169590.html