java - 首次调用 NDK 函数时的查找延迟?

标签 java android java-native-interface android-ndk

我了解到,第一次从 Java 调用 NDK 函数时,Android 必须在共享库中搜索匹配的函数签名。当我第一次从 Java 调用自定义 NDK 函数时,有一个明显的延迟(大约 ~0.2 秒),并且以下调试输出出现在 logcat 中:

+++ not scanning '/system/lib/libwebcore.so' for 'myNdkFunction' (wrong CL)
+++ not scanning '/system/lib/libmedia_jni.so' for 'myNdkFunction' (wrong CL)

由于此函数调用发生在触摸事件期间,这意味着用户在首次使用我的应用程序时会看到一个小延迟。有没有办法强制Android提前找到我的NDK函数来避免这种延迟?我可以在某处使用虚拟参数调用我的函数,但我需要打乱我的函数定义以允许使用此类参数,而我不想这样做。

最佳答案

试试 JNI 的 RegisterNatives 函数。这是在 Android 上使用它的示例:

http://blog.jayway.com/2010/01/25/boosting-android-performance-using-jni/

关于java - 首次调用 NDK 函数时的查找延迟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5435735/

相关文章:

java - Nexus 接受上传但表示失败

java - 将 Windows 命令行输出从 Cp1252 转换为类似的字符串

java - JNI DLL 如何搜索其依赖的 native DLL?

android - 在android NDK jni中加密和解密utf8字符串

java - 从 Java 中的另一个类调用重绘?

java - 无法通过源启动 JIRA

android - 在relativeLayout中依次添加几个textView(可变宽度)

java - Android amazon s3 上传部分大小

android - 解析以该对象的最后一个值开头的多个 json 对象值。

java - Windows 8.1 上的磁带机目录路径