ICriticalNative インターフェイス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
使用可能なネイティブ メソッドをマークして、使用可能な最速のJavaネイティブ インターフェイス (JNI) 遷移を使用します。
[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
- 属性
- 実装
注釈
重要なネイティブ メソッドは静的であり、プリミティブ パラメーター型のみを持つ場合があり、プリミティブ型または voidを返す必要があります。 注釈によって JNI 遷移 ABI が変更されるため、ネイティブ実装では JNIEnv パラメーターと jclass パラメーターを省略する必要があります。
重要なネイティブ メソッドが実行されている間、ガベージ コレクションはスレッドを中断できず、ブロックされる可能性があります。 重要な I/O を実行する、または長時間保持できるネイティブ ロックを取得する、実行時間の長いメソッドまたはメソッドでは、この注釈を使用しないでください。 この注釈は、非ネイティブ メソッドには影響しません。
この最適化は、Android 14 以降の CTS でテストされたパブリック API です。 互換性を最大限に高める場合は、Android 13 以前で重要なネイティブ メソッドを呼び出さないようにしてください。 ダイナミックJNIリンクはAndroid 12以降でのみ動作します。Android 8 から Android 11 で使用されるメソッドは、JNI RegisterNativesに明示的に登録する必要があります。 Android 7 以前では注釈は無視されるため、結果として ABI の不一致により、引数マーシャリングが正しくなくなり、クラッシュする可能性があります。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
プロパティ
| 名前 | 説明 |
|---|---|
| Handle |
基になる Android オブジェクトの JNI 値を取得します。 (継承元 IJavaObject) |
| JniIdentityHashCode |
ラップされたインスタンスの |
| JniManagedPeerState |
マネージド ピアの状態。 (継承元 IJavaPeerable) |
| JniObjectReferenceControlBlock |
使用可能なネイティブ メソッドをマークして、使用可能な最速のJavaネイティブ インターフェイス (JNI) 遷移を使用します。 (継承元 IJavaPeerable) |
| JniPeerMembers |
メンバー アクセスと呼び出しのサポート。 (継承元 IJavaPeerable) |
| PeerReference |
ラップされたJava オブジェクト インスタンスのJniObjectReferenceを返します。 (継承元 IJavaPeerable) |
メソッド
| 名前 | 説明 |
|---|---|
| AnnotationType() |
この注釈の注釈インターフェイスを返します。 (継承元 IAnnotation) |
| Disposed() |
インスタンスが破棄されたときに呼び出されます。 (継承元 IJavaPeerable) |
| DisposeUnlessReferenced() |
このインスタンスへの未処理の参照がない場合は、 |
| Equals(Object) |
指定したオブジェクトがこのオブジェクトと論理的に等価な注釈を表す場合は true を返します。 (継承元 IAnnotation) |
| Finalized() |
インスタンスが終了したときに呼び出されます。 (継承元 IJavaPeerable) |
| GetHashCode() |
この注釈のハッシュ コードを返します。 (継承元 IAnnotation) |
| SetJniIdentityHashCode(Int32) |
|
| SetJniManagedPeerState(JniManagedPeerStates) |
使用可能なネイティブ メソッドをマークして、使用可能な最速のJavaネイティブ インターフェイス (JNI) 遷移を使用します。 (継承元 IJavaPeerable) |
| SetPeerReference(JniObjectReference) |
|
| ToString() |
この注釈の文字列形式を返します。 (継承元 IAnnotation) |
| UnregisterFromRuntime() |
ランタイムが将来の Java.Interop.JniRuntime+JniValueManager.PeekValue 呼び出しから返されないように、このインスタンスの登録を解除します。 (継承元 IJavaPeerable) |
拡張メソッド
| 名前 | 説明 |
|---|---|
| GetJniTypeName(IJavaPeerable) |
インスタンス |
| JavaAs<TResult>(IJavaPeerable) |
|
| JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
| JavaCast<TResult>(IJavaObject) |
使用可能なネイティブ メソッドをマークして、使用可能な最速のJavaネイティブ インターフェイス (JNI) 遷移を使用します。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
|