前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android ActivityManager

Android ActivityManager

作者头像
大公爵
发布2022-11-02 17:09:37
5330
发布2022-11-02 17:09:37
举报
文章被收录于专栏:葬爱家族葬爱家族

介绍

ActivityManager虽然名为Activity管理器,其实际功能比类名描述的广泛,定义的方法涵盖了内存、进程、任务、设备等相关功能。因此,将ActivityManager理解为AppManager,更符合这个类。

内存相关

1、api

方法

返回值

解释

getMemoryClass()

int

返回当前设备为每个应用程序分配的内存,单位M

getLargeMemoryClass()

int

返回当前设备为每个应用程序分配的最大内存,单位M

getMemoryInfo(ActivityManager.MemoryInfo outInfo)

MemoryInfo

系统内存状态的信息

getMyMemoryState(ActivityManager.RunningAppProcessInfo outState)

为调用进程返回全局内存状态信息

getProcessMemoryInfo(int[] pids)

MemoryInfo[]

返回关于一个或多个进程的内存使用情况的信息

isLowRamDevice()

boolean

返回是否是一个低ram设备

setWatchHeapLimit(long pssSize)

请求系统监视调用进程的堆限制大小,如果超过pssSize,会自动进行堆转储操作

clearWatchHeapLimit()

清除之前由setWatchHeapLimit(long)设置的Watch Heap限制

dumpPackageState(FileDescriptor fd, String packageName)

执行与给定应用程序包名称相关的各种状态的系统转储。此调用在执行转储时会阻塞,因此不应在 UI 线程上执行。数据将作为文本写入给定的文件描述符

2、getMemoryInfo 方法

返回系统的内存信息,用于帮助开发者管理内存。不建议轮询。优先使用onTrimMemory。

代码语言:javascript
复制
public void memoryInfo(View view) {
    ActivityManager.MemoryInfo info = new ActivityManager.MemoryInfo();
    manager.getMemoryInfo(info);
    log("info.totalMem:"+toMb(info.totalMem));
    log("info.availMem:"+toMb(info.availMem));
    log("info.threshold:"+toMb(info.threshold));
    log("info.lowMemory:"+info.lowMemory);
}

MemoryInfo属性

属性

说明

totalMem

总内存

availMem

系统可用内存

threshold

低内存阈值,即低内存的临界线

lowMemory

是否为低内存状态

3、getMyMemoryState 方法

返回调用进程的全局内存状态,只会写入以下字段

代码语言:javascript
复制
public void memoryState(View view) {
    ActivityManager.RunningAppProcessInfo info = new ActivityManager.RunningAppProcessInfo();
    ActivityManager.getMyMemoryState(info);
    log("info.pid:"+info.pid);
    log("info.uid:"+info.uid);
    log("info.lastTrimLevel:" + info.lastTrimLevel);
    log("info.importance:" + info.importance);
    log("info.lru:" + info.lru);
    log("info.importanceReasonCode:" + info.importanceReasonCode);
}

RunningAppProcessInfo属性

属性

说明

pid

进程ID

uid

进程所在的用户ID

lastTrimLevel

报告给进程的最后内存修剪级别

importance

该进程的相对重要级别,值越小级别越高 importance值的意义

lru

当importance == 400 ,即IMPORTANCE_CACHED 时,这个数字才有意义

importanceReasonCode

importance取值的原因

进程相关

1、api

方法

返回值

解释

killBackgroundProcesses(String packageName)

让系统立即终止与给定包关联的所有后台进程

getProcessesInErrorState()

List ActivityManager.ProcessErrorStateInfo

返回当前处于错误状态的所有进程的列表

getRunningAppProcesses()

List ActivityManager.RunningAppProcessInfo

返回在设备上运行的应用程序进程列表

getRunningServiceControlPanel(ComponentName service)

PendingIntent

返回一个 PendingIntent,您可以显示给定服务的控制面板。如果服务没有控制面板,则返回 null

getRunningServices(int maxNum)

List ActivityManager.RunningServiceInfo

返回当前运行的Services列表

任务相关

1、api

方法

返回值

解释

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)

同上

getAppTasks 获取与应用程序关联的任务列表。

Task 一些相关联的activity的集合,但activity之间不一定非得相关联。当我们按home键旁边那个方形键(recent-apps)时,屏幕上展示的就是一个个task。

设备相关

1、api

方法

返回值

解释

getDeviceConfigurationInfo()

ConfigurationInfo

获取设备配置属性

getLauncherLargeIconDensity()

int

获取启动器图标的首选密度

getLauncherLargeIconSize()

int

获取首选的启动器图标大小。这在创建自定义可绘制对象时使用(例如,用于快捷方式)

clearApplicationUserData()

boolean

允许应用程序从磁盘中擦除自己的数据。这相当于用户选择从设备设置 UI 中清除应用程序的数据。它会删除与应用程序相关的所有动态数据——其私有数据和外部存储上其私有区域中的数据——但不会删除已安装的应用程序本身,也不会删除任何 OBB 文件。它还撤销应用程序已获得的所有运行时权限,清除所有通知并删除与此应用程序相关的所有 Uri 授权

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-10-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 内存相关
    • 1、api
      • 2、getMemoryInfo 方法
        • 3、getMyMemoryState 方法
        • 进程相关
          • 1、api
          • 任务相关
            • 1、api
            • 设备相关
              • 1、api
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档