Langue

ICriticalNative Interface

Définition

Marque une méthode native éligible pour utiliser les transitions JNI (Native Interface) les plus rapides disponibles Java.

[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
Attributs
Implémente

Remarques

Une méthode native critique doit être statique, peut avoir uniquement des types de paramètres primitifs et doit retourner un type primitif ou void. L’annotation modifie l’ABI de transition JNI, de sorte que l’implémentation native doit omettre les paramètres et jclass les JNIEnv paramètres.

Lorsqu’une méthode native critique s’exécute, le garbage collection ne peut pas suspendre son thread et peut être bloqué. N’utilisez pas cette annotation sur des méthodes ou méthodes de longue durée qui effectuent des E/S significatives ou acquièrent des verrous natifs qui peuvent être conservés pendant longtemps. Cette annotation n’a aucun effet sur les méthodes non natives.

Cette optimisation est une API publique testée par CTS à partir d’Android 14. Pour une compatibilité maximale, évitez d’appeler des méthodes natives critiques sur Android 13 et versions antérieures. La liaison JNI dynamique fonctionne uniquement sur Android 12 et versions ultérieures ; les méthodes utilisées sur Android 8 via Android 11 doivent être explicitement inscrites auprès de JNI RegisterNatives. Sur Android 7 et versions antérieures, l’annotation est ignorée, de sorte que l’incompatibilité ABI résultante peut entraîner un marshaling et des plantages d’arguments incorrects.

Java documentation pour dalvik.annotation.optimization.CriticalNative.

Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.

Propriétés

Nom Description
Handle

Obtient la valeur JNI de l’objet Android sous-jacent.

(Hérité de IJavaObject)
JniIdentityHashCode

Retourne la valeur de java.lang.System.identityHashCode() l’instance encapsulée.

(Hérité de IJavaPeerable)
JniManagedPeerState

État de l’homologue managé.

(Hérité de IJavaPeerable)
JniObjectReferenceControlBlock

Marque une méthode native éligible pour utiliser les transitions JNI (Native Interface) les plus rapides disponibles Java.

(Hérité de IJavaPeerable)
JniPeerMembers

Prise en charge de l’accès aux membres et de l’appel.

(Hérité de IJavaPeerable)
PeerReference

Retourne une JniObjectReference instance d’objet Java encapsulée.

(Hérité de IJavaPeerable)

Méthodes

Nom Description
AnnotationType()

Retourne l’interface d’annotation de cette annotation.

(Hérité de IAnnotation)
Disposed()

Appelé lorsque l’instance a été supprimée.

(Hérité de IJavaPeerable)
DisposeUnlessReferenced()

S’il n’existe aucune référence en suspens à cette instance, les appels Dispose(); sinon, ne fait rien.

(Hérité de IJavaPeerable)
Equals(Object)

Retourne true si l’objet spécifié représente une annotation qui est logiquement équivalente à celle-ci.

(Hérité de IAnnotation)
Finalized()

Appelé lorsque l’instance a été finalisée.

(Hérité de IJavaPeerable)
GetHashCode()

Retourne le code de hachage de cette annotation.

(Hérité de IAnnotation)
SetJniIdentityHashCode(Int32)

Définissez la valeur retournée par JniIdentityHashCode.

(Hérité de IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

Marque une méthode native éligible pour utiliser les transitions JNI (Native Interface) les plus rapides disponibles Java.

(Hérité de IJavaPeerable)
SetPeerReference(JniObjectReference)

Définissez la valeur retournée par PeerReference.

(Hérité de IJavaPeerable)
ToString()

Retourne une représentation sous forme de chaîne de cette annotation.

(Hérité de IAnnotation)
UnregisterFromRuntime()

Annulez l’inscription de cette instance afin que le runtime ne le retourne pas à partir d’appels futurs Java.Interop.JniRuntime+JniValueManager.PeekValue .

(Hérité de IJavaPeerable)

Méthodes d’extension

Nom Description
GetJniTypeName(IJavaPeerable)

Obtient le nom JNI du type de l’instance self.

JavaAs<TResult>(IJavaPeerable)

Essayez de forcer self le typeTResult, en vérifiant que le forçage est valide côté Java.

JavaCast<TResult>(IJavaObject)

Effectue une conversion de type vérifiée par le runtime Android.

JavaCast<TResult>(IJavaObject)

Marque une méthode native éligible pour utiliser les transitions JNI (Native Interface) les plus rapides disponibles Java.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Essayez de forcer self le typeTResult, en vérifiant que le forçage est valide côté Java.

S’applique à