UE4中的 USE_ANDROID_JNI 宏

USE_ANDROID_JNI宏

cpp 复制代码
#ifndef USE_ANDROID_JNI
#define USE_ANDROID_JNI 0
#endif

在引擎代码中看到上面的宏定义,其中USE_ANDROID_JNI表示的是是否使用安卓JNI。这个宏定义在下面这个位置:

cpp 复制代码
G:\St\EngineSource\Engine\Source\Runtime\Core\Public\Android\AndroidPlatform.h:
   86  // some android platform overrides that sub-platforms can disable
   87  #ifndef USE_ANDROID_JNI
   88: 	#define USE_ANDROID_JNI	 1
   89  #endif
   90  #ifndef USE_ANDROID_AUDIO

而上一篇文章介绍了为什么在打包安卓时,会包含这个文件。

JNI

AI的解释是:在安卓开发中,JNI 是 Java Native Interface(Java本地接口)的缩写。

JNI 是一种编程框架,用于在 Java 程序和本地代码(如 C/C++)之间进行交互。它提供了一组标准的接口和机制,使得 Java 程序能够调用本地代码,并且本地代码也能够调用 Java 程序。

使用 JNI,开发者可以在 Java 程序中调用本地代码来执行一些高性能、底层或与特定平台相关的操作。这对于需要与底层系统交互、访问硬件功能或使用现有的本地库的应用程序非常有用。

在安卓开发中,JNI 经常用于以下情况:

  1. 访问本地库:通过 JNI,可以将本地库(如 C/C++ 编写的库)与 Java 代码进行绑定,从而在 Java 程序中调用本地库的功能。

  2. 调用系统 API:JNI 可以用于调用安卓系统提供的底层 API,以实现与系统功能的交互,如访问传感器、摄像头、文件系统等。

  3. 性能优化:JNI 可以用于将一些性能敏感的代码从 Java 转移到本地代码中,以提高执行效率。

使用 JNI 需要编写一些本地代码,并在 Java 代码中进行相应的声明和调用。JNI 提供了一组函数和规范,用于管理 Java 对象和本地数据之间的转换、内存管理、异常处理等。

需要注意的是,JNI 的使用需要一定的熟悉度和谨慎性,因为不正确的使用可能导致内存泄漏、崩溃或其他问题。因此,在使用 JNI 时,建议参考官方文档和最佳实践,并遵循安全和可靠的编程习惯。

相关推荐
jack186894 小时前
安卓手机忘记锁屏密码怎么办? 无需密码也可解锁
android·智能手机
应用市场7 小时前
不用一张图片的像素小游戏:小人是字符串,房间是矩形,平衡靠两千个假玩家
android·kotlin·游戏开发
stevenzqzq8 小时前
android 对渠道的理解
android
QEasycloud8 小时前
BOM接口抛转失败钉钉通知策略实战教程:MySQL异常日志到钉钉消息的端到端配置
android·mysql·钉钉
AIsoft_86898 小时前
医患交流内容如何做好记录?
android·iphone
蒸鱼Yuzheng9 小时前
Android Native 崩溃证据链:Tombstone、Build ID 与 Trace 如何联合归因
android·ndk·tombstone·调试符号·崩溃分析
事圆则缓9 小时前
Kotlin 变量与函数:把页面状态和行为写成清楚的契约
android·开发语言·kotlin
hunterandroid9 小时前
MVVM 迁移到 MVI:复杂页面状态如何收敛
android
妖星9 小时前
Android 开机动画定制:从 bootanimation.zip 到源码编译
android
临期冰淇淋10 小时前
MTK平台 安卓16 GMS报错修改
android·java·前端