
Tech-Android-JNI
进击中的Park哥
一个不会设计的程序员绝对不会是一个好的艺术家
操着一颗做产品的心去设计一段程序
展开
-
【Tech-Android-Jni】Jni小精髓
这种设计改由C模块来诞生C++对象,然后让Java对象与C++对象之间产生成双成对的连结关系。C模块本身并不保存Java或C++对象的指针或参考值。而是仅仅负责诞生C++对象,并建立Java与C++的对象间的连结关系。 其过程是,C模块诞生CCounter对象后,立即将CCounter对象指针保存于CounterNative的mObject属性里,如上图4-10所示。如此,建立了Cou原创 2013-08-02 18:24:04 · 706 阅读 · 0 评论 -
【Tech-Android-Jni】Jni中基本方法(2)
Jni中各种特殊的方法。 1). 加载虚拟机: 函数:jint JNI_CreateJavaVM(JavaVM **pvm, void **penv, void args); 参数说明:JavaVM **pvm JAVA虚拟机指针,第二个参数JNIEnv *env是贯穿整个调用过程的一个参数,因为后面的所有函数都需要这个参数,需注意的是第三个参数,在jdk1.1与1.2版本有些不同,在JDK原创 2015-03-25 16:17:38 · 979 阅读 · 0 评论 -
【Tech-Android-Jni】JNI 起步
首先是利用AndroidProject新建一个Android工程,写Java的native的代码。然后通过CMD,javah命令生成.h的头文件。 利用javah命令要cd到包名的上层文件夹,例如新的Android工程的class文件是放在/bin/classes目录下的,我们要cd到classes目录下,再通过 javah -classpath . com.example.n原创 2013-07-09 11:20:10 · 777 阅读 · 0 评论 -
【Tech-Android-Jni】在Ecplise中配置新的Run命令,用于生成.so文件
在利用Cygdrive的命令build命令编辑C或C++语言的时候可以在Ecplise中设置好便捷快命令: 同理可以得到编辑javah的命令 获取jni文件。原创 2013-10-14 11:45:26 · 1193 阅读 · 0 评论 -
【Tech-Android-Jni】Jni的Jclass JmethodID JfrieldID的差异
这三者都是java类别的属性,本质上都是指标(Pointer).透过这些指标就能快速调用java类别的函数,或存取对象的属性值。在该类别被载入时,这些指标值都是有效的,一直到该类别被卸载为止。其中jmethodID和jfieldID指标可以存在C语言的全局变量中,既能跨函数共享,又能跨进程共享。 但是,jclass通常它是局部性,其值在该函数执行完毕,就会删除掉。如果使用NewGlo原创 2013-10-14 17:24:25 · 2814 阅读 · 1 评论 -
【Tech-Android-Jni】Jni的基本方法(1)
1.生成头文件 首先通过编写本地函数native的方法,利用javah 指令生成C的头文件。一般的头文件会给出所已经定义好的方法。 例如下列: JNIEXPORT void JNICALL Java_com_example_adder_actNative_nativeExec(JNIEnv *, jclass);(头文件) 这里就包含了一个actNative类中的一个返回原创 2015-03-25 16:42:14 · 624 阅读 · 0 评论 -
【Tech-Android-Jni】JNI在本地函数中生成Java层的对象
在本地函数中,不但可以获取到Java层上的字段值 函数方法,对字段值操作,调用Java层方法,还可以在本地函数中新建成Java层的对象。 jclass rvClazz =(*env)->FindClass(env,"com/example/adder/ResultValue"); //找到该类文件 jmethodID constr = (*env)->GetMethodID(e原创 2015-03-25 16:28:56 · 587 阅读 · 0 评论 -
【Tech-Android-Jni】JNI的数据类型
原创 2013-07-09 17:34:16 · 733 阅读 · 0 评论 -
【Tech-Speex】语言聊天中的压缩利器Speex【1】
语言聊天中的压缩利器Speex最近项目组在着手开发一个IM项目,即时聊天App.所以在工程师们正在搭建后台服务器的时候,我必须解决一些前端和后端交互数据的一些事宜,例如协议,心跳包等。关于语音聊天的难点在于语音的压缩加密。 参考了以下文章之后,决定是用Speex这个开源利器来压缩语音吧。 http://code.youkuaiyun.com/news/313194Google了以下Speex,很多demo信原创 2015-04-01 11:50:52 · 2471 阅读 · 0 评论