码迷,mamicode.com
首页 > 其他好文 > 详细

JNI/NDK开发指南(2)

时间:2014-12-22 00:56:00      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:

1.生成动态库.so,存放于手机的system/lib/中(APP如何将.so存入该目录,奇怪?????),Java层调用JNI的类会执行静态代码System.loadLibrary("***")将手机的system/lib目录中的动态库加载到VM。

2..so动态库里,C组件开发者通过JNI_OnUnload()函数进行初始化。当然,老版的JNI是没有JNI_OnUnload()函数的,从而VM也能根据有无该函数判断JNI是新版or老版。

3.JNI_OnUnload()函数还能将.so提供的各个本地函数登记(怎样的登记过程???)到VM里,以便能加快后续呼叫本地函数的效率。

4.正如在载入.so时会立即呼叫JNI_OnLoad()来进行组件内的初始化;当VM释放该C组件时,也会呼叫JNI_OnUnload()函数来进行善后清除动作。

5.关于JNIEnv的个人理解:例如多个线程中创建了同一个类的对象,并调用对象的native方法,这时会向native方法传递一个参数JNIEnv,表明native方法方法所运行的环境即该native方法运行在哪个线程。

JNI/NDK开发指南(2)

标签:

原文地址:http://blog.csdn.net/berber78/article/details/42069469

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!