草庐IT

JNI_OnLoad

全部标签

java - Android JNI native 代码中的 C++ 对象是否调用垃圾回收?

那么,我有一个概念性的问题。我一直在Android上使用JNI来做低级音频“东西”。我已经用C/C++完成了大量的音频编码,所以我认为这不是什么大问题。我决定在我的“native”代码中使用C++(因为谁不喜欢OOP?)。我遇到的问题(对我来说)似乎是一个奇怪的问题:当我在C++代码中创建一个用于处理音频的对象时,我从未将这个对象传递给Java(也没有相反),调用这个对象的方法对象似乎经常调用垃圾收集。由于这是在音频回调中发生的,结果是音频断断续续,而且我经常收到如下消息:WAIT_FOR_CONCURRENT_GCblocked23ms但是,当我通过创建静态函数(而不是调用memeb

javascript - 加载异步属性的脚本会延迟 onload 事件吗?

我在HEAD部分有一个带有script标签的页面:因为它包含async属性,所以它异步加载并且浏览器解析页面而不等待此脚本被下载。下载后,此脚本将执行,也是异步执行,以便浏览器可以继续解析页面。此脚本一旦下载,将执行一些操作并通过类似于此的方式动态插入另一个脚本:vara=document.createElement('script');a.type='text/javascript';a.src='http://domain/otherscript.js';varelem_body=document.getElementsByTagName('body')[0];elem_body.

Javascript FileReader onload 未触发

我有一段时间没有使用JavaScript,我似乎无法读取文本文件并显示内容。我试过onload和onloadend。如果我只是输入reader.onload=alert('Hello');警报会触发,但我无法使用该函数进行任何操作。不确定从这里去哪里。我试过在reader.onload=function(evt)...之后定义函数,但这不起作用。我也在Safari6.0.5和Chrome中尝试过。PitoColorsfunctionreadFile(){varreader=newFileReader();reader.onload=readSuccess;functionreadSuc

Javascript onload 事件 - 如何判断脚本是否已经加载?

如何使用javascript确定HTMLScriptElement是否已经完全加载?如何使用onload或onreadystate更改事件确定动态加载的脚本是否已完成加载?代码如下:TOOL.loadScript=function(url,callback,reappend,deepSearch){varhead,curr,child,tempScript,alreadyAppended,queue,alreadyHandled,script,handler,loadFunc;head=document.getElementsByTagName("head")[0];tempScrip

java - JNI - java ArrayList 转换为 c++ std::string*

我正在尝试使用C++中的JNI进行数据转换。我在使用java的ArrayList的strings时遇到了麻烦,因为我无法将这样的数据转换成c++vector或std::string*。如果可能的话,我想知道如何在不牺牲太多性能的情况下进行这种转换。任何想法,将不胜感激。 最佳答案 我不知道这是否符合您的性能要求,但这可能是一个好的开始。对于这两个选项,假设jobjectjList;是您的ArrayList。选项1将List转换为数组并在数组上迭代(如果你有一个LinkedList而不是ArrayList可能更适用)//retriev

c++ - 如何使用 Microsoft Visual C++ 编写代码调用 JNI

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭11年前。如何在microsoftvisualc++2010Express中编写C代码?我不会这样做。我正在编写一些C代码,但编译时出现错误。请推荐一些方法?我写了这段代码:#include"jni.h"#include"stdio.h"#include"HelloWorld.h"JNIEXPORTvoidJNICALLJava_HelloWorld_print(JNIEnv*env,jobjectobj

java - JNI 调用返回对象的 Java 函数导致 NoSuchMethodError

我有一个Java函数,它返回一个类的单例实例publicstaticsynchronizedMyClassgetInstance()throwsMyClassException{if(instance==NULL){//create}returninstance;}我想通过C++代码调用它,但是当我这样做时,它返回了一个NoSuchMethodError。cls=jenv->FindClass("MyClass");if(cls==NULL){//errorhandling}mid=jenv->GetStaticMethodID(cls,"getInstance","()LMyClas

java - JNI Stream 二进制数据从 C++ 到 Java

我需要帮助将二进制数据传递到Java。我正在尝试使用jbytearray,但是当数据进入Java时,它似乎已损坏。有人可以帮帮我吗?这是一些示例代码的片段。首先是nativeC++端:printf("Buildingaudioarraycopy\n");jbyteArrayrawAudioCopy=env->NewByteArray(10);jbytetoCopy[10];printf("Fillingaudioarraycopy\n");chartheBytes[10]={0,1,2,3,4,5,6,7,8,9};for(inti=0;iSetByteArrayRegion(rawA

java - 使用 JNI 构建 C++ Java 包装器

我目前正在为C++类编写JNI包装器,我不确定到目前为止我所做的是否是最正确的方法。据我所知,不可能声明一个Java构造函数native,所以我最后写了类似这样的东西:packagelog;publicclassLogger{privatelonginternalPtr=0;privatenativelongcreateNativeInstance(Stringapplication,Stringmodule,Stringfunction);publicLogger(Stringapplication,Stringmodule,Stringfunction){this.internal

c++ - 在 Android 上使用 OpenCV 将 cv::Mat 传递给 JNI 时出错

我正在使用OpenCV和JNI开发一个Android项目。实际上我正在更改人脸检测示例。我遇到的问题是,当我传递cv::Mat引用时,它会给出一些奇怪的输出,但传递不顺利。为了让您了解情况,我在我的FdActivity.java中有这个,这是我的android应用程序的主要事件:publicMatonCameraFrame(CvCameraViewFrameinputFrame){rgb=inputFrame.rgba();Matres=mNativeDetector.process(rgb);returnres;}过程函数是这样的:publicMatprocess(Matrgb){M