获取正在系统运行的进程
来源:互联网 发布:阿里云使用教程 编辑:程序博客网 时间:2024/05/21 08:40
package zxf.mobilesafe.engin;
import java.util.ArrayList;
import java.util.List;
import zxf.mobilesafe.bean.TaskInfo;
import android.app.ActivityManager;
import android.app.ActivityManager.RunningAppProcessInfo;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.os.Debug.MemoryInfo;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
public class TaskInfoProvider {
private ActivityManager am;
private PackageManager pm;
public TaskInfoProvider(ActivityManager am,PackageManager pm) {
super();
this.am = am;
this.pm = pm;
}
public List<TaskInfo> getAllTaskInfos(){
List <TaskInfo> list = new ArrayList<TaskInfo> ();
List<RunningAppProcessInfo> process = am.getRunningAppProcesses();
for(RunningAppProcessInfo rp : process){
TaskInfo ti = new TaskInfo();
ti.setPackageName(rp.processName);
ti.setTaskName(rp.processName);
ti.setPid(rp.pid);
ApplicationInfo appInfo=null;
try {
//第二个参数为0 表示不需要获取额外的信息
appInfo = pm.getApplicationInfo(ti.getPackageName(), 0);
//判断是否为系统程序
ti.setIsuserapp(this.filterApp(appInfo));
ti.setTaskIcon(appInfo.loadIcon(pm));
ti.setTaskName(appInfo.loadLabel(pm).toString());
int[] pids ={rp.pid};
MemoryInfo[] memoryInfos = am.getProcessMemoryInfo(pids);
//获取某进程的内存占用数目
ti.setMemory(getMemoryStr(memoryInfos[0].getTotalPrivateDirty()));
} catch (NameNotFoundException e) {
e.printStackTrace();
}
list.add(ti);
}
return list;
}
private String getMemoryStr(int kbMemory){
if(kbMemory<1024){
return kbMemory+"KB";
}else if(kbMemory>1024&&kbMemory<1024*1024){
return (kbMemory/1000f)+"MB";
}
return "";
}
/**
*
* @param info
* @return 是否是三方的app
*/
private boolean filterApp(ApplicationInfo info) {
// 系统程序 被我们用户升级了 , 三方的app
// 带了qq ,
if ((info.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0) {
return true;
} else if ((info.flags & ApplicationInfo.FLAG_SYSTEM) == 0) {
return true; // 用户自己下载的app
}
return false;
}
}
- 获取Android系统正在运行的进程
- 获取正在系统运行的进程
- 在Android中获取系统正在运行的进程方法
- Android:5.0以上获取系统正在运行的进程信息
- C# 获取正在运行的进程
- android获取正在运行的进程
- Android获取正在运行的进程
- 获取正在运行的进程列表
- iOS 获取正在运行的进程
- android获取正在运行的进程
- 3.8 获取系统正在运行的服务
- 获取Android系统正在运行的线程
- 获取系统正在运行的应用-iOS
- 如何通过进程名字关闭系统正在运行的进程
- android获取当前正在运行的进程的数目
- 73获取正在运行的进程的信息
- C 编程获取正在运行的程序进程号
- C 编程获取正在运行的程序进程号
- 向Internet发送xml数据
- MYSQL中文显示乱码问题
- jdbc 相关代码 存储过程
- Linux tar打包命令
- 如何在source insight中使用astyle的代码整理功能?
- 获取正在系统运行的进程
- 在网页中使用.ascx用户控件的两种方法
- T-MPLS帧结构
- OpenStack对象存储——Swift
- Amazon EC2云端服务器的使用方法
- android安全问题(二) 程序锁
- 工具
- CMFCShellTreeCtrl和CMFCShellListCtrl快速构建资源管理器
- NET学习网站