任务管理器可以实现的功能有:

1.查看当前系统下运行的所有的进程

2.可以查看每个进程的进程号、版本号以及内存占用情况

3.杀死进程(可以杀死全部进程或者杀死指定的进程)

4.查看系统剩余内存

效果图:                                                                                               杀死全部进程

     

实现思路:

ActivityManager类可以获取到当前系统的所有进程,以及每个进程的信息,也可以杀死某个进程,

ActivityManager.getRunningAppProcesses();   获取系统的所有进程

ActivityManager.getProcessMemoryInfo(pids);  根据进程号获取每个进程的内存占用情况

ActivityManager.restartPackage(processName) ;  根据进程的包名杀死某个进程

PackageManager可以根据包名获取程序的图标、版本号、名字、权限、签名

核心代码:

 /** 获取所有进程及用户 的进程*/protected void initData() {runningAppProcessInfos =ActivityManager.getRunningAppProcesses(); //获取所有的进程userRunningAppProcessInfos = new ArrayList<ActivityManager.RunningAppProcessInfo>();//获取用户的进程for(int i = 0; i< runningAppProcessInfos.size();i++){if("system".equals(runningAppProcessInfos.get(i).processName)||"android.process.media".equals(runningAppProcessInfos.get(i).processName)||"android.process.acore".equals(runningAppProcessInfos.get(i).processName)){continue;}userRunningAppProcessInfos.add(runningAppProcessInfos.get(i));}}

注:杀死全部进程实际上杀死的是用户的所有进程,系统进程是无法杀死的,所以这里要获取到用户的所有的进程。

         /** 获取某个进程占用的内存信息 */ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);int[] pids = {userRunningAppProcessInfos.get(position).pid};android.os.Debug.MemoryInfo[] memoryInfos =  am.getProcessMemoryInfo(pids);int memorysize = memoryInfos[0].getTotalPrivateDirty();tv_app_memory.setText("内存占用为 "+ memorysize +" KB");
public class TaskInfo {Context context ;PackageManager pm ;public TaskInfo(Context context) {this.context = context;pm = context.getPackageManager();}/** 根据包名 查询 图标*/public Drawable getAppIcon(String packname){try {ApplicationInfo info = pm.getApplicationInfo(packname, 0); return info.loadIcon(pm);} catch (NameNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();return null;}}/**获取程序的版本号  */public String getAppVersion(String packname){try {PackageInfo packinfo =    pm.getPackageInfo(packname, 0);return packinfo.versionName;} catch (NameNotFoundException e) {e.printStackTrace();return null;}}/** 获取程序的名字 */public String getAppName(String packname){try {ApplicationInfo info =    pm.getApplicationInfo(packname, 0); return info.loadLabel(pm).toString();} catch (NameNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();return null;}}/** 获取程序的权限*/public String[] getAppPremission(String packname){try {PackageInfo packinfo = pm.getPackageInfo(packname, PackageManager.GET_PERMISSIONS);//获取到所有的权限 return packinfo.requestedPermissions;} catch (NameNotFoundException e) {e.printStackTrace();return null;}}/** 获取程序的签名 */public String getAppSignature(String packname){try {PackageInfo packinfo =  pm.getPackageInfo(packname, PackageManager.GET_SIGNATURES);//获取到所有的权限 return packinfo.signatures[0].toCharsString();} catch (NameNotFoundException e) {e.printStackTrace();return null;}}
}
 /** 杀死所有进程 */private void killAll() {for (int i = 0 ; i< userRunningAppProcessInfos.size();i++){System.out.println(userRunningAppProcessInfos.get(i).processName);activitymanager.restartPackage(userRunningAppProcessInfos.get(i).processName);}// 更新显示的界面 pd.show();new Thread(){@Overridepublic void run() {initData();Message msg = new Message();msg.what = GET_RUNNING_APP_FINISH;hander.sendMessage(msg);}}.start();}/** 杀死选择的进程 */private void killSelected() {for (int i=0 ;i < isselected.size(); i++){if(isselected.get(i)){    //如果用户也选中则返回true//终止一个activity 需要用到 activitymanageractivitymanager.restartPackage(userRunningAppProcessInfos.get(i).processName);}}//更新listview的显示  pd.show();new Thread(){@Overridepublic void run() {initData();Message msg = new Message();msg.what = GET_RUNNING_APP_FINISH;hander.sendMessage(msg);}}.start();}
     /** 获取系统的剩余内存*/ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);MemoryInfo outInfo = new ActivityManager.MemoryInfo();am.getMemoryInfo(outInfo);long availMemorySize = outInfo.availMem;String strMemorySize = availMemorySize/1024/1024 + "MB";

您想快速达成您的目标和实现梦想吗?请加QQ:673220883 每天为您提供了大量励志,视频,销售,管理等-经典文章,免费学习。此QQ空间已改变了千万人的命运。陈安之和您一起开始您的梦想之旅!陈安之老师全国课程报名热线:131 6187 6870

精彩分享: 如果你现在没有目标,对未来很迷茫、来看下

精彩分享: 俞洪敏:一辈子只做一件事 不要想太多

精彩分享: 男人的这一百个秘密,我不说你一辈子也不可能知道!

精彩分享: 人临终前最遗憾的25件事,别让这些遗憾 变成你的遗憾

精彩分享: 6个步骤,助你打破聊天尴尬局面,推荐阅读
精彩分享:  告诉自己我可以输,但我绝不放弃
精彩分享: 业务高手不想让别人知道的沟通秘籍
精彩分享: 陈安之教你三十岁前如何挣到五百万,不管男女都花上几分钟进来看完
精彩分享: 乔布斯,不为人知的故事!斯坦福大学演讲
精彩分享: 拖延等于死亡---改变千万人生的一堂课!
精彩分享: 为什么你是一个有才华的穷人?让你受益终身的文章!
精彩分享: 人生就像一杯茶,不会哭一辈子,但总会哭一阵子!

Android实现任务管理器相关推荐

