一、什么是JNIJava Native Interface(JNI)是Java语言的本地编程接口是Java 与操作系统本地代码互相调用的功能的接口二、Java 调用C/C++步骤:1、在Java类中声明native方法新建一个 Java 工程 TestNativeCode 包 com.fomagic...
分类:
其他好文 时间:
2015-07-25 12:05:41
阅读次数:
109
今天看了nate的ndk视频,随手记录一下,方便自己以后好查找。 1. 下载NDK; 2. 解压到自定义的目录下。 3. 配置环境变量,因为需要ndk-build这个命令来构建。 4. 定义一个native方法 5. 新建jni文件夹 6. 生成jni头文件。 命令行下切换到项目的根目录,执行jav...
分类:
其他好文 时间:
2015-07-11 20:07:07
阅读次数:
242
在Android项目中用到JNI,当用了proguard后,发现native方法找不到很多变量,原来是被produard优化掉了。所以,在JNI应用中该慎用progurad啊。解决办法:1、在Android.mk中加入一行:LOCAL_PROGUARD_FLAGS := -include $(LOC...
分类:
移动开发 时间:
2015-06-24 10:49:18
阅读次数:
293
关于c和cpp实现native方法的一些注释:1> 在jni.h中首先定义了C的实现方式,然后用内联函数实现了Cpp的实现方式,如下所示:const char* GetStringUTFChars(jstring str, jboolean *isCopy) /* 依赖于C方式实现Cpp */{ ....
分类:
编程语言 时间:
2015-06-22 17:38:35
阅读次数:
220
1、堆:所有对象实例存放地,垃圾管理的主要对象,被所有java线程所共享2、栈:线程私有、存储局部变量表、操作栈、动态链接、方法出口3、方法区:线程共享的内存区域、存储类信息、常是、静态变量、即时编译器编译后的代码3、本地方法框:为虚拟机使用到的Native方法服务4、程序计数器:线程私有、指向下一...
分类:
其他好文 时间:
2015-06-10 18:54:01
阅读次数:
160
基础知识:
1. jni中严格区分c和c++调用方式,在native方法中提供的env是区分c、c++的,这个env对应的struct是不一样的(细微的差别而已)。
2. jni中严格区分static与非static方法、参数、变量,不管是java调c/c++还是反着调都需要注意,它们对应的jni接口(c/c++调java)和参数(java native方法)是不一样的。
3. jni的基本数据结构是和java的基本数据结构对应起来的,并不是和c/c++的基本数据结构对应。
4. 调用的时候注意不要写错名字...
分类:
其他好文 时间:
2015-06-09 10:00:06
阅读次数:
276
一. 什么是Native Method简单地讲,一个Native Method就是一个java调用非java代码的接口。一个Native Method是这样一个java的方法:该方法的实现由非java语言实现,比如C。这个特征并非java所特有,很多其它的编程语言都有这一机制,比如在C++中,你可以...
分类:
编程语言 时间:
2015-06-08 22:56:19
阅读次数:
117
异常对性能不利。 1.抛出异常首先要创建一个新的对象。 2.Throwable接口的构造函数调用名为fillInStackTrace()的Native方法,fillInStackTrace()方法检查堆栈,收集调用跟踪信息。只要有异常被抛出,VM就必须调整...
分类:
其他好文 时间:
2015-06-05 15:58:31
阅读次数:
159
JVM管理的内存
程序计数器(PC):每条线程都有独立的PC
JVM栈(Java栈):描述的是Java方法执行的内存模型,每个方法被执行的时候会创建一个栈帧用于存储局部变量表、操作栈、动态链接、方法出口等信息,也是线程私有的。
本地方法栈:与Native方法相关
Java堆:线程共享的内存地址空间,用于存放对象实例,也是GC管理的主要区域。
直接内存:与Native堆相关
方法区:存储已被JVM加载...
分类:
编程语言 时间:
2015-06-01 14:49:10
阅读次数:
212
http://my.oschina.net/u/1376187/blog/172296项目中使用了webview显示网页,其中需要网页和native方法有交互,搜索到一篇文章,转发分享一下:=======================================================...
分类:
编程语言 时间:
2015-05-22 14:59:29
阅读次数:
212