java-native-interface相关内容

有任何简单的登录Android NDK代码的方法吗?

我正在寻找一种使用Eclipse在Android NDK应用程序中轻松调试C代码的方法.我已经阅读了使用gdb或类似工具调试应用程序的方法,但是我想要的是以某种方式将消息推送到Eclipse的方法. 我正在寻找一种简单的解决方案,就像在C语言中使用打印功能并在DDMS日志或任何类似内容中看到它一样.有没有人有这样做的经验? 解决方案 您可以使用Android日志记录功能: #i ..
发布时间:2020-05-03 07:36:58 移动开发

如何在Android Studio中使用我自己的Android.mk文件

我在Android.mk文件中定义了一些变量(我为编译器传递了一些标志),但是每次构建项目时,Android.mk都会被覆盖.我假设Gradle是负责任的,我应该去那里看看吗? 如何使用自己的Android.mk文件? 背景信息: Ubuntu 64位,Android Studio 1.0.1,JDK7. 我已经用还没有Application.mk文件,所以我再次假设Gradle负责对 ..

Java本机接口方法和模块名称的命名约定吗?

我完全可以按照jni教程进行操作.但是,当我更改方法名称时,就会遇到麻烦.我需要遵循一个命名约定吗?本教程使用HelloJNI作为模块名称和库名称.我使用了"useaaacom". 对此我获得了很好的反馈,并且我正在取得进展.我有一个相关的问题;让我知道是否要为此再创建一个帖子.我喜欢在此应用程序上构建,该应用程序现在可以运行.如何从设备驱动程序调用函数?我有头文件,并且驱动程序已加载到我的 ..

Linux上的JNI问题:无法打开共享对象文件

我在这里看到了这个问题,尝试了建议的修复程序,但到目前为止对我而言没有成功.我有一定的Java经验,但是JNI很久以前了,虽然在Linux上从来没有... 我正在尝试让一个简单的HelloWorld JNI应用程序在Linux上运行. 小型java文件: class HelloWorld { private native void print(); publi ..
发布时间:2020-05-01 09:49:43 服务器开发

静态库和JNI

我创建了一个头文件和一个相应的.c文件,其中包含我想与Java程序一起使用的功能.我使用javah创建了JNI头文件.我正在使用gcc编译我的头文件.如何将常规C对象文件与JNI静态库链接以获得使用C库的静态库?我正在使用gcc进行编译. 这是我要问的一个例子: lib.h lib.c JNITest.h JNITest.c (uses lib.h functions) 解决方案 ..
发布时间:2020-05-01 03:49:11 其他开发

Android NDK/JNI:构建依赖于其他共享库的共享库

我正在编写一个Android应用,该应用希望对使用NDK内置的共享库进行JNI调用.诀窍在于,此共享库调用了其他共享库提供的功能.其他共享库是已在其他位置编译的C库. 这是我尝试过的: 我的环境: 我正在Eclipse中工作.我添加了本机支持并拥有jni库.在该库中,我有我的代码和一个\ lib目录,在该目录中已复制了其他.so文件. 尝试排名第一的Android.mk:只需告诉 ..

JNI错误(应用错误):本地参考表溢出(最大值= 512)

我正在尝试使用自己的数据集运行 LibSVMAndroidClassification Android项目.它与已经提供的数据集完美配合,当我使用100行(小于原始大小的1%)的csv时,也可以配合使用.但是,当我尝试使用例如1000行的"Train CSV"时,我会看到此错误.我什至尝试在Manifest.xml中设置android:largeHeap ="true",但没有任何改善. 这 ..
发布时间:2020-04-30 10:46:16 移动开发

Java:InputStream太慢,无法读取大文件

我必须逐字符读取一个53 MB的文件.当我使用ifstream在C ++中完成此操作时,它以毫秒为单位完成,但是使用Java InputStream则需要几分钟. Java这么慢是正常的还是我错过了什么? 此外,我需要用Java完成程序(它使用servlet,而我必须从servlet调用处理这些字符的函数).我在想也许是用C或C ++编写文件处理部分,然后使用Java Native Inte ..
发布时间:2020-04-29 03:28:37 Java开发

为什么Java会忽略选项"-XX:ErrorFile =/dev/null"?

我想防止JVM生成崩溃日志文件,所以我的启动脚本看起来像这样 java -XX:ErrorFile=/dev/null MyClass 但是当jvm崩溃时,日志文件'hs_err_pidXXXXX.log'仍会在当前工作目录中生成.为什么? 操作系统:ubuntu 18.04,Java版本:oracle java 10 解决方案 如果指定给-XX:ErrorFile的文件存 ..
发布时间:2020-04-25 07:40:30 Java开发

JVMTI代理与单独的JVM之间的通信

首先,我很抱歉,这已经在这里得到了一定的回答,但是我认为我的情况有所不同. 如何与附加的jvmti代理进行通信在运行的JVM上 我的主要问题是... 我想知道是否仍然使用JNI或其他库在JVMTI Native Agent和完全独立的JVM之间进行通信. 这是一个小插图 那么这里发生了什么. 左侧的JVM装有本机代理.仅出于讨论目的,让我们假设我无权访问此Java应用程序的 ..
发布时间:2020-04-25 07:38:09 Java开发

在gc期间调用JNI函数时,JVM崩溃

我们有一个Java应用程序,该应用程序具有多线程(pthread)的JNI层,并将在从底层网络接收到消息时回调到Java级别. 我们注意到,每次崩溃它都是由gc引起的.我们甚至可以通过在JNI层从网络接收消息时调用jmap -histo 手动触发gc来模拟这种崩溃. 鉴于本文中我们已阅读的有关GC期间JVM中的行为的信息, https://stackoverflow.com/ ..
发布时间:2020-04-25 07:33:27 Java开发

如何在Java中计算对象的数字年龄

我想知道Java对象的年龄,当我们使用new关键字时,用户定义的对象是用Java创建的,但是何时将其销毁? 跨越JVM的权限空间需要花费时间吗?我可以使用JNI编程知道对象的数字年龄吗? 生存空间,烫发空间和物体年龄之间是什么关系? 解决方案 在Java中,对象的年龄存储在// The markOop describes the header of an object. // ..
发布时间:2020-04-25 07:33:15 Java开发

通过JNI将本机应用程序附加到Linux上已在运行的JVM

类似的问题已在Windows中得到解答,但我找不到了解如何在Linux上实现相同的目标. 我想加深我对JNI的了解.我已经使用 JNI_CreateJavaVM ,从本机应用程序中创建一个新的JVM. 但是这次,我想不在本机应用程序中创建JVM(即, not 使用 Linux上是否有一种方法可以实现此目的?我需要获取正在运行的JVM的JavaVM对象.我尝试使用 JNI_GetCrea ..
发布时间:2020-04-25 07:32:41 Java开发