ICriticalNative Interface
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Marca um método nativo qualificado para usar as transições de JNI (Interface Nativa) mais rápida Java s disponíveis.
[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
- Atributos
- Implementações
Comentários
Um método nativo crítico deve ser estático, pode ter apenas tipos de parâmetro primitivo e deve retornar um tipo primitivo ou void. A anotação altera a ABI de transição JNI, portanto, a implementação nativa deve omitir os parâmetros e jclass os JNIEnv parâmetros.
Enquanto um método nativo crítico é executado, a coleta de lixo não pode suspender seu thread e pode ser bloqueada. Não use essa anotação em métodos de execução longa ou métodos que executam E/S significativa ou adquiram bloqueios nativos que podem ser mantidos por um longo tempo. Essa anotação não tem efeito sobre métodos não nativos.
Essa otimização é uma API pública testada pelo CTS a partir do Android 14. Para obter compatibilidade máxima, evite chamar métodos nativos críticos no Android 13 e anteriores. A vinculação JNI dinâmica funciona apenas no Android 12 e posterior; os métodos usados no Android 8 até o Android 11 devem ser explicitamente registrados com JNI RegisterNatives. No Android 7 e anteriores, a anotação é ignorada, portanto, a incompatibilidade resultante da ABI pode causar falhas e marshalling de argumentos incorretos.
Java documentação para dalvik.annotation.optimization.CriticalNative.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.
Propriedades
| Nome | Description |
|---|---|
| Handle |
Obtém o valor JNI do objeto Android subjacente. (Herdado de IJavaObject) |
| JniIdentityHashCode |
Retorna o valor da |
| JniManagedPeerState |
Estado do par gerenciado. (Herdado de IJavaPeerable) |
| JniObjectReferenceControlBlock |
Marca um método nativo qualificado para usar as transições de JNI (Interface Nativa) mais rápida Java s disponíveis. (Herdado de IJavaPeerable) |
| JniPeerMembers |
Acesso ao membro e suporte à invocação. (Herdado de IJavaPeerable) |
| PeerReference |
Retorna uma JniObjectReference das instâncias de objeto Java encapsuladas. (Herdado de IJavaPeerable) |
Métodos
| Nome | Description |
|---|---|
| AnnotationType() |
Retorna a interface de anotação dessa anotação. (Herdado de IAnnotation) |
| Disposed() |
Chamado quando a instância foi descartada. (Herdado de IJavaPeerable) |
| DisposeUnlessReferenced() |
Se não houver referências pendentes a essa instância, então chamará |
| Equals(Object) |
Retorna true se o objeto especificado representa uma anotação que é logicamente equivalente a esta. (Herdado de IAnnotation) |
| Finalized() |
Chamado quando a instância foi finalizada. (Herdado de IJavaPeerable) |
| GetHashCode() |
Retorna o código hash dessa anotação. (Herdado de IAnnotation) |
| SetJniIdentityHashCode(Int32) |
Defina o valor retornado por |
| SetJniManagedPeerState(JniManagedPeerStates) |
Marca um método nativo qualificado para usar as transições de JNI (Interface Nativa) mais rápida Java s disponíveis. (Herdado de IJavaPeerable) |
| SetPeerReference(JniObjectReference) |
Defina o valor retornado por |
| ToString() |
Retorna uma representação de cadeia de caracteres dessa anotação. (Herdado de IAnnotation) |
| UnregisterFromRuntime() |
Cancele o registro dessa instância para que o runtime não a retorne de invocações futuras Java.Interop.JniRuntime+JniValueManager.PeekValue . (Herdado de IJavaPeerable) |
Métodos de Extensão
| Nome | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Obtém o nome JNI do tipo da instância |
| JavaAs<TResult>(IJavaPeerable) |
Tente coagir a digitar |
| JavaCast<TResult>(IJavaObject) |
Executa uma conversão de tipo marcada por runtime do Android. |
| JavaCast<TResult>(IJavaObject) |
Marca um método nativo qualificado para usar as transições de JNI (Interface Nativa) mais rápida Java s disponíveis. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Tente coagir a digitar |