本文主要是介绍Android之ActivityManager简介(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
本文主要内容是讲解一下关于Android中的ActivityManager,这个类可以得到“设备配置的属性”,"进程信息","任务信息",“服务”,“正在运行的程序”
因此通过这个类,我们可以做一个类似于Windows管理器那样的demo,来管理我们的进程!
关于进程,任务,线程的概念,大家可以去我转载的一篇博文中学习下:
Android基本概念: 应用, 任务, 进程, 和线程
开始我们的ActivityManager学习吧!
ActivityManager的内部类:
ActivityManager.MemoryInfo : 系统内存使用情况的信息 ,可以通过getMemoryInfo(ActivityManager.MemoryInfo)
. 来获得该类对象
ActivityManager.ProcessErrorStateInfo: 错误状态的进程
ActivityManager.RecentTaskInfo:近期用户打开的任务信息
ActivityManager.RunningAppProcessInfo: 正在运行的应用程序进程
ActivityManager.RunningServiceInfo: 正在运行的服务信息
ActivityManager.RunningTaskInfo: 正在运行的任务信息
ActivityManager类对象的获取:
ActivityManager mActivityManager = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
ActivityManager类中的方法:
public ConfigurationInfo getDeviceConfigurationInfo ()
说明: 获得当前设备的配置信息
public int getLargeMemoryClass ()
说明: 如果在AndroidManifest.xml中的<application >标签下将属性 android:largeHeap=“true”这个属性决定你的应用进程是否应当在更大的Dalvik堆中创建,为了在运行时查看可用内存,
可用getLargeMemoryClass()或者 getMemoryClass()
public int getLauncherLargeIconDensity ()
说明:获取Launcher下图标的密度返回: 密度DPI
public int getLauncherLargeIconSize ()
说明:获取Launcher下图标的大小
public int getMemoryClass ()
说明:获取内存信息
public void getMemoryInfo (ActivityManager.MemoryInfo outInfo)
说明: 获取系统可用内存信息,并将信息存入参数 outInfo中
public static void getMyMemoryState (ActivityManager.RunningAppProcessInfo outState)
说明: 获取系统内存状态信息,并将信息存入参数 outState中,但不是全部信息Return global memory state information for the calling process. This does not fill in all fields of the ActivityManager.RunningAppProcessInfo
. The only fields that will be filled in are pid
, uid
, lastTrimLevel
, importance
, lru
, and importanceReasonCode
.
public MemoryInfo[] getProcessMemoryInfo (int[] pids)
说明: 获取每个进程(ID)使用的内存信息MemoryInfo,一一对应,返回一个内存信息集合MemoryInfo[]参数: 进程的pid信息集合
public List<ActivityManager.ProcessErrorStateInfo> getProcessesInErrorState ()
说明: 返回一个处于错误状态的进程列表,如果没有错误状态的进程,返回Null
public List<ActivityManager.RecentTaskInfo> getRecentTasks (int maxNum, int flags)
说明:获得最近开启的任务参数: maxNum: 返回的最大数量
flags: 返回的类型May be any combination of RECENT_WITH_EXCLUDED
and RECENT_IGNORE_UNAVAILABLE
.
public List<ActivityManager.RunningAppProcessInfo> getRunningAppProcesses ()
说明: 返回正在运行的应用程序进程列表
public PendingIntent getRunningServiceControlPanel (ComponentName service)
说明: 返回一个 PendingIntent ,给一个组件名,如果有与这个名字匹配的Service则返回,否则返回Null
public List<ActivityManager.RunningServiceInfo> getRunningServices (int maxNum)
说明: 获取系统里正在运行的服务, maxNum 为要获取服务的最大数量,一般为20或者50
public List<ActivityManager.RunningTaskInfo> getRunningTasks (int maxNum)
说明: 获取系统里正在运行的任务, maxNum 为要获取服务的最大数量
public static boolean isUserAMonkey ()
说明: 尼玛,这个是google程序员无聊恶搞的吧?
public void killBackgroundProcesses (String packageName)
说明:立即杀掉给定包名的进程,释放进程占用的资源(内存等) 【只有用户进程可以kill】
对于ActivityManger的介绍就到此为止哈,接下来用这个知识来写个“简易Android管理器”,请关注下一篇博文!
这篇关于Android之ActivityManager简介(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!