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 |
Возвращает значение |
| JniManagedPeerState |
Состояние управляемого однорангового узла. (Унаследовано от IJavaPeerable) |
| JniObjectReferenceControlBlock |
Помечает подходящий собственный метод для использования самых быстрых переходов Java Native Interface (JNI). (Унаследовано от IJavaPeerable) |
| JniPeerMembers |
Поддержка доступа к членам и вызовов. (Унаследовано от IJavaPeerable) |
| PeerReference |
JniObjectReference Возвращает экземпляр объекта в оболочке Java. (Унаследовано от IJavaPeerable) |
Методы
| Имя. | Описание |
|---|---|
| AnnotationType() |
Возвращает интерфейс заметки этой заметки. (Унаследовано от IAnnotation) |
| Disposed() |
Вызывается при удалении экземпляра. (Унаследовано от IJavaPeerable) |
| DisposeUnlessReferenced() |
Если нет невыполненных ссылок на этот экземпляр, то вызывается |
| Equals(Object) |
Возвращает значение true, если указанный объект представляет заметку, которая логически эквивалентна этому объекту. (Унаследовано от IAnnotation) |
| Finalized() |
Вызывается при завершении экземпляра. (Унаследовано от IJavaPeerable) |
| GetHashCode() |
Возвращает хэш-код этой заметки. (Унаследовано от IAnnotation) |
| SetJniIdentityHashCode(Int32) |
Задайте значение, возвращаемое |
| SetJniManagedPeerState(JniManagedPeerStates) |
Помечает подходящий собственный метод для использования самых быстрых переходов Java Native Interface (JNI). (Унаследовано от IJavaPeerable) |
| SetPeerReference(JniObjectReference) |
Задайте значение, возвращаемое |
| ToString() |
Возвращает строковое представление этой заметки. (Унаследовано от IAnnotation) |
| UnregisterFromRuntime() |
Отмените регистрацию этого экземпляра, чтобы среда выполнения не возвращала ее из будущих Java.Interop.JniRuntime+JniValueManager.PeekValue вызовов. (Унаследовано от IJavaPeerable) |
Методы расширения
| Имя. | Описание |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Возвращает имя JNI типа экземпляра |
| JavaAs<TResult>(IJavaPeerable) |
Попробуйте принуждать к типу |
| JavaCast<TResult>(IJavaObject) |
Выполняет преобразование типа, проверяемого средой выполнения Android. |
| JavaCast<TResult>(IJavaObject) |
Помечает подходящий собственный метод для использования самых быстрых переходов Java Native Interface (JNI). |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Попробуйте принуждать к типу |