擷取系統啟動並執行所有進程的資訊,擷取進程資訊

來源:互聯網
上載者:User

擷取系統啟動並執行所有進程的資訊,擷取進程資訊

自己寫的一些工具類

 

public class TaskInfoUtils {    /**     * 擷取全部進程的資訊     *      * @param pContext     * @return     */    public static List<TaskInfo> getTaskInfos(Context pContext) {        // 1擷取到ActivityManager和PackageManager        ActivityManager _ActivityManager = (ActivityManager) pContext                .getSystemService(pContext.ACTIVITY_SERVICE);        PackageManager _PackageManager = pContext.getPackageManager();        List<TaskInfo> _TaskInfos = new ArrayList<TaskInfo>();        // 2擷取到所有在啟動並執行進程        List<RunningAppProcessInfo> _RunningAppProcessInfos = _ActivityManager                .getRunningAppProcesses();        //3 遍曆進程,擷取他的資訊        for (RunningAppProcessInfo runningAppProcessInfo : _RunningAppProcessInfos) {            TaskInfo _TaskInfo = new TaskInfo();            MemoryInfo[] memoryInfos = _ActivityManager                    .getProcessMemoryInfo(new int[] { runningAppProcessInfo.pid });            long _MemSize = memoryInfos[0].getTotalPrivateDirty() * 1024;// 進程消耗的記憶體            String _packageName = runningAppProcessInfo.processName;// 進程的包            ApplicationInfo _ApplicationInfo;            try {                _ApplicationInfo = _PackageManager.getApplicationInfo(                        _packageName, 0);                Drawable _Icon = _ApplicationInfo.loadIcon(_PackageManager);// 程式表徵圖                String _Name = _ApplicationInfo.loadLabel(_PackageManager)                        .toString();// 程式名                _TaskInfo.setIcon(_Icon);                _TaskInfo.setMemsize(_MemSize);                _TaskInfo.setName(_Name);                _TaskInfo.setPackname(_packageName);                if ((_ApplicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) {                    // 使用者進程                    _TaskInfo.setUserTask(true);                } else {                    // 系統進程                    _TaskInfo.setUserTask(false);                }                _TaskInfos.add(_TaskInfo);            } catch (NameNotFoundException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }        }        return _TaskInfos;    } class TaskInfo {    private Drawable icon;    private String name;    private long memsize;    private boolean userTask;    private String packname;    public Drawable getIcon() {        return icon;    }    public void setIcon(Drawable icon) {        this.icon = icon;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public long getMemsize() {        return memsize;    }    public void setMemsize(long memsize) {        this.memsize = memsize;    }    public boolean isUserTask() {        return userTask;    }    public void setUserTask(boolean userTask) {        this.userTask = userTask;    }    public String getPackname() {        return packname;    }    public void setPackname(String packname) {        this.packname = packname;    }    @Override    public String toString() {        return "TaskInfo [ name=" + name + ", memsize="                + memsize + ", userTask=" + userTask + ", packname=" + packname                + "]";    }}}

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.