Android调用jni全过程示例
来源:互联网 发布:怎样帮淘宝刷好评挣钱 编辑:程序博客网 时间:2024/06/08 08:24
个人记录下调用jni全过程,省的自己忘记了。哎。
有些需要准备的地方,ndk环境,ndk源码一份,cygwin要装好,配好profile。java要配好环境变量。
1.首先新建一个工程,建个类对调用native的方法进行声明。
有些需要准备的地方,ndk环境,ndk源码一份,cygwin要装好,配好profile。java要配好环境变量。
1.首先新建一个工程,建个类对调用native的方法进行声明。
package com.stay.jni;
public class CallNative {
public CallNative() {
}
static {//导入的lib名去掉前面的lib
System.loadLibrary("skytech");
}
public native byte[] readCmd(String path);
public native int writeCmd(byte[] cmd, String path);
}
public class CallNative {
public CallNative() {
}
static {//导入的lib名去掉前面的lib
System.loadLibrary("skytech");
}
public native byte[] readCmd(String path);
public native int writeCmd(byte[] cmd, String path);
}
2.build下项目,打开cmd,cd到该工程bin目录下,
D:\>cd D:\android\rayn\TestJni\bin
D:\android\rayn\TestJni\bin>javah -jni com.stay.jni.CallNative
然后在bin目录下会出现一个.h文件这是声明的头文件
3.我们要的是里面声明的方法,把我们要写的c文件改成相同的方法名就可以了。(我做了一件非常挫的事,把实现写到.h文件里了,一直拿.h文件去编译。。= =)
4.在工程里建个jni目录,将改好的c文件和mk文件(随便copy一个,改下路径和lib名就好啦)copy进去
5.将整个工程拷贝到ndk的samples目录里(D:\android-ndk-r5\samples)
6.打开cygwin、配好环境。打开cygwin.bat。进行编译。万事ok。这样就可以成功调用jni了。
附另一个jni项目的中的本地方法实现代码示例:
4) 编写本地方法
实现和由javah命令生成的头文件里面声明的方法名相同的方法。
代码2:
1 #include
2 #include "HelloWorld.h"
3 #include
4 JNIEXPORT void JNICALL Java_HelloWorld_displayHelloWorld(JNIEnv *env, jobject obj)
{
printf("Hello world!\n");
return;
}
- Android调用jni全过程示例
- Android调用jni全过程
- Android调用jni全过程
- Android 调用Jni的全过程
- Android调用jni全过程,方便以后操作。
- Android调用jni全过程,方便以后操作。
- android jni 调用结构体示例
- Android调用WebService全过程
- Android开发:安装NDK,移植OpenCV2.3.1,JNI调用OpenCV全过程
- 【转】Android开发:安装NDK,移植OpenCV2.3.1,JNI调用OpenCV全过程
- Android开发:安装NDK,移植OpenCV2.3.1,JNI调用OpenCV全过程
- Android开发:安装NDK,移植OpenCV2.3.1,JNI调用OpenCV全过程
- android JNI 示例详解
- Android Jni示例
- Android Kotlin jni 示例
- Ubuntu下编译Android JNI实例全过程
- android JNI的编写最全过程
- Android 调用so库全过程
- 19部“重构心智”影响你世界观的科幻电影
- 使C程序可读的技巧
- java配置环境变量
- jquery的冒泡事件event.stopPropagation()
- Ubuntu login信息的背后
- Android调用jni全过程示例
- 杭电各种测试结果总结
- 抽象类和接口的区别
- MYSQL学习笔记 第二讲:数据库的基本操作
- X86和X86_64和X64有什么区别?
- AFNetworking、MKNetworkKit和ASIHTTPRequest对比
- 输出所有的最长单调递增子序列。
- 用eclipse\myEclipse导出UTF-8含中文Javadoc
- 每天做两道杭电acm——1000,1001