ndk,jni入门随笔
因为工作缘故最近在研究jni,ndk方面知识,在此总结入坑以来的一些问题.
配置环境可以在下面geogle官方看。下面是链接
我一说ndk,jni可能小伙伴要问了这是什么,在此我来总结我个人的看法
jni就是一个接口,使java语言和c/c++之间能通信。
ndk则算一个使android端支持c/c++的开发环境,而sdk是androd端支持java的开发环境。
在android端定义一个native接口,他会在native_lib.cpp文件夹自动生产其对应的jni方法
不过需要记住的是一定要在其生成的方法前面加extern"C",如果不加程序会报错误,一直运行不起来
下面说说配置Log,需要在你的cpp文件中加入这3句话
下面是我的log输出日志
到了这步基本配置就完成了。
当我们打开cpp文件的时候总能看到这些j开头的数据类型,可能会很好奇,这是啥新语言么,其实不是的.这是本地类型
我们来看看其对于的源码,这其实就是java代码在本地类型的对应表达形式,我们可能把他等价为当成java类型,
基本数据类型能直接进行操作,但是如果String类型则不能直接操作,因为c/c++没有String这个类型,所以无法进行操作。这是固定写法,不过如果要返回最后要转换成本地类型。需要注意的c和c++写法不同的,小伙伴要先学习c和c++哦。
String类型固定操作
下面是基本数据类型char的操作