jni
卖火柴的小男孩2020
你在驴背上看世界,世界在驴胯下看你
展开
-
Android JNI 通过C++调用JAVA
1. JNIEnv对象 对于本地函数 JNIEXPORT void JNICALL Java_video1_TestNative_sayHello(JNIEnv * env, jobject obj) { cout<<"Hello Native Test !"<<endl; } JNIEnv类型代表Java环境。通过这个JNIEnv*指针,就可以对Java端的代码进行操作。如,创建Java类得对象...原创 2020-07-30 20:40:39 · 264 阅读 · 0 评论 -
jni调用各种c api汇总
#include <jni.h>#include <string>#include <stdio.h>#include <stdlib.h>#include "logs.h"char *fa() { //char *pa = "123456"; // pa 指针在栈区,“123456”在常量区,该函数调用完后指针变量 pa 就...原创 2020-04-10 11:34:53 · 215 阅读 · 0 评论 -
JNI C语言jstring和char* 相互转换
char*转jstringjstring charToJstring(JNIEnv *env, const char *pat) { jclass strClass = (*env)->FindClass(env, "java/lang/String"); jmethodID ctorID = (*env)->GetMethodID(env, strCla...原创 2020-03-24 12:11:14 · 1462 阅读 · 0 评论 -
jni中log可以代替printf来打印
#include <jni.h>#include <string>#include <stdio.h>#include <stdlib.h>#include "logs.h"char *fa() { //char *pa = "123456"; // pa 指针在栈区,“123456”在常量区,该函数调用完后指针变量 pa 就...原创 2020-03-20 16:26:06 · 803 阅读 · 0 评论 -
Android NDK开发之旅13--JNI--异常处理
异常处理异常测试例子:public native void testException1();public static void main(String[] args) { JniTest test = new JniTest(); try { test.testException(); System.out.println("程...原创 2019-09-07 17:30:40 · 291 阅读 · 0 评论 -
Git教程和jni项目
链接到https://www.liaoxuefeng.com/wiki/896043488029600史上最浅显易懂的Git教程!为什么要编写这个教程?因为我在学习Git的过程中,买过书,也在网上Google了一堆Git相关的文章和教程,但令人失望的是,这些教程不是难得令人发指,就是简单得一笔带过,或者,只支离破碎地介绍Git的某几个命令,还有直接从Git手册粘贴帮助文档的,总之,初学...原创 2019-06-27 12:04:03 · 173 阅读 · 0 评论 -
Android动态注册jni
最近整理了以前关于jni的代码,这里梳理下,供以后参考。JNI简介JNI是Java Native Interface的缩写,它提供了若干的接口实现了Java和其他语言的通信(主要是c、c++)。从Java1.1开始,JNI标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。jni是Android中java和c++之间连接的桥梁,jni是jvm提供的一种与nativ...原创 2019-06-03 16:19:23 · 400 阅读 · 0 评论 -
Android JNI 函数注册的两种方式(静态注册/动态注册)
JNI/NDK在Android开发中,由于种种原因我们需要调用C/C++代码, 这个时候就要用到Android开发者都听说过的JNI(Java Native Interface)了, 在调用JNI相关方法之前, 要对java中native关键字定义的方法进行注册, 注册方式有两种: 静态注册和动态注册, 两者优缺点如下:静态注册 优点: 理解和使用方式简单, 属于傻瓜式操作, 使用相关工...原创 2019-05-31 14:24:52 · 1162 阅读 · 0 评论 -
JNI字段描述符“([Ljava/lang/String;)V”
“([Ljava/lang/String;)V” 它是一种对函数返回值和参数的编码。这种编码叫做JNI字段描述符(JavaNative Interface FieldDescriptors)。一个数组int[],就需要表示为这样"[I"。如果多个数组double[][][]就需要表示为这样 "[[[D"。也就是说每一个方括号开始,就表示一个数组维数。多个方框后面,就是数组 的类型。如果以一个L...原创 2019-05-28 11:25:12 · 520 阅读 · 0 评论 -
android jni控制gpio (rk3288)
1.添加驱动程序 2.编写jni c程序编译为库给java调用 3.app调用jni静态链接库操作底层驱动 1.添加驱动程序 修改/work/rk3288/firefly-rk3288_android5.1_git_20180126/kernel/drivers/Makefile 添加一行obj-y += carroll/ 将...原创 2019-05-16 11:03:18 · 1328 阅读 · 0 评论 -
Android NDK 从入门到精通(汇总篇)
注意:本文为各博客汇总分类的链接贴,方便大家快速寻找和学习相应的内容。未完待续,佛性更新中~~专栏地址 Android NDK 开发,从入门到精通NDK 入门 NDK 开发第一课:环境配置与第一个 JNI 程序JNI 知识 JNI 数据类型和类型描述符 JNIEnv 和 JavaVM JNI 接口大全 JNI 静态注册...转载 2019-02-22 11:42:44 · 159 阅读 · 0 评论 -
Android视频下载导航之jni(NDK)学习(学习路线图)
http://www.atguigu.com/android_video.shtml#jni原创 2019-02-22 11:27:48 · 695 阅读 · 0 评论 -
NDK学习
推荐网上的两篇tutorial,英文的,但是讲的比较全面。 Mastering Android NDK Build System- Part 1: Techniques with ndk-build Mastering Android NDK Build System- Part 2: Standalone toolchain 这两篇介绍了怎样编译native程序。 然后再找一个介绍J...原创 2018-11-30 18:07:32 · 204 阅读 · 0 评论 -
Android高级开发技术之JNI和NDK开发视
http://www.icoolxue.com/album/show/409原创 2018-09-19 12:41:40 · 348 阅读 · 0 评论 -
jni全局引用/ 局部引用/(第三篇)
从 Java 虚拟机创建的对象传到本地 C/C++代码时会产生引用,根据 Java 的垃圾回收机制,要有引用存在就不会触发该引用指向的 Java 对象的垃圾回收·这些引用在 JNI 中分为三种全局引用(Global Reference)局部引用(Local Reference)弱全局引用(Weak Global Reference)since JDK1.2局部引用·最常见的引用类型,...原创 2018-09-19 11:32:53 · 260 阅读 · 0 评论 -
jni把java对象数组排序(第二篇)
处理数组 —— 对象类型数组(Object[])·JNI 没有提供直接把 Java 的对象类型数组(Object[])直接转到 C++中的 jobject[]数组的函数,而是直接通过 Get/SetObjectArrayElement 这样的函数来对 Java 的 Object[]数组进行操作。·使用上述的函数也不用释放任何资源·NewObjectArray 可以通过指定长度初始化值来创建...原创 2018-09-19 11:26:05 · 349 阅读 · 0 评论 -
jni调用底层的时间
extern "C"JNIEXPORT void JNICALLJava_com_ipcamer_testsetdata_JavaNative2_outputDate(JNIEnv *env, jclass jclazz) { // TODO jclass clazz_date = env->FindClass("java/util/Date"); jmetho...原创 2018-09-18 13:56:40 · 1301 阅读 · 0 评论 -
jni 利用委托调java方法(第一篇)
jni代码:extern "C"JNIEXPORT void JNICALLJava_com_ipcamer_testsetdata_HelloWorld_sayHello(JNIEnv *env, jobject obj) { jclass helloworld_clazz = env->GetObjectClass(obj); jfieldID id_p = ...原创 2018-09-18 11:54:23 · 147 阅读 · 0 评论 -
android 学习JNI一些基础知识
看王择佑老师的JNI视频,学习总结的一些基础知识。1.JNIEnv通过JNIEnv的指针能够对Java端的代码进行操作:a.创建Java对象.NewObject/NewString/New<Type>Arrayb.调用Java对象的方法。Call<Type>Method/CallStatic<Type>Methodc.获取及设置Java对象的属性。Get/Set...原创 2018-06-22 17:44:49 · 231 阅读 · 0 评论