Language

MemoryBudgetManager クラス

定義

このクラスは、アプリケーションとプロセスのメモリ予算に対するクライアント インターフェイスです。

[Android.Runtime.Register("android/app/MemoryBudgetManager", ApiSince=37, DoNotGenerateAcw=true)]
public sealed class MemoryBudgetManager : Java.Lang.Object
[<Android.Runtime.Register("android/app/MemoryBudgetManager", ApiSince=37, DoNotGenerateAcw=true)>]
type MemoryBudgetManager = class
    inherit Object
継承
MemoryBudgetManager
属性

注釈

このクラスは、アプリケーションとプロセスのメモリ予算に対するクライアント インターフェイスです。 メモリの予算は、アプリケーションまたはそのプロセスの 1 つによって、そのメモリ要件が一部の制限を超えないという約束です。 予算はハード制限ではありません。超過しても、メモリを解放して予算制限を下回ろうとすると、プロセスの速度が低下する可能性があります。

予算宣言は、システムからのメモリ要求ではなく、システムがプロセスにメモリを割り当てる方法にも影響しません。 予算により、アプリケーションは独自のリソースの使用を監視できます。

これらの予算に対して追跡されるメモリ使用量には、次のものが含まれます。

匿名割り当て。最も一般的には、Java ヒープとネイティブ ヒープです。

ファイルベースのページ (メモリにマップされたファイルやプロセスによってキャッシュされたファイルなど)。

プロセス間で共有されるメモリ (共有メモリ セグメントなど) の場合、使用量は、それをマップまたは割り当てる最初のプロセスに課金されます。

追跡対象のメモリ使用量には、ネイティブ グラフィックス バッファーや DMA-BUF は含まれません。

このインターフェイスで管理される予算に加えて、メモリには 2 セットの制限があります。 システムの制限とマニフェストの予算があります (マニフェストで <memory-budget> を使用して宣言されます)。 このインターフェイスを通じて管理される予算は、システムまたはマニフェストの制限を超えない場合があります。 システムまたはマニフェストの制限を超えようとすると、IllegalArgumentException が発生します。 ただし、このインターフェイスを介して設定された予算は、新しい値がシステムまたはマニフェストの制限を超えない限り、いつでも変更できます。

予算は肯定的である必要があります。0 または負の予算を設定しようとすると、IllegalArgumentException が発生します。

パッケージ (アプリケーション) 予算は、アプリケーション内のすべてのプロセス (具体的には、アプリケーションの UID で実行されているすべてのプロセス) に適用されます。 アプリケーションが UID を他のアプリケーションと共有する場合、その予算は、その共有 UID で実行されているすべてのプロセスの集計使用量に適用されます。

プロセス予算は、1 つのプロセスに適用されます。 プロセスに大きな予算を設定し、パッケージに小さな予算を設定することができます。パッケージ予算が優勢であり、大きなプロセス予算は無関係です。 これはエラーではありません。

このクラスによって提供される主なインターフェイスは次のとおりです。メモリ予算の構成:;setPackageBudgetBytes(long) / clearPackageBudget() - アプリケーションのメモリ予算を設定またはクリアします。setProcessBudgetBytes(long) / clearProcessBudget() - 呼び出し元プロセスのメモリ予算を設定またはクリアします。メモリ予算クエリ:;getPackageBudgetBytes() - アプリケーションの現在の予算を返します。getProcessBudgetBytes() - 呼び出し元プロセスの現在の予算を返します。メモリ使用量クエリ:;getPackageCurrentUsageBytes() - アプリケーション パッケージ内のすべてのプロセスの合計メモリ使用量を返します。getProcessCurrentUsageBytes() - 呼び出し元の特定のプロセスのメモリ使用量を返します。Over-Budget イベントの監視:;OnOverBudgetListener - メモリ使用量が予算のしきい値を超えたときに通知されるコールバック インターフェイス。registerPackageOverBudgetListener(Looper,OnOverBudgetListener) / unregisterPackageOverBudgetListener(OnOverBudgetListener) - パッケージ レベルの予算違反のリスナーを登録または登録解除します。registerProcessOverBudgetListener(Looper,OnOverBudgetListener) / unregisterProcessOverBudgetListener(OnOverBudgetListener) - プロセス レベルの予算違反のリスナーを登録または登録解除します。

android.app.MemoryBudgetManagerの Android リファレンス。

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

フィールド

Name 説明
LimitIsDisabled

この値は、 #getPackageBudgetBytes() によって返され、アプリケーションまたはプロセスに関連付けられているメモリ制限がない場合は、それぞれ #getProcessBudgetBytes() されます。

プロパティ

Name 説明
Class

この Objectのランタイム クラスを返します。

(継承元 Object)
Handle

基になる Android インスタンスへのハンドル。

(継承元 Object)
JniIdentityHashCode

相互運用ランタイムによってこのJava ピアに割り当てられた ID ハッシュ コードを取得します。

(継承元 Object)
JniManagedPeerState

このクラスは、アプリケーションとプロセスのメモリ予算に対するクライアント インターフェイスです。

(継承元 JavaObject)
JniPeerMembers

このクラスは、アプリケーションとプロセスのメモリ予算に対するクライアント インターフェイスです。

