Version: 2022.3

AndroidJNI

class in UnityEngine

切换到手册

描述

用于来自 Unity 脚本 (C#) 的 Android Java VM 的“原始”JNI 接口。

**注意:**必须具备 Android Java 原生接口 (JNI) 的高级知识才能使用原生 JNI 函数。请做好记录。

静态函数

AllocObject分配新 Java 对象,而不为该对象调用任何构造函数。
AttachCurrentThread将当前线程附加到 Java (Dalvik) VM。
CallBooleanMethod调用由 methodID 定义的 Java 实例方法,可以选择向该方法传递一个参数数组 (args)。
CallBooleanMethodUnsafe调用由 methodID 定义的 Java 实例方法,可以选择向该方法传递一个参数数组 (args)。
CallCharMethod调用由 methodID 定义的 Java 实例方法,可以选择向该方法传递一个参数数组 (args)。
CallCharMethodUnsafe调用由 methodID 定义的 Java 实例方法,可以选择向该方法传递一个参数数组 (args)。
CallDoubleMethod调用由 methodID 定义的 Java 实例方法,可以选择向该方法传递一个参数数组 (args)。
CallDoubleMethodUnsafe调用由 methodID 定义的 Java 实例方法,可以选择向该方法传递一个参数数组 (args)。
CallFloatMethod调用由 methodID 定义的 Java 实例方法,可以选择向该方法传递一个参数数组 (args)。
CallFloatMethodUnsafe调用由 methodID 定义的 Java 实例方法,可以选择向该方法传递一个参数数组 (args)。
CallIntMethod调用由 methodID 定义的 Java 实例方法,可以选择向该方法传递一个参数数组 (args)。
CallIntMethodUnsafe调用由 methodID 定义的 Java 实例方法,可以选择向该方法传递一个参数数组 (args)。
CallLongMethod调用由 methodID 定义的 Java 实例方法,可以选择向该方法传递一个参数数组 (args)。
CallLongMethodUnsafe调用由 methodID 定义的 Java 实例方法,可以选择向该方法传递一个参数数组 (args)。
CallObjectMethod调用由 methodID 定义的 Java 实例方法,可以选择向该方法传递一个参数数组 (args)。
CallObjectMethodUnsafe调用由 methodID 定义的 Java 实例方法,可以选择向该方法传递一个参数数组 (args)。
CallSByteMethod调用由 methodID 定义的 Java 实例方法,可以选择向该方法传递一个参数数组 (args)。
CallSByteMethodUnsafe调用由 methodID 定义的 Java 实例方法,可以选择向该方法传递一个参数数组 (args)。
CallShortMethod调用由 methodID 定义的 Java 实例方法,可以选择向该方法传递一个参数数组 (args)。
CallShortMethodUnsafe调用由 methodID 定义的 Java 实例方法,可以选择向该方法传递一个参数数组 (args)。
CallStaticBooleanMethod对 Java 对象调用指定的 methodID 静态方法,可以选择传递一个参数数组 (args)。
CallStaticBooleanMethodUnsafe对 Java 对象调用指定的 methodID 静态方法,可以选择传递一个参数数组 (args)。
CallStaticCharMethod对 Java 对象调用指定的 methodID 静态方法,可以选择传递一个参数数组 (args)。
CallStaticCharMethodUnsafe对 Java 对象调用指定的 methodID 静态方法,可以选择传递一个参数数组 (args)。
CallStaticDoubleMethod对 Java 对象调用指定的 methodID 静态方法,可以选择传递一个参数数组 (args)。
CallStaticDoubleMethodUnsafe对 Java 对象调用指定的 methodID 静态方法,可以选择传递一个参数数组 (args)。
CallStaticFloatMethod对 Java 对象调用指定的 methodID 静态方法,可以选择传递一个参数数组 (args)。
CallStaticFloatMethodUnsafe对 Java 对象调用指定的 methodID 静态方法,可以选择传递一个参数数组 (args)。
CallStaticIntMethod对 Java 对象调用指定的 methodID 静态方法,可以选择传递一个参数数组 (args)。
CallStaticIntMethodUnsafe对 Java 对象调用指定的 methodID 静态方法,可以选择传递一个参数数组 (args)。
CallStaticLongMethod对 Java 对象调用指定的 methodID 静态方法,可以选择传递一个参数数组 (args)。
CallStaticLongMethodUnsafe对 Java 对象调用指定的 methodID 静态方法,可以选择传递一个参数数组 (args)。
CallStaticObjectMethod对 Java 对象调用指定的 methodID 静态方法,可以选择传递一个参数数组 (args)。
CallStaticObjectMethodUnsafe对 Java 对象调用指定的 methodID 静态方法,可以选择传递一个参数数组 (args)。
CallStaticSByteMethod对 Java 对象调用指定的 methodID 静态方法,可以选择传递一个参数数组 (args)。
CallStaticSByteMethodUnsafe对 Java 对象调用指定的 methodID 静态方法,可以选择传递一个参数数组 (args)。
CallStaticShortMethod对 Java 对象调用指定的 methodID 静态方法,可以选择传递一个参数数组 (args)。
CallStaticShortMethodUnsafe对 Java 对象调用指定的 methodID 静态方法,可以选择传递一个参数数组 (args)。
CallStaticStringMethod对 Java 对象调用指定的 methodID 静态方法,可以选择传递一个参数数组 (args)。
CallStaticStringMethodUnsafe对 Java 对象调用指定的 methodID 静态方法,可以选择传递一个参数数组 (args)。
CallStaticVoidMethod对 Java 对象调用指定的 methodID 静态方法,可以选择传递一个参数数组 (args)。
CallStaticVoidMethodUnsafe对 Java 对象调用指定的 methodID 静态方法,可以选择传递一个参数数组 (args)。
CallStringMethod调用由 methodID 定义的 Java 实例方法,可以选择向该方法传递一个参数数组 (args)。
CallStringMethodUnsafe调用由 methodID 定义的 Java 实例方法,可以选择向该方法传递一个参数数组 (args)。
CallVoidMethod调用由 methodID 定义的 Java 实例方法,可以选择向该方法传递一个参数数组 (args)。
CallVoidMethodUnsafe调用由 methodID 定义的 Java 实例方法,可以选择向该方法传递一个参数数组 (args)。
DeleteGlobalRef删除 obj 指向的全局引用。
DeleteLocalRef删除 obj 指向的局部引用。
DeleteWeakGlobalRef删除 obj 指向的全局弱引用。
DetachCurrentThread将当前线程从 Java (Dalvik) VM 中分离。
EnsureLocalCapacity确保可在当前线程中创建不少于指定数量的局部引用。
ExceptionClear清除当前抛出的任何异常。
ExceptionDescribe将堆栈的异常和回溯打印至 logcat
ExceptionOccurred确定是否正在抛出异常。
FatalError引发致命错误,预计 VM 无法恢复。此函数不返回。
FindClass此函数将加载局部定义的类。
FromBooleanArray将 boolean 型的 Java 数组转换为 System.Boolean 型的托管数组。
FromCharArray将 char 型的 Java 数组转换为 System.Char 型的托管数组。
FromDoubleArray将 double 型的 Java 数组转换为 System.Double 型的托管数组。
FromFloatArray将 float 型的 Java 数组转换为 System.Single 型的托管数组。
FromIntArray将 int 型的 Java 数组转换为 System.Int32 型的托管数组。
FromLongArray将 long 型的 Java 数组转换为 System.Int64 型的托管数组。
FromObjectArray将 java.lang.Object 型的 Java 数组转换为 System.IntPtr 型的托管数组(表示 Java 对象)。
FromReflectedField将 java.lang.reflect.Field 转换为字段 ID。
FromReflectedMethod将 java.lang.reflect.Method 或 java.lang.reflect.Constructor 对象转换为方法 ID。
FromSByteArray将 byte 型的 Java 数组转换为 System.SByte 型的托管数组。
FromShortArray将 short 型的 Java 数组转换为 System.Int16 型的托管数组。
GetArrayLength返回数组中的元素数。
GetBooleanArrayElement返回原始数组的一个元素的值。
GetBooleanField返回对象的实例(非静态)字段的值。
GetCharArrayElement返回原始数组的一个元素的值。
GetCharField返回对象的实例(非静态)字段的值。
GetDirectBufferAddressFetches and returns the starting address of the memory region referenced by the given direct java.nio.Buffer.
GetDirectBufferCapacityFetches and returns the capacity of the memory region referenced by the given direct java.nio.Buffer.
GetDirectByteBufferReturns the NativeArray backed by the same memory region as the given direct java.nio.Buffer.
GetDirectSByteBufferReturns the NativeArray backed by the same memory region as the given direct java.nio.Buffer.
GetDoubleArrayElement返回原始数组的一个元素的值。
GetDoubleField返回对象的实例(非静态)字段的值。
GetFieldID返回类的实例(非静态)字段的字段 ID。
GetFloatArrayElement返回原始数组的一个元素的值。
GetFloatField返回对象的实例(非静态)字段的值。
GetIntArrayElement返回原始数组的一个元素的值。
GetIntField返回对象的实例(非静态)字段的值。
GetJavaVMReturns the pointer to JavaVM.
GetLongArrayElement返回原始数组的一个元素的值。
GetLongField返回对象的实例(非静态)字段的值。
GetMethodID返回类或接口的实例(非静态)方法的方法 ID。
GetObjectArrayElement返回 Object 数组的一个元素。
GetObjectClass返回对象的类。
GetObjectField返回对象的实例(非静态)字段的值。
GetSByteArrayElement返回原始数组的一个元素的值。
GetSByteField返回对象的实例(非静态)字段的值。
GetShortArrayElement返回原始数组的一个元素的值。
GetShortField返回对象的实例(非静态)字段的值。
GetStaticBooleanField返回对象的静态字段值。
GetStaticCharField返回对象的静态字段值。
GetStaticDoubleField返回对象的静态字段值。
GetStaticFieldID返回类的静态字段的字段 ID。
GetStaticFloatField返回对象的静态字段值。
GetStaticIntField返回对象的静态字段值。
GetStaticLongField返回对象的静态字段值。
GetStaticMethodID返回类的静态方法的方法 ID。
GetStaticObjectField返回对象的静态字段值。
GetStaticSByteField返回对象的静态字段值。
GetStaticShortField返回对象的静态字段值。
GetStaticStringField返回对象的静态字段值。
GetStringChars返回字符串的 Unicode 字符数组的指针。该指针在调用 ReleaseStringchars() 之前有效。
GetStringField返回对象的实例(非静态)字段的值。
GetStringLength返回 Java 字符串的长度(Unicode 字符的数目)。
GetStringUTFChars返回以 Modified UTF-8 编码表示字符串的托管字符串对象。
GetStringUTFLength返回用 Modified UTF-8表示的字符串的长度,以字节为单位。
GetSuperclass如果 clazz 表示除类 Object 之外的任意类,此函数将返回的对象表示 clazz 所指定类的超类。
GetVersion返回本机方法接口的版本。
IsAssignableFrom确定 clazz1 的对象是否可以安全地转换为 clazz2。
IsInstanceOf测试对象是否为类的一个实例。
IsSameObject测试两个引用是否引用同一 Java 对象。
NewBooleanArray构造新的原始数组对象。
NewCharArray构造新的原始数组对象。
NewDirectByteBufferAllocates and returns a direct java.nio.ByteBuffer referring to the block of memory starting at the memory address address and extending capacity bytes.
NewDoubleArray构造新的原始数组对象。
NewFloatArray构造新的原始数组对象。
NewGlobalRef创建对 obj 参数所引用对象的新全局引用。
NewIntArray构造新的原始数组对象。
NewLocalRef创建与 obj 引用相同对象的新局部引用。
NewLongArray构造新的原始数组对象。
NewObject构建一个新的 Java 对象。方法 ID 指示要调用的构造函数方法。此 ID 必须通过调用 GetMethodID() 来获得,调用时 <init> 作为方法名称,void (V) 作为返回类型。
NewObjectA构建一个新的 Java 对象。方法 ID 指示要调用的构造函数方法。此 ID 必须通过调用 GetMethodID() 来获得,调用时 <init> 作为方法名称,void (V) 作为返回类型。
NewObjectArray构造一个新数组,用于保存类 clazz 中的对象。所有元素最初均设置为 obj。
NewSByteArray构造新的原始数组对象。
NewShortArray构造新的原始数组对象。
NewString用 Unicode 字符数组构造一个新 java.lang.String 对象。
NewStringUTF基于用 Modified UTF-8编码表示的字符数组构造一个新 java.lang.String 对象。
NewWeakGlobalRef创建对 obj 参数所引用对象的新全局弱引用。
PopLocalFrame弹出当前的局部引用帧,释放所有局部引用,并返回前一局部引用帧中指定 result 对象的局部引用。
PushLocalFrame创建一个新局部引用帧,可在其中创建不少于指定数量的局部引用。
RegisterNativesRegisters native methods with the class specified by the clazz argument.
SetBooleanArrayElement设置原始数组中一个元素的 boolean 值。
SetBooleanField设置指定的对象的实例字段的值。
SetCharArrayElement设置原始数组中一个元素的 char 值。
SetCharField设置指定的对象的实例字段的值。
SetDoubleArrayElement设置原始数组中一个元素的 double 值。
SetDoubleField设置指定的对象的实例字段的值。
SetFloatArrayElement设置原始数组中一个元素的 float 值。
SetFloatField设置指定的对象的实例字段的值。
SetIntArrayElement设置原始数组中一个元素的 int 值。
SetIntField设置指定的对象的实例字段的值。
SetLongArrayElement设置原始数组中一个元素的 long 值。
SetLongField设置指定的对象的实例字段的值。
SetObjectArrayElement设置 Object 数组的一个元素。
SetObjectField设置指定的对象的实例字段的值。
SetSByteArrayElement设置原始数组中一个元素的 sbyte 值。
SetSByteField设置指定的对象的实例字段的值。
SetShortArrayElement设置原始数组中一个元素的 short 值。
SetShortField设置指定的对象的实例字段的值。
SetStaticBooleanField设置指定的对象中的静态字段的值。
SetStaticCharField设置指定的对象中的静态字段的值。
SetStaticDoubleField设置指定的对象中的静态字段的值。
SetStaticFloatField设置指定的对象中的静态字段的值。
SetStaticIntField设置指定的对象中的静态字段的值。
SetStaticLongField设置指定的对象中的静态字段的值。
SetStaticObjectField设置指定的对象中的静态字段的值。
SetStaticSByteField设置指定的对象中的静态字段的值。
SetStaticShortField设置指定的对象中的静态字段的值。
SetStaticStringField设置指定的对象中的静态字段的值。
SetStringField设置指定的对象的实例字段的值。
Throw导致 java.lang.Throwable 对象被抛出。
ThrowNew使用消息指定的 message 基于指定类构造一个异常对象并导致该异常被抛出。
ToBooleanArray将 System.Boolean 型的托管数组转换为 boolean 型的 Java 数组。
ToCharArray将 System.Char 型的托管数组转换为 char 型的 Java 数组。
ToDoubleArray将 System.Double 型的托管数组转换为 double 型的 Java 数组。
ToFloatArray将 System.Single 型的托管数组转换为 float 型的 Java 数组。
ToIntArray将 System.Int32 型的托管数组转换为 int 型的 Java 数组。
ToLongArray将 System.Int64 型的托管数组转换为 long 型的 Java 数组。
ToObjectArray将 System.IntPtr 型的托管数组(表示 Java 对象)转换为 java.lang.Object 型的 Java 数组。
ToReflectedField将派生自 cls 的字段 ID 转换为 java.lang.reflect.Field 对象。
ToReflectedMethod将派生自 clazz 的方法 ID 转换为 java.lang.reflect.Method 或 java.lang.reflect.Constructor 对象。
ToSByteArray将 System.SByte 型的托管数组转换为 byte 型的 Java 数组。
ToShortArray将 System.Int16 型的托管数组转换为 short 型的 Java 数组。
UnregisterNativesUnregisters native methods of a class. The class goes back to the state before it was linked or registered with its native method functions.