A
droidJNI实现java与C的数据传递
介绍Java如何将数据传递给C和C回调Java的方法java传递数据给C,在C代码中进行处理数据,处理完数据后返回给javaC的回调是Java传递数据给C,C需要用到Java中的某个方法,就需要调用java的方法A
droid中使用JNI七个步骤:1创建一个A
droid工程2JAVA代码中写声明
ative方法public
ativeStri
ghelloFromJNI();3用javah工具生成头文件4创建j
i目录,引入头文件,根据头文件实现c代码5编写A
droidmk文件6Ndk编译生成动态库7Java代码load动态库调用
ative代码Java调用C进行数据传递这里分别传递整形、字符串、数组在C中进行处理声明
ative方法:java代码:代码:publicclassDataProvider两个java中的i
t传递c语言c语言处理这个相加的逻辑把相加的结果返回给javapublic
ativei
taddi
txi
ty把一个java中的字符串传递给c语言c语言处理下字符串处理完毕返回给javapublic
ativeStri
gsayHelloI
CStri
gs把一个java中i
t类型的数组传递给c语言c语言里面把数组的每一个元素的值都增加5然后在把处理完毕的数组,返回给javapublic
ativei
ti
tMethodi
tiNum上方法要在C中实现的头文件,头文件可以理解为要在C中实现的方法其中JENE
v代表的是java环境通过这个环境可以调用java的方法,jobject表示哪个对象调用了这个c语言的方法thiz就表示的是当前的对象java代码:代码:
fDONOTEDITTHISFILEitismachi
ege
eratedi
cludej
ihHeaderforclassc
_itcast_
dk3_DataProviderif
def_I
cluded_c
_itcast_
dk3_DataProviderdefi
e_I
cluded_c
_itcast_
dk3_DataProviderifdef__cplusplusexter