反射调用Java层方法(java 反射 调用方法)

网友投稿 301 2022-10-07


反射调用Java层方法(java 反射 调用方法)

在底层C代码中反射获取Java层字段的值的基础上,我们继续学习反射调用Java层方法,进一步完善登录功能。

一:在LoginActivity中定义两个方法

打开eclipse工具,找到上节课创建好的“yijindaxue”工程,在工程中依次找到“src”=>“com.yijindaxue”目录下“LoginActivity.java”文件,双击打开该文件。

在该文件中添加两个方法,如下图所示:

第一个方法:userError用于提示用户输入的账号错误。

第二个方法:pwdError用于提示用户输入的密码错误。

二:编写C代码

1.在“yijindaxue”工程中找到“jni”目录下的“yijindaxue.c”文件,双击打开该文件。

2.在“yijindaxue.c”文件中找到Java_com_yijindaxue_LoginActivity _login函数,完善该函数的登录功能,如下图所示:

(1)调用strcmp函数来比较用户输入的账号是否正确,如果不正确则通过反射调用Java层的成员方(userError),提示用户输入的账号错误。

第一步:调用GetMethodID函数获取Java层成员方法的ID。第二步:使用CallVoidMethod函数调用Java层成员方法。

(2)调用strcmp函数来比较用户输入的密码是否正确,如果不正确则通过反射调用Java层的静态方(pwdError),提示用户输入的密码错误。

第一步:调用GetStaticMethodID函数获取Java层静态方法的ID。第二步:使用CallStaticVoidMethod函数调用Java层静态方法。

三: 编译动态链接库

四:运行应用程序

小结:

主要学习了反射调用Java层方法,完善登录功能,步骤如下:

1、在LoginActivity中定义userError和pwdError两个方法,用于提示用户输入的账号和密码是否正确。

2、编写C代码,反射调用Java层方法。

(1)反射调用成员方法。第一步:调用GetMethodID函数获取Java层成员方法的ID。第二步:使用CallVoidMethod函数调用Java层成员方法。

(2)反射调用静态方法。第一步:调用GetStaticMethodID函数获取Java层静态方法的ID。第二步:使用CallStaticVoidMethod函数调用Java层静态方法。

3、使用NDK工具编译.c文件生成动态链接库.so文件。

4、运行应用程序。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Fluent Mybatis,原生Mybatis,Mybatis Plus三者功能对比
下一篇:HOOK框架——静态代理(hook协议)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~