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

【Android知识笔记】JNI专题

一、JNI 基础知识

JNI 的数据类型以及和Java层之间的数据转换

前面总结了一篇,这里不再展开,可以参考: JNI 的数据类型以及和Java层之间的数据转换

注:这些知识都收集自网络文章,比较零散,对于JNI基础来说应该够用了。主要是一些API的使用,记不住时当成手册来查询一下即可。

JavaVM 和 JNIEnv

JNI定义两个关键数据结构:JavaVMJNIEnv。这两个指针必须指向方法表。(在C++版本中,它们是带有函数表指针的类,每个JNI函数的成员函数都是通过表引导的)JavaVM 提供“调用接口”函数,允许你创建与销毁JavaVM。理论上,可以在同一个进程持有多个JavaVM,但是Android中只有一个。

JNIEnv提供大多数的JNI函数。对于C语言代码,本地函数都需要接收JNIEnv作为第一个参数;对于C++,JNIEnv不需要作为参数传入。

JNIEnv 用作线程私有存储。因此,你不能在线程间共享 JNIEnv 变量。如果一个代码块无法获取到JNIEnv你可以共享 JavaVM,使用

http://www.lryc.cn/news/198906.html

相关文章:

  • C++面试题目汇总【持续更新】
  • 【PXIE301-211】青翼科技基于PXIE总线的16路并行LVDS数据采集、1路光纤数据收发处理平台
  • WPF实现签名拍照功能
  • 基于RuoYi-Flowable-Plus的若依ruoyi-nbcio支持自定义业务表单流程的集成方法与步骤(二)
  • 【Qt控件之微调框、进度条】QSpinBox、QDoubleSpinBox、QDial、QProgressBar介绍及使用
  • Python学习-----Day09
  • 世界国家/地区行驶方向数据
  • idgen导入Android11源码
  • 大同小异!如何在苹果不同类型设备上更改AirDrop的名称
  • sqlmap --os-shell选项原理解析
  • 谈谈 Redis 持久化机制,RDB、AOF
  • 并发编程——2.基础概念及其它相关的概述
  • 20231019 filezilla 配置 Windows与Ubuntu文件传输
  • 一个.Net开发的轻量级SQLite数据库ORM
  • gRPC通信
  • 湖仓一体架构的特性
  • Python中使用包含_和__的变量名之间的区别
  • 019-第三代软件开发-Git提交规范
  • MTK APP实现动态修改logo和开机动画
  • Spring核心扩展点BeanDefinitionRegistryPostProcessor源码分析
  • C++实现AC自动机,剪枝、双数组压缩字典树!详解双数组前缀树(Double-Array Trie)剪枝字典树(Patricia Trie)
  • 防火墙规则顺序解决方案
  • ZC-CLS381RGB颜色识别+8x8点阵指示(完)
  • Stanford CS224N - word2vec
  • 华为云云耀云服务器L实例评测|windows系统3389防爆破之安全加固教程
  • 零基础如何自学C#?
  • Spring5学习笔记之整合MyBatis
  • GO 语言的方法??
  • 【JavaEE】 多线程-初阶
  • 小程序OCR身份证识别