生活
这一个礼拜过得真的是苦不堪言,上周因为打球脚踝直接扭伤,肿的想猪蹄一样,然后休息几天消肿了,可以缓慢龟速的行走了,然而五一回来上班第一天,上班鞋子还能穿上,下班脚已插不进鞋子里面了,好吧,又肿回来了,苦逼。
正文
回到正文,上篇我们已学习到了Android NDK开发之从环境搭建到Demo级十步流,主题是DNK环境搭建和Demo示例开发步骤,而今天我们要学习的是通过JNI实现Java和C之间的交互。
对于JNI的理解,上一节也已讲过,这里在回顾下:
JNI:Java Native Interface 也就是java本地接口,它是一个协议,这个协议用来沟通java代码和本地代码(c/c++)。通过这个协议,Java类的某些方法可以使用原生实现,同时让它们可以像普通的Java方法一样被调用和使用,而原生方法也可以使用Java对象,调用和使用Java方法。也就是说,使用JNI这种协议可以实现:java代码调用c/c++代码,而c/c++代码也可以调用java代码。
接下来就以一个登录实例来详细的讲解使用JNI来完成Java与C代码之间的交互。
Java 调用 C 本地方法
JNI使用演示
一、首先先构造登录界面
登录界面中有三个文本输入框,分别对应用户名,密码,验证码。详情如下
二、在Java2CJNI类中添加我们登录的login本地方法,且方法中带有三个不同类型的参数
三、使用javah生成头文件,并存放在jni文件夹下,且在本地方法中实现我们的登录逻辑(具体的逻辑将会在下面的JNI使用中详细讲解)
四、在我们的MainActivity中调用本地方法
五、来看执行结果