发布时间:2025-12-09 16:27:35 浏览次数:15
ActivityManager虽然名为Activity管理器,其实际功能比类名描述的广泛,定义的方法涵盖了内存、进程、任务、设备等相关功能。因此,将ActivityManager理解为AppManager,更符合这个类。
| getMemoryClass() | int | 返回当前设备为每个应用程序分配的内存,单位M |
| getLargeMemoryClass() | int | 返回当前设备为每个应用程序分配的最大内存,单位M |
| getMemoryInfo(ActivityManager.MemoryInfo outInfo) | 返回系统内存状态的信息。 | |
| getMyMemoryState(ActivityManager.RunningAppProcessInfo outState) | 为调用进程返回全局内存状态信息。 | |
| getProcessMemoryInfo(int[] pids) | MemoryInfo[] | 返回关于一个或多个进程的内存使用情况的信息。 |
| isLowRamDevice() | boolean | 如果这是一个低ram设备,返回true。 |
| setWatchHeapLimit(long pssSize) | 请求系统监视调用进程的堆限制大小,如果超过pssSize,会自动进行堆转储操作 | |
| clearWatchHeapLimit() | 清除之前由setWatchHeapLimit(long)设置的Watch Heap限制。 | |
| dumpPackageState(FileDescriptor fd, String packageName) | 执行与给定应用程序包名称相关的各种状态的系统转储。此调用在执行转储时会阻塞,因此不应在 UI 线程上执行。数据将作为文本写入给定的文件描述符。 。 |
返回系统的内存信息,用于帮助开发者管理内存。不建议轮询。优先使用onTrimMemory。
| totalMem | 总内存 |
| availMem | 系统可用内存 |
| threshold | 低内存阈值,即低内存的临界线 |
| lowMemory | 是否为低内存状态 |
输出:
info.totalMem:2.96吉字节info.availMem:820兆字节info.threshold:226兆字节info.lowMemory:false返回调用进程的全局内存状态,只会写入以下字段
| pid | 进程ID |
| uid | 进程所在的用户ID |
| lastTrimLevel | 报告给进程的最后内存修剪级别 |
| importance | 该进程的相对重要级别,值越小级别越高 importance值的意义 |
| lru | 当importance == 400 ,即IMPORTANCE_CACHED 时,这个数字才有意义 |
| importanceReasonCode | importance 取值的原因 |
输出:
info.pid:18906info.uid:10251info.lastTrimLevel:0info.importance:100info.lru:0info.importanceReasonCode:0| killBackgroundProcesses(String packageName) | 让系统立即终止与给定包关联的所有后台进程。 | |
| getProcessesInErrorState() | List ActivityManager.ProcessErrorStateInfo | 返回当前处于错误状态的所有进程的列表。 |
| getRunningAppProcesses() | List ActivityManager.RunningAppProcessInfo | 返回在设备上运行的应用程序进程列表。 |
| getRunningServiceControlPanel(ComponentName service) | PendingIntent | 返回一个 PendingIntent,您可以显示给定服务的控制面板。如果服务没有控制面板,则返回 null。 |
| getRunningServices(int maxNum) | List ActivityManager.RunningServiceInfo | 返回当前运行的Services列表 |
| getAppTasks() | List AppTask | 获取与应用程序关联的任务列表 |
| addAppTask(Activity activity, Intent intent, ActivityManager.TaskDescription description, Bitmap thumbnail) | int | 添加一个ActivityManager.AppTask |
| getAppTaskThumbnailSize() | Size | 返回用于当前 ActivityManager.AppTask缩略图的当前设计尺寸,用于addAppTask(Activity, Intent, ActivityManager.TaskDescription, Bitmap) |
| getLockTaskModeState() | int | 返回当前任务锁定状态。 |
| moveTaskToFront(int taskId, int flags, Bundle options) | 请求与给定任务ID关联的任务被移动到堆栈的前面,因此用户现在可以看到它。 | |
| moveTaskToFront(int taskId, int flags) | 同上 |
获取与应用程序关联的任务列表。
Task
一些相关联的activity的集合,但activity之间不一定非得相关联。当我们按home键旁边那个方形键(recent-apps)时,屏幕上展示的就是一个个task。
| getDeviceConfigurationInfo() | ConfigurationInfo | 获取设备配置属性。 |
| getLauncherLargeIconDensity() | int | 获取启动器图标的首选密度。 |
| getLauncherLargeIconSize() | int | 获取首选的启动器图标大小。这在创建自定义可绘制对象时使用(例如,用于快捷方式)。 |
| clearApplicationUserData() | boolean | 允许应用程序从磁盘中擦除自己的数据。这相当于用户选择从设备设置 UI 中清除应用程序的数据。它会删除与应用程序相关的所有动态数据——其私有数据和外部存储上其私有区域中的数据——但不会删除已安装的应用程序本身,也不会删除任何 OBB 文件。它还撤销应用程序已获得的所有运行时权限,清除所有通知并删除与此应用程序相关的所有 Uri 授权。 |