  1. 使用air进行移动app开发常见功能和问题(二)

    1.  Air如何判断android.ios 平台网络连接状态? Android,使用as3原生api: [javascript] view plaincopy if(NetworkInfo.isSu ...

  2. Flutter (四) 基础 Widgets、Material Components Widget 全面介绍

    基础 Widgets 重要概念 一切皆组件.Flutter 所有的元素都是由组件组成.比如一个布局元素.一个动画.一个装饰效果等. 容器 Container 容器组件 Container 包含一个子 ...

  3. Flutter 入门学习(五)— Material Design风格组件

    文章目录 1. 概述 2. App结构和导航组件 2.1 MaterialApp(应用组件) 2.1.1 设置主页 2.1.2 路由处理 2.1.3 自定义主题 2.2 Scaffold(脚手架组件) ...

  4. Service+WebSocket实现实时定位

    背景 最近遇到了这样一个需求:实现一个实时定位功能,并将定位到的信息上传至服务器. 思路 首先实现一个长生命周期的Service服务: 其次通过BroadcastReceiver监听系统广播,当Ser ...

  5. 情书生成器代码_微软飞行模拟器是对航空的情书

    情书生成器代码 The newest entry in the nearly 40-year-old game series just may be the best one yet. 近40年历史的 ...

  6. 使用AIR进行移动APP开发常见功能和问题(下)

    1.  Air如何判断android.ios 平台网络连接状态? Android,使用as3原生api: if(NetworkInfo.isSupported)//只有android支持 Networ ...

  7. android 平板 切换任务管理器,看谁分身有术 三大平板系统多任务横评

    1三大平板系统 谁能"左右互搏"? 喜欢看金庸的网友都知道,"左手画方,右手画圆"的左右互搏术是武学至高境界,只有少数武林奇才能掌握这门"多任务功夫& ...

  8. Android任务管理器

    最近参考系统源代码,做了一个任务管理器.具体功能是获取用户的任务列表.活动图标.Activity的缩略图以及恢复任务.关闭任务. 完整的demo已上传到github,代码拙劣,将就看看:https:/ ...

  9. android一键清理任务,[玩机组出品]全球最小最高效的一键清理任务管理器。仅100......

    作为一个进程怎么杀也杀不完的手机系统,安卓系统对于程序运行后台管理不作为一直被人们所诟病.小白们喜欢下载一些"优化大师"来管理手机运存,但是往往事与愿违,安装了他们手机反而变得越来 ...

最新文章

  1. [设计模式] ------ 模板模式
  2. java面向对象上机题库_Java面向对象编程上机-练习题汇总
  3. 【学术篇】2.28测试T2 线段 拓扑排序
  4. Spring启动的流程
  5. NAT、远程访问和站点间***集成
  6. 月薪过万是普遍现象吗?很抱歉,这事大部分人的错觉
  7. SSD模型物体检测(水下生物识别)
  8. uniapp路线规划
  9. NOIP 2017 列队 (线段树动态开点)
  10. 《大数据时代》读后感(一)
  11. [虚拟机] 如何让VMware上的虚拟机识别到U盘
  12. 集成学习——bagging原理及分析
  13. 新版WordPress网址导航主题模板+自适应WAP
  14. 匈牙利命名法的衰落和建议
  15. LTspice快速上手--搭建简单RC电路
  16. Influxdb自定义数据采样(CQ)
  17. Redis 的 MOVED 转向与 ASK 转向
  18. python+java停车场车位管理系统vue+elementui
  19. 线上电商数据可以为我们带来哪些营销情报
  20. 区块链智能合约solidity入门 1

热门文章

  1. 室内人员定位解决方案,智慧工厂车间安全管理
  2. airpods链接mac弹窗_airpods弹窗怎么设置
  3. 计算机键盘五大根键,Windows2000、XP、2003五大根键重点解析.doc
  4. android水果连连看 代码逻辑,AndroidGame--水果连连看的设计(原理篇)
  5. 大三上数据库系统管理复习
  6. Vue注册界面精美模板分享
  7. 父亲-孩子在问题解决过程中的人际神经同步:fNIRS超扫描研究
  8. 第十二章 Django框架
  9. 【IDEA】插件推荐(效率++)
  10. QQ对Pica,相煎何急?