Android开发指南肥鱼优化系列之(六)ActivityManager初步分析

一、ActivityManager的作用

     ActivityManager负责新的Activity Thread的创建、Activity生命周期的维护以及对系统内存使用情况的监控。

二、ActivityManager的内部类
     ActivityManager有6个内部类,分别是:

  • ActivityManager.MemoryInfo 系统内存使用情况
  • ActivityManager.ProcessErrorStateInfo 错误状态的进程
  • ActivityManager.RecentTaskInfo 近期用户打开的任务信息
  • ActivityManager.RunningAppProcessInfo 正在运行的应用程序进程信息
  • ActivityManager.RunningServiceInfo 正在运行的服务信息
  • ActivityManagerRunningTaskInfo 正在运行的任务信息

三、ActivityManager对象的初始化
ActivityManager>


四、ActivityManager中一些常用方法

  • ConfigurationInfo>
  • int getLauncherLargeIconDensity () 获取Launcher下图标的密度,返回密度DPI
  • int getLauncherLargeIconSize ()获取Launcher下的图标大小
  • int getMemoryClass () 获取内存信息
  • void getMemoryInfo (ActivityManager.MemoryInfo outInfo) 获取系统可用内存信息,并将信息存入参数 outInfo中。
  • static void getMyMemoryState (ActivityManager.RunningAppProcessInfo outState) 获取系统内存状态信息,并将信息存入参数 outState中,但不是全部信息。
  • MemoryInfo[] getProcessMemoryInfo (int[] pids) 获取每个进程(ID)使用的内存信息MemoryInfo,一一对应,返回一个内存信息集合MemoryInfo[]
  • List<ActivityManager.ProcessErrorStateInfo> getProcessesInErrorState  返回一个处于错误状态的进程列表,如果没有错误状态的进程,返回Null()
  •  List<ActivityManager.RecentTaskInfo> getRecentTasks (int maxNum, int flags) 获得最近开启的任务
  • List<ActivityManager.RunningAppProcessInfo> getRunningAppProcesses () 返回一个PendingIntent ,给一个组件名,如果有与这个名字匹配的Service则返回,否则返回Null
  • PendingIntent getRunningServiceControlPanel (ComponentName service) 返回一个PendingIntent ,给一个组件名,如果有与这个名字匹配的Service则返回,否则返回Null。
  • List<ActivityManager.RunningServiceInfo> getRunningServices (int maxNum) 获取系统里正在运行的服务, maxNum 为要获取服务的最大数量,一般为20或者50。
  • List<ActivityManager.RunningTaskInfo> getRunningTasks (int maxNum) 获取系统里正在运行的任务, maxNum 为要获取服务的最大数量
  • static boolean isUserAMonkey () Monkey测试??
  • void killBackgroundProcesses (String packageName) 立即杀掉给定包名的进程,释放进程占用的资源(内存等) 【只有用户进程可以kill】

五、ActivityManager.MemoryInfo

     该类主要用于查看内存信息。availMem的值是系统可用的内存大小,threshold表示的是系统内存不足的阀值,也就是临界值,而lowMemory则是判断当前可用内存是否大于等于临界值。

 

六、ActivityManager.RunningAppProcessInfo

     该类主要用于查看正在运行的应用程序信息。pid字段标明了进程id,uid则标明了进程所在用户的id。processName则是存放进程名称的字段(默认值是包名或者由android:process属性指定)。pkgList则是一个存储该进程下的所有应用程序包名的数组。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值