Native 方法与.so 文件

Native方法

Native 方法是指其声明和实现不是用 Java 语言编写的,而是使用其他编程语言(如 C、C++)编写的方法。
使用 native 方法的常见场景包括:

  • 实现需要调用系统调用或外部库的功能
  • 访问只有其他语言才能访问的硬件或系统资源
  • 在 Java 应用中复用已有的 C/C++ 老代码
  • 从 Java 中调用动态加载的本地库

.so 文件

.so文件是 Shared Object(共享对象)文件的缩写,是 Linux/Unix 系统下的动态链接库。它在 Windows 下对应的文件是 .dll(Dynamic-Link Library),在 macOS 下是 .dylib

JNI (Java Native Interface)

即 Java 本地接口,是 Java 虚拟机(JVM)提供的一套编程框架和协议标准。它定义了一套规则,允许 Java 代码与用其他编程语言(主要是 C、C++)编写的本地应用程序或库进行互操作


在 JNI 中,.so 文件是通过 C/C++ 编写的本地方法的封装文件,它包含了本地方法的实现。 通过 Android NDK ,开发者可以将 C/C++ 代码编译成 .so 文件,并将这些文件与 Java 应用一起打包。 在应用运行时,.so 文件会被加载并通过 JNI 接口进行调用。