ICriticalNative Interface
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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 |
| 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 |
| 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 |
| 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 |
| 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 |
| JavaAs<TResult>(IJavaPeerable) |
Essayez de forcer |
| 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 |