背景需求 我们需要在JNI的C代码调用Java代码。实现原理:使用JNI提供的反射借口来反射得到Java方法,进行调用。JNI关键方法讲解。1. 在同一个类中,调用其他方法JNIEXPORT void JNICALL Java_cn_itcast_ndkcallback_DataProvider_....
分类:
编程语言 时间:
2014-12-19 20:37:21
阅读次数:
291
1. C++的代码后缀是".cpp"2. 在JNI.h 文件中有两套代码。一套是支持c的, 一套是支持JNI的。 JNI。h地址:mac ? 用户 ? douj ? Documents ? android-ndk-r10b ? platforms ? android-8 ? JNI中针对C的代码.....
分类:
编程语言 时间:
2014-12-19 20:28:49
阅读次数:
164
JNI(Java Native Interface,JAVA原生接口)使用JNI可以使Java代码和其他语言写的代码(如C/C++代码)进行交互。问:为什么要进行交互?|- 首先,Java语言提供的类库无法满足要求,且在数学运算,实时渲染的游戏上,音视频处理等方面上与C/C++相比效率稍低。|- 然...
分类:
其他好文 时间:
2014-12-19 19:04:10
阅读次数:
159
在前面一文中,我们分析了Dalvik虚拟机的运行过程。从中可以知道,Dalvik虚拟机在调用一个成员函数的时候,如果发现该成员函数是一个JNI方法,那么就会直接跳到它的地址去执行。也就是说,JNI方法是直接在本地操作系统上执行的,而不是由Dalvik虚拟机解释器执行。由此也可看出,JNI方法是And...
分类:
其他好文 时间:
2014-12-19 19:01:17
阅读次数:
162
char* Jstring2CStr(JNIEnv* env, jstring jstr){ char* rtn = NULL; jclass clsstring = (*env)->FindClass(env,"java/lang/Strin...
分类:
其他好文 时间:
2014-12-19 01:54:47
阅读次数:
171
ndk开发常见错误1. android.mk文件不存在 $ ndk-buildAndroid NDK: Your APP_BUILD_SCRIPT points to an unknown file: ./jni/Android.mk /cygdrive/h/heima6/jni2/ziliao/....
分类:
其他好文 时间:
2014-12-19 00:35:53
阅读次数:
235
添加日志:1. 增加log支持。Android.mk文件增加LOCAL_LDLIBS += -llog2.C代码中增加(放在最前面)#include #define LOG_TAG "System.out"#define LOGD(...) __android_log_print(ANDROID_L...
分类:
其他好文 时间:
2014-12-19 00:22:40
阅读次数:
191
在大富翁论坛上有一篇介绍delphi xe5下获取网络状态的文章并附带了一个Androidapi.JNI.Network.pas单元,我使用到XE7下,编译后点击按钮就出来一个错误对话框什么10027什么的,开始我以为是不通用那,我就利用 爱吃猪头肉 QQ: 1444386932 提供的jar转换工...
分类:
移动开发 时间:
2014-12-18 20:21:10
阅读次数:
680
Android源码中很多关键代码都是C++实现的,java通过jni来调用,经常会看到java中这样的代码: static native Thread currentThread();如何根据方法名找到其对应的C++实现,有两个方法。先来个java代码的示例VMThread.java:pack...
分类:
移动开发 时间:
2014-12-18 18:28:52
阅读次数:
500
Android的电源管理框架
Android通过锁和定时器来切换系统的状态,使系统的功耗降至最低,整个系统的电源管理框架分成五个部分:应用层,framework层,JNI层,HAL层和内核层。电源管理架构图如下:
PowerManager类向应用程序提供接口,如Wakelock的acquire, release等,上层应用程序通过这些接口实现电源的管理。
P...
分类:
移动开发 时间:
2014-12-18 16:57:45
阅读次数:
166