JNI开发基础

作者: waterge | 来源:发表于2017-08-12 22:45 被阅读0次

JNI

java native interface

使用环境:

java api 不能满足我们程序的需要的时候。

算法计算,图像渲染 效率要求非常高,

当需要访问一些已有的本地库

NDK

工具的集合。帮助开放者快速开放C/C++ 动态库的工具。

JNI 开发

步骤:

1.编写native 方法

2.javah 命令,生成.h 文件

注意这个javah 在src目录下输入报名加类名不用java后缀

java_类的全名_方法名

或者自己手写

3.复制.h 头文件到cpp 工程

4.复制jni.h 和jni_md.h

5.实现.h 头文件中的声明函数

6.生成一个dll 动态库(备注需要生成中配置管理设置生成动态库的x64平台)(还会报一个编译头的错误,在属性中C/C++预编译头中设置不使用预编译头)

7.在java中加载动态库

8.触发native函数

静态库和动态库

都是函数库。

静态库:.a

动态库: .dll/.so

JNIEnv 是什么?

C:

JNIEnv 结构体指针的别名

env 是二级指针

C++

JNIEnv 是机构体的别名

env 是一级指针

每个native 函数,都至少有两个参数(JNIEnv * , jclass/jobject)

jclass: native 静态方法

jobject: native 非静态方法

JNI基本数据类型:

java —— JNI  —— C

boolean  jboolean

byte jbyte;

char jchar;

short jshort;

int  jint;

long  jlong;

float jfloat;

double jdouble;

引用类型:

String jstring

Object jobject

基本数据类型数组:

//type[]  jTypeArray;

byte[]  jByteArray;

引用类型数组

Object[](String[]) jobjectArray;

对应的java代码

```code```

{

{

范德萨范德萨发

}

}

你好

`

相关文章

  • JNI开发系列②.h头文件分析

    接续上篇JNI开发系列①JNI概念及开发流程 前情提要 JNI技术 , 是java世界与C/C++世界的通信基础 ...

  • Android游戏开发实践(1)之NDK与JNI开发04

    Android游戏开发实践(1)之NDK与JNI开发04 有了前面几篇NDK与JNI开发相关基础做铺垫,再来通过代...

  • Android NDK开发:JNI实战篇

    注:原文地址 紧接上篇:Android NDK开发:JNI基础篇 | cfanr,这篇主要介绍 JNI Nativ...

  • JNI相关知识点

    1、Android NDK开发:JNI基础篇 2、Android Studio NDK环境配置及JNI使用方法 3...

  • JNI开发基础

    JNI与NDK Java和C/C++互相通过的接口,是Java语言提供的Java和C/C++相互沟通的机制,目的通...

  • JNI开发基础

    JNI java native interface 使用环境: java api 不能满足我们程序的需要的时候。 ...

  • 简单的As中NDK demo

    1.AS的NDK Android Studio1.4.x JNI开发基础-基本环境配置 NDK-JNI实战教程(一...

  • NDK开发基础①使用Android Studio编写NDK

    接续上个系列之 [ JNI开发系列 ]:JNI开发系列①JNI概念及开发流程JNI开发系列②.h头文件分析JNI开...

  • Android JNI开发(一)

    前言 长文预警,本文是JNI开发的基础知识介绍和使用经验总结,基本上涵盖了Android JNI开发的大多数知识点...

  • Android JNI开发(二)

    引言 在Android JNI 开发 (一) 一文中介绍了JNI的数据结构和接口函数等基础知识。但是开发过程中只有...

网友评论

    本文标题:JNI开发基础

    本文链接:https://www.haomeiwen.com/subject/bkqsrxtx.html