如何获取android 进程信息
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何获取android 进程信息相关的知识,希望对你有一定的参考价值。
参考技术A 如何获取android 进程信息,有需要的朋友可以参考下。有时候为了完成某些功能比如监测某些程序的运行情况,我们可以通过动态的获取android 进程信息:
1)首先我们定义下进程信息的model:
public class ProcessInfo
private int pid; // 进程id
private int uid; // 进程所在的用户id
private int memSize; //进程占用的内存,kb
private String processName; // 进程名
public String pkgnameList[] ;//运行在进程里的对应的所有程序的包名
public int getPid()
return this.pid;
public void setPid(int pid)
this.pid = pid;
public int getUid()
return this.uid;
public void setUid(int uid)
this.uid = uid;
public int getMemSize()
return this.memSize;
public void setMemSize(int memSize)
this.memSize = memSize;
public String getProcessName()
return this.processName;
public void setPocessName(String processName)
this.processName = processName;
其次,我们通过android API 获取进程信息:
// 获得系统进程信息
private ArrayList<ProcessInfo> getRunningAppProcessInfo()
ActivityManager mActivityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
ArrayList<ProcessInfo> processInfoList = new ArrayList<ProcessInfo>();
List<ActivityManager.RunningAppProcessInfo> appProcessList = mActivityManager.getRunningAppProcesses();
for (ActivityManager.RunningAppProcessInfo appProcessInfo : appProcessList)
int pid = appProcessInfo.pid;
int uid = appProcessInfo.uid;
String processName = appProcessInfo.processName;
int[] myMempid = new int[] pid ;
Debug.MemoryInfo[] memoryInfo = mActivityManager.gegetProcessMemoryInfo(myMempid);
//kb
int memSize = memoryInfo[0].dalvikPrivateDirty;
ProcessInfo processInfo = new ProcessInfo();
processInfo.setPid(pid);
processInfo.setUid(uid);
processInfo.setMemSize(memSize);
processInfo.setPocessName(processName);
processInfo.pkgnameList = appProcessInfo.pkgList ;
processInfoList.add(processInfo);
return processInfoList;
//判断某进程是否存在
private boolean isProcessExisting(String packageName)
ArrayList<ProcessInfo> processInfoList = getRunningAppProcessInfo();
for(ProcessInfo process : processInfoList)
String[] packageList = process.pkgnameList;
for (String pkg : packageList)
if(pkg.equals(packageName))
return true;
return false;
本回答被提问者和网友采纳 参考技术B 打开设置>应用>正在运行。
以上是关于如何获取android 进程信息的主要内容,如果未能解决你的问题,请参考以下文章
RK3399平台开发系列讲解(内核调试篇)9.30如何在Linux kernel代码中获取当前进程的信息
C++如何获取系统各个进程,以及各进程的信息;一定要写清楚点哦!
Android 如何获取当前状态下所有持有wakelock的进程