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 时,建议参考官方文档和最佳实践,并遵循安全和可靠的编程习惯。

相关推荐
千里马学框架1 天前
一起学 Android 14:ShellTransition 屏幕旋转过程深度剖析
android·智能手机·性能优化·framework·性能·屏幕旋转·rotation
美狐美颜SDK开放平台1 天前
开发直播APP时如何接入视频美颜SDK?开发流程与注意事项
android·人工智能·计算机视觉·音视频·直播美颜sdk
AFinalStone1 天前
Android7 SystemUI源码解析(七)Keyguard锁屏模块深度解析
android·systemui
致远ccc1 天前
Google Play 上架前如何测试 App?多国家 Android 环境测试
android·app测试·googleplay·多国家应用测试
ttyyttemo1 天前
Kotlin 协程中的 Job 结构化并发与取消
android
sun0077002 天前
tbox 4g/5g切换,导致wan ip 改变,导致车机旧网络不可用。需要重启车机才行
android
其实防守也摸鱼2 天前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透
AFinalStone2 天前
Android7 SystemUI 源码解析(四)NavigationBar 导航栏与 SystemBars
android·systemui
JMchen2 天前
属性动画原理与高级动画实现
android·kotlin·canvas
AFinalStone2 天前
Android7 SystemUI 源码解析(二)启动流程深度解析
android·systemui