摘要: 对于程序员来说内存可以简化成这样一种东西:<img src="https://pic1.zhimg.com/4d060c3f67c22cd4b07273db00f64708_b.jpg" data-rawwidth="543" data-rawheight="100" class="o 阅读全文
posted @ 2016-04-05 16:22 aiguozhe1991 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 注册native函数有两种方法:静态注册和动态注册。 1、静态注册方法 根据函数名找到对应的JNI函数:Java层调用函数时,会从对应的JNI中寻找该函数,如果没有就会报错,如果存在则会建立一个关联联系,以后在调用时会直接使用这个函数,这部分的操作由虚拟机完成。 静态方法就是根据函数名来遍历java 阅读全文
posted @ 2016-04-05 15:24 aiguozhe1991 阅读(320) 评论(0) 推荐(0) 编辑
摘要: 一、jni调用java对象 JNI提供的功能之一是在本地代码中使用Java对象。包括:创建一个java类对象和通过函数传递一个java对象。创建一个java类对象,首先需要得到得到使用FindClass/GetObjectClass函数得到该类,然后使用GetMethodID方法得到该类的方法id, 阅读全文
posted @ 2016-04-05 15:21 aiguozhe1991 阅读(2942) 评论(0) 推荐(0) 编辑
摘要: 一、涉及到的jni编程知识 Java基本类型的数组,在JNI中都是jArray的类型格式。具体类型如下: typedef jarray jbooleanArray; typedef jarray jbyteArray; typedef jarray jcharArray; typedef jarra 阅读全文
posted @ 2016-04-05 15:19 aiguozhe1991 阅读(1110) 评论(0) 推荐(0) 编辑
摘要: Android.mk是Android提供的一种makefile文件,用来指定诸如编译生成so库名、引用的头文件目录、需要编译的.c/.cpp文件和.a静态库文件等。要掌握jni,就必须熟练掌握Android.mk的语法规范。 一、Android.mk文件的用途一个android子项目中会存在一个或多 阅读全文
posted @ 2016-04-05 15:18 aiguozhe1991 阅读(189) 评论(0) 推荐(0) 编辑
摘要: android中很多Java类都具有native接口,这些接口由本地实现,然后注册到系统中。 主要的JNI代码放在以下的路径中:frameworks/base/core/jni/,这个路径中的内容被编译成库 libandroid_runtime.so,被放置在目标系统的/system/lib目录下。 阅读全文
posted @ 2016-04-05 15:16 aiguozhe1991 阅读(381) 评论(0) 推荐(0) 编辑