进程信息获取

    xiaoxiao2025-07-23  7

    package com.home.engine; import java.util.ArrayList; import java.util.List; import android.app.ActivityManager; import android.app.ActivityManager.RunningAppProcessInfo; import android.content.Context; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.graphics.drawable.Drawable; import com.example.mobilesafe.R; import com.home.bean.ProcessInfo; /**  * 进程信息的业务类  *   * @author HQ  *   */ public class ProcessInfoProvider { public static List<ProcessInfo> getRunningProcessInfos(Context context) { ActivityManager am = (ActivityManager) context .getSystemService(Context.ACTIVITY_SERVICE); PackageManager pm = context.getPackageManager(); List<RunningAppProcessInfo> infos = am.getRunningAppProcesses(); List<ProcessInfo> list = new ArrayList<ProcessInfo>(); for (RunningAppProcessInfo info : infos) { ProcessInfo processInfo = new ProcessInfo(); String packName = info.processName; processInfo.setPackName(packName); long memSize = am.getProcessMemoryInfo(new int[] { info.pid })[0] .getTotalPrivateDirty() * 1024; processInfo.setMemSize(memSize); try { PackageInfo packInfo = pm.getPackageInfo(packName, 0); Drawable appIcon = packInfo.applicationInfo.loadIcon(pm); processInfo.setAppIcon(appIcon); String appName = packInfo.applicationInfo.loadLabel(pm) .toString(); processInfo.setAppName(appName); if ((packInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0) {// 系统进程 processInfo.setUserProcess(false); } else {// 用户进程 processInfo.setUserProcess(true); } } catch (NameNotFoundException e) { e.printStackTrace(); processInfo.setAppName(packName); processInfo.setAppIcon(context.getResources().getDrawable(R.drawable.ic_launcher)); } list.add(processInfo); } return list; }

    }

    业务bean

    package com.home.bean; import android.graphics.drawable.Drawable; /**  * 进程信息的数据实体  *   * @author HQ  *   */ public class ProcessInfo { /** * 进程图标,应用程序图标 */ private Drawable appIcon; /** * 应用程序的包名 */ private String appName; /** * 内存占用的大小 */ private String packName; /** * 内存占用的大小 */ private long memSize; /** * 是否是用户进程 */ private boolean userProcess; public Drawable getAppIcon() { return appIcon; } public void setAppIcon(Drawable appIcon) { this.appIcon = appIcon; } public String getAppName() { return appName; } public void setAppName(String appName) { this.appName = appName; } public String getPackName() { return packName; } public void setPackName(String packName) { this.packName = packName; } public long getMemSize() { return memSize; } public void setMemSize(long memSize) { this.memSize = memSize; } public boolean isUserProcess() { return userProcess; } public void setUserProcess(boolean userProcess) { this.userProcess = userProcess; } @Override public String toString() { return "ProcessInfo [appName=" + appName + ", packName=" + packName + ", memSize=" + memSize + ", userProcess=" + userProcess + "]"; } }

    转载请注明原文地址: https://ju.6miu.com/read-1300982.html
    最新回复(0)