设为首页 加入收藏

TOP

Android开发实践:JNI层线程回调Java函数示例
2014-11-24 01:04:12 来源: 作者: 【 】 浏览:4
Tags:Android 开发 实践 JNI 线程 Java 函数 示例

代码主要分为Java层(java代码)和JNI层(c语言代码),首先看看Java层的代码(Native.java)。


Android开发实践:JNI层线程回调Java函数示例


如上所示,Java层与JNI层的接口代码主要封装在Native类中,该类定义了三个native函数,分别完成jni库的初始化,调用jni层开启线程,调用jni层关闭线程等功能。并且提供一个回调函数(onNativeCallback),供jni层调用,并在回调函数中打印count的值。


再看看JNI层是如何开启线程并回调Java层的(native.c),关键的地方都在代码中进行了注释:


1. 头文件包含和全局变量的定义


Android开发实践:JNI层线程回调Java函数示例


2. 初始化函数的实现


Android开发实践:JNI层线程回调Java函数示例


3. 开启关闭线程的实现


Android开发实践:JNI层线程回调Java函数示例


4. 线程的实现(关键)


Android开发实践:JNI层线程回调Java函数示例


由上述代码可以看到,JNI层通过pthread库完成了线程的创建,需要特别注意的是,JNI层的线程中,必须通过全局的JavaVM来获取到环境变量,也必须通过全局的jobject获取java类对象,从而找到java端的函数,进行回调。


代码的工程文件见附件,编译运行后,会在logcat调试窗口不断打印count的值。本文就介绍到这,主要是提供一份示例代码给初学者,有疑问欢迎留言或者来信lujun.hust@gmail.com交流。


Android开发实践:JNI层线程回调Java函数示例相关文件下载


具体下载目录在 /2014年资料/3月/3日/Android开发实践:JNI层线程回调Java函数示例


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Android开发实践:Java层与Jni层.. 下一篇Android开发实践:检测App的内存..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: