我已经读过,第一次从Java调用NDK函数时,Android必须在共享库中搜索匹配的函数签名。当我第一次从Java调用自定义NDK函数时,有一个明显的延迟(大约0.2s),以下调试输出出现在logcat中:
+++ not scanning '/system/lib/libwebcore.so' for 'myNdkFunction' (wrong CL)
+++ not scanning '/system/lib/libmedia_jni.so' for 'myNdkFunction' (wrong CL)
由于此功能调用在触摸事件期间发生,这意味着用户在首次使用我的应用时会看到一个小延迟。有没有办法强制Android提前找到我的NDK功能,以避免这种延迟?我可以在某处用虚拟参数调用我的函数,但是我需要弄乱我的函数定义以允许这样的参数,我宁愿不这样做。
答案 0 :(得分:1)
尝试JNI的RegisterNatives功能。以下是在Android上使用它的示例:
http://blog.jayway.com/2010/01/25/boosting-android-performance-using-jni/