JNI开发示例

简介: 安装:eclipse(http://www.eclipse.org/)、CDT(C/C++ Development Tooling)、ADT(Android Development Tools) https://dl-ssl.

安装:eclipse(http://www.eclipse.org/)、CDT(C/C++ Development Tooling)、ADT(Android Development Tools)

https://dl-ssl.google.com/android/eclipse/

 

可以先从官方下载jar,然后本地安装:http://www.eclipse.org/cdt/downloads.php

 

下载Android NDK (Native Development Kit)http://developer.android.com/tools/sdk/ndk/index.html

JNI的使用方法

使用javah建立C/C++的头文件(*.h)

切换到src目录,然后输入命令(注意编码):

将.h复制到jni目录下

如果运行出错,参考这里下载资源:http://blog.csdn.net/wjr2012/article/details/16359113

Image(13)

 

在C++中调用Java方法设置文本的内容

最后我们通过Android的点击事件来调用C++,该C++方法调用Java方法来弹出一个对话框

效果如下图

 

源代码已经上传至github https://github.com/zhangyi/AndroidJNIProject

 

 

最后附上一些JNI的参考链接:


https://en.wikipedia.org/wiki/Java_Native_Interface

https://newcircle.com/s/post/1292/jni_reference_example

http://journals.ecs.soton.ac.uk/java/tutorial/native1.1/implementing/index.html

 

返回值为jintArray、jbyteArray、jlong、jobjectArray、jint、jboolean、jobjectArray、void的示例代码
https://joinup.ec.europa.eu/svn/mocca/osx-pcsc-jni/trunk/openjdk7/pcsc.c 

Java Programming Tutorial Java Native Interface(JNI)
https://www3.ntu.edu.sg/home/ehchua/programming/java/JavaNativeInterface.html
 
Call Java functions from C++ in cocos2d-x
http://stnguyen.com/cocos2d-x/call-java-functions-from-cpp.html

Call C++ functions from Java in cocos2d-x
http://stnguyen.com/cocos2d-x/call-cpp-functions-from-java.html

Java programming with JNI
http://www.ibm.com/developerworks/java/tutorials/j-jni/j-jni.html
 
 
 

 

目录
相关文章
|
18天前
|
存储 Java C++
[NDK/JNI系列02] JNI的设计原理与数据类型
[NDK/JNI系列02] JNI的设计原理与数据类型
12 0
[NDK/JNI系列02] JNI的设计原理与数据类型
|
18天前
|
Java API Android开发
[NDK/JNI系列04] JNI接口方法表、基础API与异常API
[NDK/JNI系列04] JNI接口方法表、基础API与异常API
13 0
|
18天前
|
缓存 Java API
[NDK/JNI系列05] JNI引用API
[NDK/JNI系列05] JNI引用API
20 0
|
缓存 Java 编译器
JNI基础简介
JNI系列入门连载,开启JNI学习之旅吧。
82 0
JNI中访问JList的代码
JNI中访问JList的代码
51 0
|
Java C++ 缓存
02.Jni开发流程_C/C++调用java
(创建于2017/11/18) c/c++调用Java包括几个分类,调用Java静态和非静态属性,静态和非静态方法四种 提示: 生成一个类中所有属性成员签名的方法如下: 1.
893 0