Язык

ICriticalNative Интерфейс

Определение

Помечает подходящий собственный метод для использования самых быстрых переходов Java Native Interface (JNI).

[Android.Runtime.Register("dalvik/annotation/optimization/CriticalNative", "", "Dalvik.Annotation.Optimization.ICriticalNativeInvoker", ApiSince=34)]
public interface ICriticalNative : IDisposable, Java.Interop.IJavaPeerable, Java.Lang.Annotation.IAnnotation
[<Android.Runtime.Register("dalvik/annotation/optimization/CriticalNative", "", "Dalvik.Annotation.Optimization.ICriticalNativeInvoker", ApiSince=34)>]
type ICriticalNative = interface
    interface IAnnotation
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
Атрибуты
Реализации

Комментарии

Критически важный собственный метод должен быть статическим, может иметь только примитивные типы параметров и должен возвращать примитивный тип или void. Заметка изменяет ABI перехода JNI, поэтому собственная реализация должна опустить JNIEnv и jclass параметры.

Хотя критически важный собственный метод выполняется, сборка мусора не может приостановить поток и может быть заблокирована. Не используйте эту заметку для длительных методов или методов, которые выполняют значительные операции ввода-вывода или получают собственные блокировки, которые могут храниться в течение длительного времени. Эта заметка не влияет на методы, не являющиеся собственными.

Эта оптимизация — это тестируемый общедоступный API CTS, начиная с Android 14. Для обеспечения максимальной совместимости не вызывайте критически важные собственные методы в Android 13 и более ранних версиях. Динамическое связывание JNI работает только в Android 12 и более поздних версиях; Методы, используемые в Android 8–Android 11, должны быть явно зарегистрированы в JNI RegisterNatives. В Android 7 и более ранних версиях заметка игнорируется, поэтому результирующее несоответствие ABI может привести к неправильному маршалингу аргументов и сбоям.

Java документации по dalvik.annotation.optimization.CriticalNative.

Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".

Свойства

Имя. Описание
Handle

Возвращает значение JNI базового объекта Android.

(Унаследовано от IJavaObject)
JniIdentityHashCode

Возвращает значение java.lang.System.identityHashCode() для упаковаемого экземпляра.

(Унаследовано от IJavaPeerable)
JniManagedPeerState

Состояние управляемого однорангового узла.

(Унаследовано от IJavaPeerable)
JniObjectReferenceControlBlock

Помечает подходящий собственный метод для использования самых быстрых переходов Java Native Interface (JNI).

(Унаследовано от IJavaPeerable)
JniPeerMembers

Поддержка доступа к членам и вызовов.

(Унаследовано от IJavaPeerable)
PeerReference

JniObjectReference Возвращает экземпляр объекта в оболочке Java.

(Унаследовано от IJavaPeerable)

Методы

Имя. Описание
AnnotationType()

Возвращает интерфейс заметки этой заметки.

(Унаследовано от IAnnotation)
Disposed()

Вызывается при удалении экземпляра.

(Унаследовано от IJavaPeerable)
DisposeUnlessReferenced()

Если нет невыполненных ссылок на этот экземпляр, то вызывается Dispose(); в противном случае ничего не делает.

(Унаследовано от IJavaPeerable)
Equals(Object)

Возвращает значение true, если указанный объект представляет заметку, которая логически эквивалентна этому объекту.

(Унаследовано от IAnnotation)
Finalized()

Вызывается при завершении экземпляра.

(Унаследовано от IJavaPeerable)
GetHashCode()

Возвращает хэш-код этой заметки.

(Унаследовано от IAnnotation)
SetJniIdentityHashCode(Int32)

Задайте значение, возвращаемое JniIdentityHashCode.

(Унаследовано от IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

Помечает подходящий собственный метод для использования самых быстрых переходов Java Native Interface (JNI).

(Унаследовано от IJavaPeerable)
SetPeerReference(JniObjectReference)

Задайте значение, возвращаемое PeerReference.

(Унаследовано от IJavaPeerable)
ToString()

Возвращает строковое представление этой заметки.

(Унаследовано от IAnnotation)
UnregisterFromRuntime()

Отмените регистрацию этого экземпляра, чтобы среда выполнения не возвращала ее из будущих Java.Interop.JniRuntime+JniValueManager.PeekValue вызовов.

(Унаследовано от IJavaPeerable)

Методы расширения

Имя. Описание
GetJniTypeName(IJavaPeerable)

Возвращает имя JNI типа экземпляра self.

JavaAs<TResult>(IJavaPeerable)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

JavaCast<TResult>(IJavaObject)

Выполняет преобразование типа, проверяемого средой выполнения Android.

JavaCast<TResult>(IJavaObject)

Помечает подходящий собственный метод для использования самых быстрых переходов Java Native Interface (JNI).

TryJavaCast<TResult>(IJavaPeerable, TResult)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

Применяется к