CanPHP框架技术讨论

导航

 

2012年11月13日

摘要: 这两天看了《深入理解Android卷1》的第二章深入理解JNI,并写了个小程序验证书中的例子。第一次学习JNI碰到了些小问题,现总结如下。下面的内容只是按照自己的理解来写不一定完全正确,欢迎指正。1.关于JNIEnv和JavaVMJNIEnv是一个与线程相关的变量,不同线程的JNIEnv彼此独立。JavaVM是虚拟机在JNI层的代表,在一个虚拟机进程中只有一个JavaVM,因此该进程的所有线程都可以使用这个JavaVM。当后台线程需要调用JNI native时,在native库中使用全局变量保存JavaVM尤为重要,这样使得后台线程能通过JavaVM获得JNIEnv。(这句话引用了《深入理解A 阅读全文
posted @ 2012-11-13 22:43 創丗仼 阅读(1615) 评论(0) 推荐(0) 编辑
 
摘要: 有关Android JNI开发中比较强大和有用的功能就是从JNI层创建、构造Java的类或执行Java层的方法获取属性等操作。一、类的相关操作 1.jclass FindClass(JNIEnv *env, const char *name);查找类 该函数可能做过Java开发的不会陌生,这个是JNI层的实现,需要注意的是第二个参数为const char*类型的,我们如果从Java从层传入unicode编码的jstring类型需要使用GetStringUTFChars函数转换成utf8的const char*,如果成功返回这个Java类的对象jclass,相关的异常可能有 (1.ClassFo 阅读全文
posted @ 2012-11-13 22:40 創丗仼 阅读(921) 评论(0) 推荐(0) 编辑
 
该文被密码保护。 阅读全文
posted @ 2012-11-13 20:27 創丗仼 阅读(24) 评论(0) 推荐(0) 编辑