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 略 and jclass 參數。
當關鍵的原生方法執行時,垃圾回收無法暫停其執行緒,且可能會被阻擋。 請勿將此註解用於長期執行的方法,或是進行大量 I/O 或取得可長期保留的原生鎖的方法。 此註解對非原生方法不影響。
這項優化是從 Android 14 開始經過 CTS 測試的公開 API。 為了達到最佳相容性,請避免在 Android 13 及更早版本呼叫關鍵的原生方法。 動態 JNI 連結僅適用於 Android 12 及更新版本;Android 8 至 Android 11 所用的方法必須明確註冊於 JNI RegisterNatives。 在 Android 7 及更早版本中,註解會被忽略,因此產生的 ABI 不匹配可能導致錯誤的參數編組並導致當機。
的 dalvik.annotation.optimization.CriticalNativeJava 檔。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
屬性
| 名稱 | Description |
|---|---|
| Handle |
取得底層 Android 物件的 JNI 值。 (繼承來源 IJavaObject) |
| JniIdentityHashCode |
回傳包裹實例的 |
| JniManagedPeerState |
管理貴族的狀況。 (繼承來源 IJavaPeerable) |
| JniObjectReferenceControlBlock |
標記為符合資格的原生方法,可使用最快可用的 Java 原生介面(JNI)轉換。 (繼承來源 IJavaPeerable) |
| JniPeerMembers |
成員存取與召喚支援。 (繼承來源 IJavaPeerable) |
| PeerReference |
回傳JniObjectReference包裹後的 Java 物件實例。 (繼承來源 IJavaPeerable) |
方法
| 名稱 | Description |
|---|---|
| AnnotationType() |
回傳該註解的註解介面。 (繼承來源 IAnnotation) |
| Disposed() |
當實例被處理後才被召喚。 (繼承來源 IJavaPeerable) |
| DisposeUnlessReferenced() |
如果沒有未解決的參考資料,則 |
| Equals(Object) |
若指定物件代表與此標註邏輯等價,則返回真。 (繼承來源 IAnnotation) |
| Finalized() |
當實例完成後才會被通知。 (繼承來源 IJavaPeerable) |
| GetHashCode() |
回傳此註解的雜湊碼。 (繼承來源 IAnnotation) |
| SetJniIdentityHashCode(Int32) |
將回傳的值設為 |
| SetJniManagedPeerState(JniManagedPeerStates) |
標記為符合資格的原生方法,可使用最快可用的 Java 原生介面(JNI)轉換。 (繼承來源 IJavaPeerable) |
| SetPeerReference(JniObjectReference) |
將回傳的值設為 |
| ToString() |
回傳此註解的字串表示。 (繼承來源 IAnnotation) |
| UnregisterFromRuntime() |
取消註冊此實例,讓執行時不會在未來 Java.Interop.JniRuntime+JniValueManager.PeekValue 的呼叫中回傳該實例。 (繼承來源 IJavaPeerable) |
擴充方法
| 名稱 | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時間檢查的類型轉換。 |
| JavaCast<TResult>(IJavaObject) |
標記為符合資格的原生方法,可使用最快可用的 Java 原生介面(JNI)轉換。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |