我了解到,第一次从 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/