博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android下的jni
阅读量:6229 次
发布时间:2019-06-21

本文共 964 字,大约阅读时间需要 3 分钟。

  hot3.png

1、首先创建一个工程,jnitest里面的类叫jnitest.java

public class jnitest extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);//  System.out.println("hello:" + hello()); } static{  //加载库文件  System.loadLibrary("testJni"); } //声明原生函数 参数为String类型 返回类型为String private native String hello();    }

2、编译一下,(为了生成class文件)

3、利用DOS切换到该工程目录下面,执行javah -classpath bin/classes -d jni com.example.jnitest.jnitest

生成头文件用的

4、会看到在工程目录下面有个jni的文件夹,里面会有头文件

5、创建一个.c文件:testJni.c(方法的名字要注意)

#include
#include
jstringJava_com_example_jnitest_jnitest_hello(JNIEnv* env, jobject thiz){    return (*env)->NewStringUTF(env, "123");}

6、从cygwin的目录中的samples下的hello-jni里的jni里的Android.mk拷贝一份到所建的工程里的jni目录中,这样工程的jni文件夹下面就有3个文件了.h文件、.c文件、.mk文件

7、打开cygwin的命令行,切换到该工程的目录下面

8、执行$ $NDK/ndk-build

9、会在工程的libs目录下面生成.so文件

10、执行以下之前的java类吧

转载于:https://my.oschina.net/MrHou/blog/153243

你可能感兴趣的文章
Vue中你不知道但却很实用的黑科技
查看>>
阿里云消息中间件(MQ)探秘
查看>>
基础排序算法详解与优化
查看>>
与我一起学正则
查看>>
练就Java24章真经—你所不知道的工厂方法
查看>>
手游中实时音视频的开发经验与实现技巧
查看>>
saiku+kettle整合(十)缓存控制
查看>>
微信支付,支付宝支付,银联支付——三大支付总结
查看>>
Android Sunflower 带您玩转 Jetpack
查看>>
Android 应用兼容性最佳实践 | 中文教学视频
查看>>
SQL语句笔记
查看>>
iOS笔记之数组排序
查看>>
从零开始撸一个Fresco之硬盘缓存
查看>>
0901 - 虽已马不停蹄,无奈时光飞逝
查看>>
keep-loader for webpack
查看>>
padding-使用必记
查看>>
Vue教程12:多视图
查看>>
Express 与 koa 中间件模式对比
查看>>
Go 1.12 版本的新特性
查看>>
Servlet第三篇【request和response简介、response的常见应用】
查看>>