Android 中 c 代码回调Java代码的详细步骤(jni、NDK的使用)

来源:互联网 发布:复杂网络应用实例 编辑:程序博客网 时间:2024/05/22 06:55

在Android中大多数是我们进行调用java语言调用c语言进行使用,而很少使用c语言进行回调java语言使用。在本篇主要介绍的是c语言调用java语言

1、创建一个项目,在项目中创建一个DataProvider类进行使用,代码如下:

package com.yoyoyt.encrypt;/** * 作者:刘净辉 * 日期:2017/6/1 17:34 */public class DataProvider {    static {        System.loadLibrary("hello");    }    /**     * C调用java空方法     */    public void nullMethod() {        System.out.println("hello from java");    }    /**     * C调用java中的带两个int参数的方法     *     * @param x     * @param y     * @return     */    public int Add(int x, int y) {        int result = x + y;        System.out.println("result in java " + result);        return result;    }    /**     * C调用java中参数为String的方法     *     * @param s     */    public void printString(String s) {        System.out.println("java " + s);    }    // 本地方法    public native void callMethod1();    public native void callMethod2();    public native void callMethod3();}

2、进行编译生成class文件,生成头文件步骤

(1)在Android Studio中的Terminal 视图下输入

cd D:\androidstudioproject\Encrypt\app\build\intermediates\classes\debug

(2)在这个下面输入如下命令

javah -classpath . -jni  com.yoyoyt.encrypt.DataProvider

这样,我们的头文件生成出来,我们可以在\app\build\intermediates\classes\debug看见

3、查看类的方法签名

(1)在Terminal 输入如下命令

 javap -s -p -classpath . com.yoyoyt.encrypt.DataProvider

(2)效果如下:

这里写图片描述

阅读全文
0 0
原创粉丝点击