Tag: c

Android JNI原生C函数调用杀死活动

什么有效:我有一个运行TUN / TAP服务的ac可执行文件,以及两个在终端运行正常的shell脚本(用于配置“ip route”和“iptables”),都以root身份运行。 什么行不通:我试图创建一个Android应用程序来按下按钮后运行c可执行文件和shell脚本。 我最初做的就是onClick会用processBuilder创建一个进程,如下所示: final Button button1 = … … public void onClick(View v) { String ip_address = edIPAddress.getText().toString(); Process process; try { process = new ProcessBuilder() .command(“/system/bin/su”, “-c”, “/data/tuntapserv/armeabi/mytunserv ” + ip_address) .redirectErrorStream(true) .start(); InputStream in = process.getInputStream(); OutputStream out = process.getOutputStream(); pOutput.append(“TUN/TAP IS CONFIGURED!\n”); } catch (Exception e) { // TODO […]

指向结构数组的指针作为JNA方法参数

我试图通过SctpDrv库创建一个JNA实现。 我的问题是我没有理解指向结构数组的指针。 我试图寻找解决方案,但它们总是与我需要知道的略有不同。 JNA dokumentation仅显示一个带有指向基本类型数组的指针的示例。 似乎还有不同的方法,其中一些是被贬低的。 int WSAAPI internal_sctp_getpaddrs (SOCKET, sctp_assoc_t, struct sockaddr **); void WSAAPI internal_sctp_freepaddrs (struct sockaddr *); 根据文档,getpaddrs的第三个参数用于返回一个sockaddr结构数组。 声明相应的JNA方法的推荐方法是什么,如何准备参数,以及在我的java代码中调用之后访问它? 另外,为了帮助我理解,我将如何声明和使用一个函数,而参数是一个包含指针的数组?

TDD时提取类。 如何测试新提取的类?

所以我在我的主类中有几个方法使用矩阵来设置或关闭像素。 我已经运行了所有当前的测试,所以,我已经决定已经抽出一些与矩阵相关的逻辑,并创建一个Matrix类。 我的问题是,除了我目前为我的SUT课程进行的测试(我刚刚开始,所以我目前只有一个课程,SUT的主要课程),我应该为它创建unit testing吗? 如果是这样,你怎么做? 我的意思是,我现在是否让我所有的代码都是现在的,创建makeunit testing逐一进行测试第一种方法,直到我看到我拥有所有function上我想要的只有那里我重构我的代码? 我只是直接创建Matrix类,只是确保旧测试仍然通过,一切都好吗? 谢谢

从C ++访问Java类的最佳方法? (比直接使用JNI更好)

我必须在一个非常大的C ++应用程序中集成一个大型Java库。 解决方案是使用JNI,但这需要手动编写所有类的代码。 例如,Python有一个很好的解决方案,使用JPype( http://jpype.sourceforge.net/ )自动化该过程(尽管由于C ++和Python的不同性质,相同的解决方案不能应用于C ++)。 谢谢, 达斯

从JNI函数传回一个数组而不复制它

我正在尝试使用JNI使用C ++处理大块数据但是我无法理解天气,函数SetArrayRegion将按元素复制数组元素,或者它是否可以将数据留在原位并将其返回到调用java函数。 以下文档是我一直在阅读的内容,但目前仍不清楚发生了什么。 http://download.oracle.com/javase/1.5.0/docs/guide/jni/spec/functions.html 感谢您的帮助。

OpenCV C ++转换为Java以进行形状检测问题

我们对openCV Java开发有点新,并遇到了一个问题。 我们正在尝试将此代码转换为适用于Android的Java。 approxPolyDp需要一个MatOfPoint2f,其中我们有’approx’参数。 但是,当我们需要在ifContourConvex之后的if语句中使用这个相同的变量时,它需要一个MatOfPoint。 最初的原始代码是使用ArrayList大约。 我们对此非常困惑,需要在正确的方向上轻推,以了解我们应该做什么。 // Find contours java.util.ArrayList<java.util.ArrayList>(); List contours = new ArrayList(); Mat hierarchy = new Mat(); Imgproc.findContours(bw.clone(), contours, hierarchy, Imgproc.RETR_EXTERNAL, Imgproc.CHAIN_APPROX_SIMPLE); // java.util.ArrayList approx = new java.util.ArrayList(); MatOfPoint2f approx = new MatOfPoint2f(); Mat dst = img.clone(); for (int i = 0; i < contours.size(); i++) { // Approximate contour with […]

使用SWIG将signed char *类型的结构成员转换为Java(byte )中的字节数组

我正在尝试将signed char *类型的结构成员转换为Java中的字节数组。 我有以下结构: typedef struct { signed char * content; int contentLength; } Foo; 我试过这个: %typemap(jni) signed char *content [ANY] “jbyteArray” %typemap(jtype) signed char *content [ANY] “byte[]” %typemap(jstype) signed char *content [ANY] “byte[]” %typemap(javaout) signed char *content [ANY] { return $jnicall; } %typemap(memberin) int contentLength [ANY] { int length=0; $1 = &length; } %typemap(out) […]

C ++和Java中的虚函数

我一直在读虚拟function,发现, VF用于inheritance类的多态性。 因此,如果类和派生类都具有相同的函数名,则VF会将相应的函数绑定到函数调用。 即如果所讨论的函数在基类中被指定为虚拟,则将调用派生类的函数。 如果它不是虚拟的,则将调用基类的函数。 默认情况下,在Java中:所有函数都是Virtual C ++:非虚拟,可以使用final,private访问修饰符在Java中使用Virtual,而在C ++中使用Virtual关键字将函数设置为虚拟。 基于以上理论,我写了代码: #include class base{ public : virtual void function1(){ std::cout<<"BaseVirtual"<<std::endl; } void function2(){ std::cout<<"Base NonVirtual"<<std::endl; } }; class derieved: public base { public : void function1(){ std::cout<<"Derieved Virtual"<<std::endl; } void function2(){ std::cout<<"Derieved NonVirtual"<<std::endl; } }; int main() { base b1; derieved d1; b1.function1(); b1.function2(); d1.function1(); d1.function2(); […]

为DNA声明一种新的数据类型

我参与了生物学,特别是DNA,并且通常对基因组测序数据的大小存在问题。 对于那些没有生物学背景的人,我将快速概述DNA测序。 DNA由四个字母组成:A,T,G和C,其特定顺序决定细胞中发生的情况。 然而,DNA测序技术的一个主要问题是产生的数据的大小(对于整个基因组,通常远远超过千兆字节)。 我知道C中int的大小因计算机而异,但它仍有比四种选择更多的信息存储可能性。 有没有办法定义一种类型/方式来定义一个只占用2或3位的“基数”? 我已经搜索过定义一个结构,但我担心这不是我想要的。 谢谢。 此外,这会在其他语言(可能更高级别像Java)中更好地工作吗?

在codechef和spoj问题中使用modulo 10 ^ 9 + 7的意义是什么?

我正在研究一个问题 ,需要输出为“每行输出答案模10 ^ 9 + 7”。 为什么modulo 10 ^ 9 + 7包含在问题中? 它的意义是什么? 我不是在寻找问题的解决方案; 只有那个特定常数的重要性。