Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Inherited Constants](https://developer.android.com/reference/android/app/ActivityManager.MemoryInfo#inhconstants) \| [Fields](https://developer.android.com/reference/android/app/ActivityManager.MemoryInfo#lfields) \| [Ctors](https://developer.android.com/reference/android/app/ActivityManager.MemoryInfo#pubctors) \| [Methods](https://developer.android.com/reference/android/app/ActivityManager.MemoryInfo#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/android/app/ActivityManager.MemoryInfo#inhmethods)

# ActivityManager.MemoryInfo

*** ** * ** ***

` public static class ActivityManager.MemoryInfo `   
` extends https://developer.android.com/reference/java/lang/Object ` ` implements https://developer.android.com/reference/android/os/Parcelable `

|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | android.app.ActivityManager.MemoryInfo |

<br />

*** ** * ** ***

Information you can retrieve about the available memory through `https://developer.android.com/reference/android/app/ActivityManager#getMemoryInfo(android.app.ActivityManager.MemoryInfo)`.

## Summary

### Inherited constants

From interface `https://developer.android.com/reference/android/os/Parcelable` `int` `https://developer.android.com/reference/android/os/Parcelable#CONTENTS_FILE_DESCRIPTOR`

Descriptor bit used with `https://developer.android.com/reference/android/os/Parcelable#describeContents()`: indicates that the Parcelable object's flattened representation includes a file descriptor.
`int` `https://developer.android.com/reference/android/os/Parcelable#PARCELABLE_WRITE_RETURN_VALUE`

Flag for use with `https://developer.android.com/reference/android/os/Parcelable#writeToParcel(android.os.Parcel,%20int)`: the object being written is a return value, that is the result of a function such as "`Parcelable someFunction()`", "`void someFunction(out Parcelable)`", or "`void someFunction(inout Parcelable)`".

| ### Fields ||
|---|---|
| ` public static final https://developer.android.com/reference/android/os/Parcelable.Creator<https://developer.android.com/reference/android/app/ActivityManager.MemoryInfo>` | `https://developer.android.com/reference/android/app/ActivityManager.MemoryInfo#CREATOR` <br /> |
| ` public long` | `https://developer.android.com/reference/android/app/ActivityManager.MemoryInfo#advertisedMem` The advertised memory of the system, as the end user would encounter in a retail display environment. |
| ` public long` | `https://developer.android.com/reference/android/app/ActivityManager.MemoryInfo#availMem` The available memory on the system. |
| ` public long` | `https://developer.android.com/reference/android/app/ActivityManager.MemoryInfo#freeMem` The free memory on the system. |
| ` public boolean` | `https://developer.android.com/reference/android/app/ActivityManager.MemoryInfo#lowMemory` Set to true if the system considers itself to currently be in a low memory situation. |
| ` public long` | `https://developer.android.com/reference/android/app/ActivityManager.MemoryInfo#threshold` The threshold of `https://developer.android.com/reference/android/app/ActivityManager.MemoryInfo#availMem` at which we consider memory to be low and start killing background services and other non-extraneous processes. |
| ` public long` | `https://developer.android.com/reference/android/app/ActivityManager.MemoryInfo#totalMem` The total memory accessible by the kernel. |

| ### Public constructors ||
|---|---|
| ` https://developer.android.com/reference/android/app/ActivityManager.MemoryInfo#MemoryInfo()() ` |

| ### Public methods ||
|---|---|
| ` int` | ` https://developer.android.com/reference/android/app/ActivityManager.MemoryInfo#describeContents()() ` Describe the kinds of special objects contained in this Parcelable instance's marshaled representation. |
| ` void` | ` https://developer.android.com/reference/android/app/ActivityManager.MemoryInfo#readFromParcel(android.os.Parcel)(https://developer.android.com/reference/android/os/Parcel source) ` |
| ` void` | ` https://developer.android.com/reference/android/app/ActivityManager.MemoryInfo#writeToParcel(android.os.Parcel,%20int)(https://developer.android.com/reference/android/os/Parcel dest, int flags) ` Flatten this object in to a Parcel. |

### Inherited methods

From class ` https://developer.android.com/reference/java/lang/Object ` ` https://developer.android.com/reference/java/lang/Object` ` https://developer.android.com/reference/java/lang/Object#clone()() `

Creates and returns a copy of this object.
` boolean` ` https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) `

Indicates whether some other object is "equal to" this one.
` void` ` https://developer.android.com/reference/java/lang/Object#finalize()() `

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.
` final https://developer.android.com/reference/java/lang/Class<?>` ` https://developer.android.com/reference/java/lang/Object#getClass()() `

Returns the runtime class of this `Object`.
` int` ` https://developer.android.com/reference/java/lang/Object#hashCode()() `

Returns a hash code value for the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#notify()() `

Wakes up a single thread that is waiting on this object's monitor.
` final void` ` https://developer.android.com/reference/java/lang/Object#notifyAll()() `

Wakes up all threads that are waiting on this object's monitor.
` https://developer.android.com/reference/java/lang/String` ` https://developer.android.com/reference/java/lang/Object#toString()() `

Returns a string representation of the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait()() `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*.
From interface ` https://developer.android.com/reference/android/os/Parcelable ` ` abstract int` ` https://developer.android.com/reference/android/os/Parcelable#describeContents()() `

Describe the kinds of special objects contained in this Parcelable instance's marshaled representation.
` abstract void` ` https://developer.android.com/reference/android/os/Parcelable#writeToParcel(android.os.Parcel,%20int)(https://developer.android.com/reference/android/os/Parcel dest, int flags) `

Flatten this object in to a Parcel.

## Fields

### CREATOR

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final Creator<ActivityManager.MemoryInfo> CREATOR
```

<br />

<br />

### advertisedMem

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public long advertisedMem
```

The advertised memory of the system, as the end user would encounter in a retail display environment. This value might be different from `totalMem`. This could be due to many reasons. For example, the ODM could reserve part of the memory for the Trusted Execution Environment (TEE) which the kernel doesn't have access or knowledge about it.

<br />

### availMem

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public long availMem
```

The available memory on the system. This number should not be considered absolute: due to the nature of the kernel, a significant portion of this memory is actually in use and needed for the overall system to run well.

<br />

### freeMem

Added in [API level 37](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public long freeMem
```

The free memory on the system. This is the unused RAM size of the device. Unlike `https://developer.android.com/reference/android/app/ActivityManager.MemoryInfo#availMem`, it's a basic snapshot of free RAM, not accounting for reclaimable memory.

<br />

### lowMemory

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public boolean lowMemory
```

Set to true if the system considers itself to currently be in a low memory situation.

<br />

### threshold

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public long threshold
```

The threshold of `https://developer.android.com/reference/android/app/ActivityManager.MemoryInfo#availMem` at which we consider memory to be low and start killing background services and other non-extraneous processes.

<br />

### totalMem

Added in [API level 16](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public long totalMem
```

The total memory accessible by the kernel. This is basically the RAM size of the device, not including below-kernel fixed allocations like DMA buffers, RAM for the baseband CPU, etc.

<br />

## Public constructors

### MemoryInfo

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public MemoryInfo ()
```

<br />

<br />

## Public methods

### describeContents

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int describeContents ()
```

Describe the kinds of special objects contained in this Parcelable instance's marshaled representation. For example, if the object will include a file descriptor in the output of `https://developer.android.com/reference/android/os/Parcelable#writeToParcel(android.os.Parcel,%20int)`, the return value of this method must include the `https://developer.android.com/reference/android/os/Parcelable#CONTENTS_FILE_DESCRIPTOR` bit.

<br />

| Returns ||
|---|---|
| `int` | a bitmask indicating the set of special object types marshaled by this Parcelable object instance. Value is either `0` or - `https://developer.android.com/reference/android/os/Parcelable#CONTENTS_FILE_DESCRIPTOR` |

### readFromParcel

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void readFromParcel (Parcel source)
```

<br />

<br />

| Parameters ||
|---|---|
| `source` | `Parcel` <br /> |

### writeToParcel

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void writeToParcel (Parcel dest, 
                int flags)
```

Flatten this object in to a Parcel.

<br />

| Parameters ||
|---|---|
| `dest` | `Parcel`: The Parcel in which the object should be written. This value cannot be `null`. <br /> |
| `flags` | `int`: Additional flags about how the object should be written. May be 0 or `https://developer.android.com/reference/android/os/Parcelable#PARCELABLE_WRITE_RETURN_VALUE`. Value is either `0` or a combination of the following: - `https://developer.android.com/reference/android/os/Parcelable#PARCELABLE_WRITE_RETURN_VALUE` |