Langue

CriticalNativeAttribute Classe

Définition

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

[Android.Runtime.Annotation("dalvik.annotation.optimization.CriticalNative")]
public class CriticalNativeAttribute : Attribute
[<Android.Runtime.Annotation("dalvik.annotation.optimization.CriticalNative")>]
type CriticalNativeAttribute = class
    inherit Attribute
Héritage
CriticalNativeAttribute
Attributs

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’attribut 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 cet attribut sur des méthodes ou des méthodes longues qui effectuent des E/S significatives ou acquièrent des verrous natifs qui peuvent être conservés pendant longtemps. Cet attribut 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’attribut est ignoré, de sorte que l’incompatibilité ABI résultante peut entraîner un marshaling et des plantages d’argument 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 le projet Android Open Source et utilisés en fonction des termes décrits dans la licence d’attribution Creative Commons 2.5.

Constructeurs

Nom Description
CriticalNativeAttribute()

Initialise une nouvelle instance de la classe CriticalNativeAttribute.

S’applique à