获取Android系统中进程,任务,服务信息,需要通过ActivityManager类来实现。
ActivityManager的功能是为系统中所有运行着的Activity交互提供了接口。
ActivityManager am = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
通过 List<RunningTaskInfo> runningTasks = am.getRunningTasks(maxNum);返回任务列表信息
通过List<RunningServiceInfo> serivces = am.getRunningServices(maxNum);返回服务列表信息
通过List<RunningAppProcessInfo> apps = am.getRunningAppProcesses(); 返回进程列表信息
下面是RunningTaskInfo,RunningServiceInfo,RunningAppProcessInfo,三个类的解释:
Android.app.ActivityManager.RunningTaskInfo
属性名称
数据类型
描述
baseActivity
ComponentName
任务做为第一个运行中的Activity组件信息
description
CharSequence
任务当前状态的描述
id
Int
任务的ID
numActivities
Int
任务中所运行的Activity数量,包含已停止的
numRunning
Int
任务中所运行的Activity数量,不包含已停止或不延续运行的
thumbnall
Bitmap
任务当前状态的位图表示,目前为null
topActivity
ComponentName
处于任务栈的栈顶的活动组件
Android.app.ActivityManager.RunningServiceInfo
属性名称
数据类型
描述
activeSince
long
服务第一次被激活的时间 (启动和绑定方式)
clientCount
Int
接到该服务的客户端数目
crashCount
Int
服务运行期间,出现死机的次数
foreground
Boolean
若为true,则该服务在后台执行
lastActivityTime
Long
最后一个Activity与服务绑定的时间
pid
int
若此值不为0,则表示正在运行服务的Id
Process
String
该服务的名称
restarting
long
若此值不为0,则表示该服务不在运行中,将在参数给定的时间点重启服务
service
ComponentName
服务的组件名称
started
boolean
若此值为true,则表示服务已经在启动运行中
Android.app.ActivityManager.RunningAppProcessInfo
属性名称
数据类型
描述
importance
int
进程在系统中的重要级别
importanceReasonCode
int
进程的重要原因代码
importanceReasonComponent
ComponentName
进程中组件的描述信息
importanceReasonPid
int
当前进程的子进程Id
lru
int
在同一个重要级别内的附加排序值
pid
int
当前进程Id
pkgList
String[]
被载入当前进程的所有包名
processName
String
当前进程的名称
uid
int
当前进程的用户Id
代码:
获取任务信息