
正文
ndk调用java代码 ndk java
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
如何在C/C++中调用Java
比如你可以在c语言中调用system(java -jar xxx.jar)当然,这种方法很坑爹。需要用文件或者网络来实现数据的传输和交换的介质。
Java端可以做成网络服务,方法就很多了,可以是RESTful形式、基于SOAP的WebService、或者用Netty等。C/C++端可以通过开源库libcurl调用RESTful形式的接口、可以通过gSoap调用基于SOAP的WebService接口。
C语言调用Java,还有Java调用C,都使用到JNI技术,C语言调用需要创建Java虚拟机,可查看函数JNI_CreateJavaVM、DestroyJavaVM的资料,函数声明在jni.h头文件(JDK)中。
B项目发布一个webservice服务,提供相关的功能。A项目调用B发布的webservice服务即可。
第一步,总的思路。以前我都是用loadrunner直接进行录制,但是有些协议的确不好弄不知道怎样进行录制,像vb,c++,java语言做的东西我觉最简单的方式就是直接调用相关的类文件,动态链接库,直接用代码的方式进行调用。
相关问答
Q1: 有一个.h和.cpp文件在Android项目中,怎样能够使用NDK在java中调用。
首先去官网下载一个最新的NDK,随便放到哪都行,像我放在D:\Dev\Android\android-ndk-r10d.(1) 新建一个项目:名称JniAes 首先在java类中添加native接口,注意写好native接口和System.loadLibrary()即可。
-o文件输出文件(只能使用-d或-o中的一个) -jni生成JNI样式的头文件(默认) -version输出版本信息 -verbose启用详细输出 -force始终写入输出文件 使用全限定名称指定类(例 如,java.lang.Object)。
在解决方案资源管理器那,右击解决方案--添加--现有项。选择你需要的文件,那就好了。
你可以整多几个module,每个module一个apk,这样是可以了。
这三个东西都是NDK部分: .externalNativeBuild文件夹:cmake编译好的文件, 显示支持的各种硬件等信息。系统生成。 cpp文件夹:存放C/C++代码文件,native-lib.cpp文件是该Demo中自带的,可更改。需要自己编写。
NDK中 apps下本身就有一个例子,two-libs,就是引用静态库。
Q2: NDK和直接用JAVA编写代码哪个效率更高
1、C的运行效率明显要比JAVA高,因为C是编译型的,直接将源码编译成机器代码;而JAVA是解释型,源码被编译成二进制伪代码,由JAVA虚拟机解释执行。
2、Java的编写效率一般高一点,Java提供的功能多一点,所以相对来说写的代码可以少一点;C++的运行效率要高于Java,实现同样的功能,C++的运行时间一般要比Java程序短很多。
3、看了你的描述,我想这个so应该没有包括与java交互这块的接口,你需要另外编写一个so通过JNI提供java与该C项目的交互接口。这个C项目的头文件你应该有吧,你只需用JNI再封装一下就可以了。
关于ndk调用java代码和ndk java的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。








