![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
HAL/JNI
sgmenghuo
这个作者很懒,什么都没留下…
展开
-
HAL/JNI简明笔记(三)——java如何识别native方法的实现
在文章HAL/JNI简明笔记(二)——基于stub架构的HAL实例,我们看见java调用jni导出接口是通过System.loadLibrary加载jni库,再声明下native即可,那么实现jni库的代码需要按照什么规则才能被JVM识别呢?方法一,规范JNI函数名方法二,通过jniRegisterNativeMethods来注册不管用哪个方法,最终的目的就是在JVM中形成C函数和ja原创 2015-03-26 13:36:19 · 1029 阅读 · 0 评论 -
HAL/JNI简明笔记(四)——字符串及数组
字符串操作:基本数据类型在JNI中和Java一样,可以直接访问java传过来的参数,但是关于数组和字符串就不能直接使用了。因为java所有类传到c来都是指针,但是在JVM中结构对外不可见,要使用JNIEnv指向的函数表中选择合适的函数指针来调用。例如JNI代码片如下:JNIEXPORT jstring JNICALL Java_com_study_jnilearn_Sample_sayHe原创 2015-03-30 10:56:18 · 1530 阅读 · 2 评论 -
HAL/JNI简明笔记(五)——JNI访问java中的属性和方法
前面的大多是java如何使用JNI提供的本地接口,还有JNI来访问JVM中的基本类型数据和字符串、数组这样的引用类型数据;现在说说JNI如何来访问JVM,即访问java的属性和方法,从实现原理来看jni和java的互相调用都离不开JVM这个环境。下例子即一些结论摘自网络,有些说法或名词可能不严谨,比如我说的jni可能就和本地接口是一个意思,实际上是本地接口通过jni来(在JVM环境)与java交互原创 2015-03-31 14:16:57 · 1003 阅读 · 0 评论 -
android设备service从C到java API的构成
很多时间,我们在android应用开发的时候要调用硬件资源,代码诸如mVibrator = (Vibrator)context.getSystemService(Context.VIBRATOR_SERVICE);这样就获得了硬件服务,接下来你可以调用Vibrator.vibratorOn()这样的方法来让硬件执行动作。今天无意翻了翻service及manager相关的源代码,边看边留下痕迹。原创 2015-07-04 13:23:31 · 1678 阅读 · 0 评论