PackageBudgetBytes

呼び出し元のアプリケーションの予算を返します。 または、呼び出し元のアプリケーションのメモリ予算を設定します。

PackageCurrentUsageBytes

呼び出し元のアプリケーション UID で実行されているすべてのプロセスの合計メモリ使用量を返します。

PeerReference

このJava ピアの JNI オブジェクト参照を取得します。

(継承元 Object)
ProcessBudgetBytes

呼び出し元のプロセスの予算を返します。 または、呼び出し元のプロセスのメモリ予算を設定します。

ProcessCurrentUsageBytes

呼び出し元のプロセスの現在のメモリ使用量を返します。

ThresholdClass

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

(継承元 Object)
ThresholdType

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

(継承元 Object)

メソッド

Name 説明
ClearPackageBudget()

呼び出し元のアプリケーションのパッケージ予算 (存在する場合) を削除します。

ClearProcessBudget()

呼び出し元のプロセスのプロセス予算 (ある場合) を削除します。

Clone()

このオブジェクトのコピーを作成して返します。

(継承元 Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

このクラスは、アプリケーションとプロセスのメモリ予算に対するクライアント インターフェイスです。

(継承元 JavaObject)
Dispose()

このJava ピアによって保持されているリソースを解放します。

(継承元 Object)
Dispose(Boolean)

このJava ピアによって保持されているリソースを解放します。

(継承元 Object)
DisposeUnlessReferenced()

このクラスは、アプリケーションとプロセスのメモリ予算に対するクライアント インターフェイスです。

(継承元 JavaObject)
Equals(Object)

このクラスは、アプリケーションとプロセスのメモリ予算に対するクライアント インターフェイスです。

(継承元 JavaObject)
Equals(Object)

他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。

(継承元 Object)
GetHashCode()

オブジェクトのハッシュ コード値を返します。

(継承元 Object)
JavaFinalize()
古い.

オブジェクトへの参照がなくなったとガベージ コレクションによって判断されたときに、オブジェクトのガベージ コレクターによって呼び出されます。

(継承元 Object)
Notify()

このオブジェクトのモニターで待機している 1 つのスレッドを起動します。

(継承元 Object)
NotifyAll()

このオブジェクトのモニターで待機しているすべてのスレッドを起動します。

(継承元 Object)
RegisterPackageOverBudgetListener(Looper, MemoryBudgetManager+IOnOverBudgetListener)

呼び出し元のアプリケーションがパッケージの予算を超えた場合に通知を受け取るレジスタ。

RegisterProcessOverBudgetListener(Looper, MemoryBudgetManager+IOnOverBudgetListener)

呼び出し元のプロセスがプロセスの予算を超えた場合に通知を受け取るレジスタ。

SetHandle(IntPtr, JniHandleOwnership)

Handle プロパティを設定します。

(継承元 Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

このクラスは、アプリケーションとプロセスのメモリ予算に対するクライアント インターフェイスです。

(継承元 JavaObject)
ToArray<T>()

このJava配列ラッパーからマネージド配列を作成します。

(継承元 Object)
ToString()

オブジェクトの文字列表現を返します。

(継承元 Object)
UnregisterFromRuntime()

相互運用ランタイムからこのJava ピアの登録を解除します。

(継承元 Object)
UnregisterPackageOverBudgetListener(MemoryBudgetManager+IOnOverBudgetListener)

パッケージ予算リスナーの登録を解除します。

UnregisterProcessOverBudgetListener(MemoryBudgetManager+IOnOverBudgetListener)

プロセス予算リスナーの登録を解除します。

Wait()

現在のスレッドが起動するまで待機します。通常は、 <em>notified</em> または <em>interrupted</em>。

(継承元 Object)
Wait(Int64, Int32)

現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。

(継承元 Object)
Wait(Int64)

現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。

(継承元 Object)

明示的なインターフェイスの実装

Name 説明
IJavaPeerable.Disposed()

このクラスは、アプリケーションとプロセスのメモリ予算に対するクライアント インターフェイスです。

(継承元 JavaObject)
IJavaPeerable.Finalized()

このクラスは、アプリケーションとプロセスのメモリ予算に対するクライアント インターフェイスです。

(継承元 JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

このクラスは、アプリケーションとプロセスのメモリ予算に対するクライアント インターフェイスです。

(継承元 JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

このクラスは、アプリケーションとプロセスのメモリ予算に対するクライアント インターフェイスです。

(継承元 JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

このクラスは、アプリケーションとプロセスのメモリ予算に対するクライアント インターフェイスです。

(継承元 JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

このクラスは、アプリケーションとプロセスのメモリ予算に対するクライアント インターフェイスです。

(継承元 JavaObject)

拡張メソッド

Name 説明
GetJniTypeName(IJavaPeerable)

インスタンス selfの型の JNI 名を取得します。

JavaAs<TResult>(IJavaPeerable)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

JavaCast<TResult>(IJavaObject)

Android ランタイムチェック型変換を実行します。

JavaCast<TResult>(IJavaObject)

このクラスは、アプリケーションとプロセスのメモリ予算に対するクライアント インターフェイスです。

TryJavaCast<TResult>(IJavaPeerable, TResult)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

適用対象