Android系统的JNI原理分析(3)- 关于JNIEnv

本文详细介绍了Android系统中JNI的关键组件JNIEnv,包括JNIEnv指针的作用和特性,如JNIEnv如何在不同线程中调用Java方法和操作Java对象。同时,文章探讨了JNIEnv结构体中的函数返回值类型如jmethodID和jfieldID的使用方法。此外,还讨论了JNI中的三种引用类型:本地引用、全局引用和弱全局引用,以及它们在实际应用中的区别和管理方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

声明

  • 前阶段在项目中使用了Android的JNI技术,在此文中做些技术知识总结。
  • 此篇参考一些博客和书籍,不方便逐一列出,仅供学习、知识分享,代码基于Android 7.1.1。

1 JNI函数中的关键参数:JNIEnv 指针

  JNIEnv指针是Native世界中Java环境的代表,通过该指针Native世界就可以访问Java世界的代码进行操作,其具有以下主要特点及作用:

  1. JNIEnv *只对创建它的线程有效,不能跨线程传递,不同线程的JNIEnv是相互独立的;
  2. 通过JNIEnv *可调用Java的方法;
  3. 通过JNIEnv *可操作Java中的变量和对象;

  进入到源码:libnativehelper/include/nativehelper/jni.h,查看JNIEnv结构体的声明:

#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小馬佩德罗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值