Lenguaje

MemoryBudgetManager Clase

Definición

Esta clase es la interfaz de cliente para los presupuestos de memoria para aplicaciones y procesos.

[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
Herencia
MemoryBudgetManager
Atributos

Comentarios

Esta clase es la interfaz de cliente para los presupuestos de memoria para aplicaciones y procesos. Un presupuesto de memoria es una promesa de la aplicación o uno de sus procesos que sus requisitos de memoria no superarán algún límite. El presupuesto no es un límite estricto: se puede superar, pero probablemente provocará que los procesos se ralenticen mientras intentan liberar memoria y caer por debajo del límite de presupuesto.

Una declaración presupuestaria no es una solicitud de memoria del sistema, ni la declaración influye en cómo el sistema asigna memoria a un proceso. Los presupuestos permiten a una aplicación supervisar su propio uso de recursos.

El uso de memoria que se realiza en el seguimiento de estos presupuestos incluye:

Asignaciones anónimas, normalmente el montón Java y el montón nativo.

Páginas respaldadas por archivos (como archivos asignados a la memoria o almacenados en caché por el proceso).

En el caso de la memoria compartida entre procesos (por ejemplo, segmentos de memoria compartida), el uso se cobra al primer proceso que asigna o asigna.

El uso de memoria rastreada no incluye búferes de gráficos nativos ni DMA-BUFs.

Hay dos conjuntos de límites en la memoria, además de los presupuestos administrados a través de esta interfaz. Hay límites del sistema y presupuestos de manifiesto (declarados a través <del presupuesto> de memoria en el manifiesto). Es posible que los presupuestos administrados a través de esta interfaz no superen los límites del sistema o del manifiesto. Cualquier intento de superar los límites del sistema o manifiesto dará como resultado una excepción IllegalArgumentException. Sin embargo, el presupuesto establecido a través de esta interfaz se puede cambiar en cualquier momento, hacia arriba o hacia abajo, siempre que el nuevo valor no supere los límites del sistema o manifiesto.

Un presupuesto debe ser positivo; si se intenta establecer un presupuesto que es cero o negativo, se producirá una excepción IllegalArgumentException.

Un presupuesto de paquete (aplicación) se aplica a todos los procesos de la aplicación como grupo (en concreto, todos los procesos que se ejecutan en el UID de la aplicación). Si la aplicación comparte un UID con otras aplicaciones, el presupuesto se aplica al uso agregado de todos los procesos que se ejecutan en ese UID compartido.

Un presupuesto de proceso se aplica a un único proceso. Es posible establecer un gran presupuesto en un proceso y un pequeño presupuesto en el paquete; el presupuesto del paquete domina y el gran presupuesto de proceso es irrelevante. Esto no es un error.

Las interfaces principales proporcionadas por esta clase son: Configuración de presupuesto de memoria:; setPackageBudgetBytes(long) / clearPackageBudget(): establece o borra el presupuesto de memoria de la aplicación; setProcessBudgetBytes(long) / clearProcessBudget(): establece o borra el presupuesto de memoria para el proceso de llamada; Consultas de presupuesto de memoria:; getPackageBudgetBytes(): devuelve el presupuesto actual de la aplicación; getProcessBudgetBytes(): devuelve el presupuesto actual para el proceso de llamada; Consultas de uso de memoria:; getPackageCurrentUsageBytes(): devuelve el uso de memoria agregada en todos los procesos del paquete de aplicación; getProcessCurrentUsageBytes(): devuelve el uso de memoria para el proceso específico del autor de la llamada; Over-Budget Supervisión de eventos:; OnOverBudgetListener: interfaz de devolución de llamada notificada cuando el uso de memoria supera un umbral presupuestario; registerPackageOverBudgetListener(Looper,OnOverBudgetListener) / unregisterPackageOverBudgetListener(OnOverBudgetListener): registra o anula el registro de agentes de escucha para infracciones de presupuesto de nivel de paquete; registerProcessOverBudgetListener(Looper,OnOverBudgetListener) / unregisterProcessOverBudgetListener(OnOverBudgetListener): registra o anula el registro de agentes de escucha para infracciones de presupuesto de nivel de proceso.

Referencia de Android para android.app.MemoryBudgetManager.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

Campos

Nombre Description
LimitIsDisabled

Este valor lo devuelve #getPackageBudgetBytes() y #getProcessBudgetBytes() , si no hay ningún límite de memoria asociado a la aplicación o al proceso, respectivamente.

Propiedades

Nombre Description
Class

Devuelve la clase en tiempo de ejecución de este Objectobjeto .

(Heredado de Object)
Handle

Identificador de la instancia de Android subyacente.

(Heredado de Object)
JniIdentityHashCode

Obtiene el código hash de identidad asignado a este Java del mismo nivel por el tiempo de ejecución de interoperabilidad.

(Heredado de Object)
JniManagedPeerState

Esta clase es la interfaz de cliente para los presupuestos de memoria para aplicaciones y procesos.

(Heredado de JavaObject)
JniPeerMembers

Esta clase es la interfaz de cliente para los presupuestos de memoria para aplicaciones y procesos.

PackageBudgetBytes

Devuelve el presupuesto de la aplicación del autor de la llamada. -o bien- Establece el presupuesto de memoria de la aplicación del autor de la llamada.

PackageCurrentUsageBytes

Devuelve el uso de memoria agregada en todos los procesos que se ejecutan en el UID de la aplicación del autor de la llamada.

PeerReference

Obtiene la referencia de objeto JNI para este Java del mismo nivel.

(Heredado de Object)
ProcessBudgetBytes

Devuelve el presupuesto del proceso del autor de la llamada. -o bien- Establece el presupuesto de memoria para el proceso del autor de la llamada.

ProcessCurrentUsageBytes

Devuelve el uso de memoria actual para el proceso del autor de la llamada.

ThresholdClass

Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código.

(Heredado de Object)
ThresholdType

Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código.

(Heredado de Object)

Métodos

Nombre Description
ClearPackageBudget()

Quita el presupuesto del paquete, si existe, para la aplicación del autor de la llamada.

ClearProcessBudget()

Quita el presupuesto del proceso, si existe, para el proceso del autor de la llamada.

Clone()

Crea y devuelve una copia de este objeto.

(Heredado de Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

Esta clase es la interfaz de cliente para los presupuestos de memoria para aplicaciones y procesos.

(Heredado de JavaObject)
Dispose()

Libera los recursos mantenidos por este Java del mismo nivel.

(Heredado de Object)
Dispose(Boolean)

Libera los recursos mantenidos por este Java del mismo nivel.

(Heredado de Object)
DisposeUnlessReferenced()

Esta clase es la interfaz de cliente para los presupuestos de memoria para aplicaciones y procesos.

(Heredado de JavaObject)
Equals(Object)

Esta clase es la interfaz de cliente para los presupuestos de memoria para aplicaciones y procesos.

(Heredado de JavaObject)
Equals(Object)

Indica si algún otro objeto es "igual a" este.

(Heredado de Object)
GetHashCode()

Devuelve un valor de código hash del objeto.

(Heredado de Object)
JavaFinalize()
Obsoletos.

Lo llama el recolector de elementos no utilizados en un objeto cuando la recolección de elementos no utilizados determina que no hay más referencias al objeto .

(Heredado de Object)
Notify()

Activa un único subproceso que está esperando en el monitor de este objeto.

(Heredado de Object)
NotifyAll()

Activa todos los subprocesos que están esperando en el monitor de este objeto.

(Heredado de Object)
RegisterPackageOverBudgetListener(Looper, MemoryBudgetManager+IOnOverBudgetListener)

Se registra para recibir una notificación si la aplicación del autor de la llamada supera el presupuesto del paquete.

RegisterProcessOverBudgetListener(Looper, MemoryBudgetManager+IOnOverBudgetListener)

Se registra para recibir una notificación si el proceso del autor de la llamada supera su presupuesto de proceso.

SetHandle(IntPtr, JniHandleOwnership)

Establece la propiedad Handle.

(Heredado de Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Esta clase es la interfaz de cliente para los presupuestos de memoria para aplicaciones y procesos.

(Heredado de JavaObject)
ToArray<T>()

Crea una matriz administrada a partir de este contenedor de matriz Java.

(Heredado de Object)
ToString()

Devuelve una representación de cadena del objeto.

(Heredado de Object)
UnregisterFromRuntime()

Anula el registro de este Java del mismo nivel del tiempo de ejecución de interoperabilidad.

(Heredado de Object)
UnregisterPackageOverBudgetListener(MemoryBudgetManager+IOnOverBudgetListener)

Anula el registro de un agente de escucha de presupuesto de paquetes.

UnregisterProcessOverBudgetListener(MemoryBudgetManager+IOnOverBudgetListener)

Anula el registro de un agente de escucha de presupuesto de procesos.

Wait()

Hace que el subproceso actual espere hasta que se despierta, normalmente por ser em notificado/em< o >em<interrumpido>/em<.><>

(Heredado de Object)
Wait(Int64, Int32)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)
Wait(Int64)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)

Implementaciones de interfaz explícitas

Nombre Description
IJavaPeerable.Disposed()

Esta clase es la interfaz de cliente para los presupuestos de memoria para aplicaciones y procesos.

(Heredado de JavaObject)
IJavaPeerable.Finalized()

Esta clase es la interfaz de cliente para los presupuestos de memoria para aplicaciones y procesos.

(Heredado de JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Esta clase es la interfaz de cliente para los presupuestos de memoria para aplicaciones y procesos.

(Heredado de JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Esta clase es la interfaz de cliente para los presupuestos de memoria para aplicaciones y procesos.

(Heredado de JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Esta clase es la interfaz de cliente para los presupuestos de memoria para aplicaciones y procesos.

(Heredado de JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Esta clase es la interfaz de cliente para los presupuestos de memoria para aplicaciones y procesos.

(Heredado de JavaObject)

Métodos de extensión

Nombre Description
GetJniTypeName(IJavaPeerable)

Obtiene el nombre JNI del tipo de la instancia self.

JavaAs<TResult>(IJavaPeerable)

Intente coerción self para escribir TResult, comprobando que la coerción es válida en el lado de Java.

JavaCast<TResult>(IJavaObject)

Realiza una conversión de tipos comprobados en tiempo de ejecución de Android.

JavaCast<TResult>(IJavaObject)

Esta clase es la interfaz de cliente para los presupuestos de memoria para aplicaciones y procesos.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Intente coerción self para escribir TResult, comprobando que la coerción es válida en el lado de Java.

Se aplica a