当前位置: 首页 > news >正文

Android NDK --- JNI从入门到基础的全面掌握 (上)

引言

 

先问 jni是什么?

jni和ndk 的关系?

答: java调用 C、C++ 的代码。  两者一个是调用,一个是用c 、c++ 写 。 

这两个问题问出来似乎知道又好像不知道。

 

正文

 

jni 概述

 

定义:java Native Interface 即 java本地接口

作用: 使得java 与本地其他语言(C/ C++)交互

 

jni是 java 调用 Native 语言的一种特性。

jni 是属于java的和Android 无直接关。

 

实际中,驱动都是 C/C++ 开发的。通过JNI , java 可以调用c/C++ 实现的驱动,从而扩展java虚拟机的能力。(java代码 里调用 C/C++ 等语言代码 , c/c++ 代码调用java代码  )

jni最新 api地址:

Java Native Interface Specification Contents

 

为什么要有jni

实际使用中,  java 需要调用本地代码进行交互。

因为 java 具备跨平台的特点,所以java 与本地代码交互的能力非常弱。

采用 jni特性 增强java与本地代码交互的能力。

 

 

jni我们可以理解为一个翻译器。 JNIEnv 就是一个桥梁   学习核心就是它。

 

 

 

JNI和NDK关系

 

jni 是  java 平台jdk 提供的一套非常强大的框架  java Native Interface

相互调用交互通信 : C/ C++  Native   <---->  java/kotlin

 

NDK : android 平台 提供的Native 开发工具包 Native Development Kit  后面把开始的jni,拿到ndk里面进行封装。

 

下一篇

https://blog.csdn.net/wulong756273/article/details/146377070

 

 

 

 

 

相关文章:

  • github上传本地文件到远程仓库(空仓库/已有文件的仓库)
  • python环境集成整理
  • Linux动态库和静态库
  • RAGFlow + LlamaIndex 本地知识库RAG增强架构与实现直播智能复盘
  • 【入门初级篇】布局类组件的使用(1)
  • 如何通过Python实现自动化任务:从入门到实践
  • 2025年 cocosCreator 1.8 定制 JavaScript 引擎
  • Web Component 教程(五):从 Lit-html 到 LitElement,简化组件开发
  • 用css绘制收银键盘
  • 实验三 内存管理
  • RocketMQ 架构
  • std::move
  • Unity3D开发AI桌面精灵/宠物系列 【二】 语音唤醒 ivw 的两种方式-Windows本地或第三方讯飞等
  • 一些常用的docker镜像及命令 python各版本(持续更新中)
  • pnpm config set ignore-workspace-root-check true
  • 【Spring Boot 中 `@Value` 注解的使用】
  • Python散点图(Scatter Plot):高阶分析、散点图矩阵、三维散点图及综合应用
  • 塔能智慧运维箱:智慧城市的“量子跃迁”,创新与售后的双轨驱动
  • 硬件基础(5):(1)二极管初步认识
  • Git 使用笔记
  • 新华社评论员:汇聚起工人阶级和广大劳动群众的磅礴力量
  • 美军空袭也门拘留中心,已致68人死亡
  • 甘肃省原副省长赵金云被开除公职,甘肃省委表态:坚决拥护党中央决定
  • 江苏、安徽跨省联动共治“样板间”:进一扇门可办两省事
  • 网贷放款后自动扣除高额会员费,多家网贷平台被指变相收取“砍头息”
  • 百台新车首秀上海车展,跨国车企联手中国技术开启智能化下半场