JNI/NDK开发指南

Posted wzzkaifa

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JNI/NDK开发指南相关的知识,希望对你有一定的参考价值。

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开发指南的主要内容,如果未能解决你的问题,请参考以下文章

JNI/NDK开发指南——字符串处理

JNI/NDK开发指南

JNI/NDK开发指南—— JNI开发流程及HelloWorld

JNI/NDK开发指南——字符串处理

JNI/NDK开发指南——JNI异常处理

AS2.2使用CMake方式进行JNI/NDK开发