Lenguaje

CriticalNativeAttribute Clase

Definición

Marca un método nativo apto para usar las transiciones de Java interfaz nativa (JNI) más rápidas disponibles.

[Android.Runtime.Annotation("dalvik.annotation.optimization.CriticalNative")]
public class CriticalNativeAttribute : Attribute
[<Android.Runtime.Annotation("dalvik.annotation.optimization.CriticalNative")>]
type CriticalNativeAttribute = class
    inherit Attribute
Herencia
CriticalNativeAttribute
Atributos

Comentarios

Un método nativo crítico debe ser estático, puede tener solo tipos de parámetro primitivos y debe devolver un tipo primitivo o void. El atributo cambia la ABI de transición de JNI, por lo que la implementación nativa debe omitir los JNIEnv parámetros y jclass .

Mientras se ejecuta un método nativo crítico, la recolección de elementos no utilizados no puede suspender su subproceso y puede bloquearse. No use este atributo en métodos o métodos de ejecución prolongada que realicen E/S significativos o adquieran bloqueos nativos que se pueden mantener durante mucho tiempo. Este atributo no tiene ningún efecto en los métodos no nativos.

Esta optimización es una API pública probada por CTS a partir de Android 14. Para obtener la máxima compatibilidad, evite llamar a métodos nativos críticos en Android 13 y versiones anteriores. La vinculación dinámica de JNI solo funciona en Android 12 y versiones posteriores; Los métodos usados en Android 8 a Android 11 deben estar registrados explícitamente con JNI RegisterNatives. En Android 7 y versiones anteriores, se omite el atributo , por lo que la falta de coincidencia de ABI resultante puede provocar serialización de argumentos y bloqueos incorrectos.

Java documentación para dalvik.annotation.optimization.CriticalNative.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.

Constructores

Nombre Description
CriticalNativeAttribute()

Inicializa una nueva instancia de la clase CriticalNativeAttribute.

Se aplica a