获取进程、服务、任务列表
2013-05-16 15:03
134 查看
获取进程、服务、任务列表
|字号 订阅
android 获取进程、服务、任务列表
获取进程列表,需使用ActivityManager中的方法获取进程名;再根据进程名,获取应用程序的ApplicationInfo对象;用ApplicationInfo中的方法为进程加载图标和程序名称。获取服务、任务列表方法同上。1 实例化ActivityManager
1 2 | private ActivityManager mActivityManager; mActivityManager=(ActivityManager)getSystemService(ACTIVITY_SERVICE); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | //获取任务列表 public void getTasks() { aryListTaskID= new ArrayList<String>(); aryListTaskName= new ArrayList<String>(); //以getRunningTasks()取得进程TaskInfo List<ActivityManager.RunningTaskInfo> mRunningTasks= mActivityManager.getRunningTasks(intGetTaskCounter); for (ActivityManager.RunningTaskInfo amTask:mRunningTasks) { aryListTaskName.add(amTask.baseActivity.getClassName()); aryListTaskID.add( "" +amTask.id); intTaskNum++; } tab3_tv1.setText( "任务数量:" +intTaskNum); tab3_tv2.setText( "可用内存:" +fileSize(getAvailableRAM())); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | //获取服务列表 public void getService() { linkListServiceIcon= new LinkedList<Drawable>(); aryListServiceInfo= new ArrayList<String>(); aryListServiceName= new ArrayList<String>(); List<ActivityManager.RunningServiceInfo> serivces = mActivityManager.getRunningServices(intGetServiceCounter); for (RunningServiceInfo service:serivces) { programUtil.setProcessName(service.process); // 根据进程名,获取应用程序的ApplicationInfo对象 ApplicationInfo tempAppInfo = packageUtil.getApplicationInfo(service.process); // 为进程加载图标和程序名称 if (tempAppInfo != null ) { linkListServiceIcon.add(tempAppInfo.loadIcon(packageManager)); aryListServiceName.add(tempAppInfo.loadLabel(packageManager).toString()); } else { linkListServiceIcon.add(getApplicationContext().getResources().getDrawable(R.drawable.ic_launcher)); aryListServiceName.add(service.process); } //MemInfo是否可得,不行则用包名代替 if (!(mProcessMemoryUtil.getMemInfoByPid(service.pid)== "" )) { aryListServiceInfo.add(mProcessMemoryUtil.getMemInfoByPid(service.pid)); } else { aryListServiceInfo.add(service.process); } intServiceNum++; } tab2_tv1.setText( "服务数量:" +intServiceNum); tab2_tv2.setText( "可用内存:" +fileSize(getAvailableRAM())); } |
//获取进程列表 public void getProcess() { linkListProcessIcon= new LinkedList<Drawable>(); aryListProcessInfo= new ArrayList<String>(); aryListProcessName= new ArrayList<String>(); List<RunningAppProcessInfo> apps = mActivityManager.getRunningAppProcesses(); for (RunningAppProcessInfo app:apps) { //包名 // aryListProcessName.add(app.processName); programUtil.setProcessName(app.processName); // 根据进程名,获取应用程序的ApplicationInfo对象 ApplicationInfo tempAppInfo = packageUtil.getApplicationInfo(app.processName); // 为进程加载图标和程序名称 if (tempAppInfo != null ) { linkListProcessIcon.add(tempAppInfo.loadIcon(packageManager)); aryListProcessName.add(tempAppInfo.loadLabel(packageManager).toString()); } else { linkListProcessIcon.add(getApplicationContext().getResources().getDrawable(R.drawable.ic_launcher)); aryListProcessName.add(app.processName); } //MemInfo是否可得,不行则用包名代替 if (!(mProcessMemoryUtil.getMemInfoByPid(app.pid)== "" )) { aryListProcessInfo.add(mProcessMemoryUtil.getMemInfoByPid(app.pid)); } else { aryListProcessInfo.add(app.processName); } intProcessNum++; } tab1_tv1.setText( "程序数量:" +intProcessNum); tab1_tv2.setText( "可用内存:" +fileSize(getAvailableRAM())); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | package com.me.myexplorer; import java.util.List; import android.content.Context; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; public class PackageUtil { // ApplicationInfo 类,保存了普通应用程序的信息,主要是指Manifest.xml中application标签中的信息 private List<ApplicationInfo> allAppList; public PackageUtil(Context context) { // 通过包管理器,检索所有的应用程序(包括卸载)与数据目录 PackageManager pm = context.getApplicationContext().getPackageManager(); allAppList = pm.getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES); pm.getInstalledPackages( 0 ); } public ApplicationInfo getApplicationInfo(String appName) { if (appName == null ) { return null ; } for (ApplicationInfo appinfo : allAppList) { if (appName.equals(appinfo.processName)) { return appinfo; } } return null ; } } |
相关文章推荐
- android 获取进程、服务、任务列表
- 获取进程、服务、任务列表
- 获取进程、服务、任务列表
- 获取进程、服务、任务列表
- android 获取进程、服务、任务列表
- 获取进程、服务、任务列表
- android 获取进程、服务、任务列表
- 获取进程、服务、任务列表
- android 获取进程、服务、任务列表
- 把当前进程变为一个系统服务,从而在任务列表中把程序隐藏起来
- Android之——获取进程总数、内存、任务列表
- 【Demo 0076】获取进程中模块列表
- 枚举Android系统的进程,任务和服务的信息
- 获取本地服务列表
- Netflix源码解析之Ribbon:负载均衡器通过Eureka获取动态后端服务列表
- 获得进程,服务,应用的状态以及获取各种开关的状态,设置开关状态
- 进程,线程,服务,任务的区别
- 获取进程列表
- InstallShield高级应用--获取机机所有ORACLE服务列表
- Atitit.获取某个服务 网络邻居列表 解决方案