JNI实例以及分析
2012-04-06 12:54
225 查看
JNI实例以及分析
最近在研究Android下面的JNI,所以本地先创建一个实例来进行分析,然后提出一些问题然后逐个分析
第一部分
HelloWorld.java
问题列表
1 为什么需要static去加载动态库?
2 为什么print()函数需要这样使用?
helloworld.c
make.sh
问题列表:
1 gcc下面-I 如果包含有多个路径该如何显示?
通过实验,可以得出
2 gcc编译的-fPIC的意义是什么 ?
最近在研究Android下面的JNI,所以本地先创建一个实例来进行分析,然后提出一些问题然后逐个分析
第一部分
HelloWorld.java
class HelloWorld { static{ System.loadLibrary("HelloWorld"); } public static void main(String[] args) { new HelloWorld().print(); } private native void print(); }
问题列表
1 为什么需要static去加载动态库?
2 为什么print()函数需要这样使用?
helloworld.c
#include "HelloWorld.h" JNIEXPORT void JNICALL Java_HelloWorld_print(JNIEnv *env, jobject obj) { printf("Hello World!\n"); return; }
make.sh
#!/bin/sh javac HelloWorld.java javah -jni HelloWorld if [ -e ${JAVA_HOME} ] ; then gcc -I ${JAVA_HOME}/include -I ${JAVA_HOME}/include/linux -shared helloworld.c -fPIC -o libHelloWorld.so fi java HelloWorld
问题列表:
1 gcc下面-I 如果包含有多个路径该如何显示?
通过实验,可以得出
2 gcc编译的-fPIC的意义是什么 ?
相关文章推荐
- MyBatis的深入原理分析之1-架构设计以及实例分析
- AjaxPro.net 做asp.netAjax效果实例以及错误分析。
- 递归算法以及C语言实例分析
- 全面分析iterator(迭代器)模式,以及具体java实例
- Hadoop学习笔记之初识MapReduce以及WordCount实例分析
- (转载自eoe论坛)Android上百实例源码分析以及开源分析集合打包
- 【Storm】storm安装、配置、使用以及Storm单词计数程序的实例分析
- 《深入理解mybatis原理》 MyBatis的架构设计以及实例分析
- 对JS克隆以及相关属性,数组,对象,函数的实例分析
- 各种页面常见布局以及实例分析
- oracle 分析函数以及实例解析
- C# 的析构以及垃圾回收实例分析
- ListView分析以及实例
- 实例分析对关键词堆砌以及长尾关键词的判断
- 霍夫变换检测直线的公式推导以及基于opencv的源代码分析并实例实现