activityManager.getRunningAppProcesses()仅返回有关当前应用程序的信息。如何在android中检索所有正在运行的应用程序?

activityManager.getRunningAppProcesses()仅返回有关当前应用程序的信息。如何在android中检索所有正在运行的应用程序?,android,memory-management,background-process,cpu-usage,system-monitoring,Android,Memory Management,Background Process,Cpu Usage,System Monitoring,''' ActivityManager ActivityManager=(ActivityManager)getSystemService(Context.ACTIVITY_服务); ActivityManager.MemoryInfo MemoryInfo=新建ActivityManager.MemoryInfo(); activityManager.getMemoryInfo(memoryInfo) Log.i(标记“memoryInfo.availem”+memoryInfo.availe

''' ActivityManager ActivityManager=(ActivityManager)getSystemService(Context.ACTIVITY_服务); ActivityManager.MemoryInfo MemoryInfo=新建ActivityManager.MemoryInfo(); activityManager.getMemoryInfo(memoryInfo)

Log.i(标记“memoryInfo.availem”+memoryInfo.availem+“\n”);
Log.i(标记“memoryInfo.lowMemory”+memoryInfo.lowMemory+“\n”);
Log.i(标记“memoryInfo.threshold”+memoryInfo.threshold+“\n”);
列出runningAppProcesses=activityManager.getRunningAppProcesses();
Map pidMap=newtreemap();
对于(ActivityManager.RunningAppProcessInfo RunningAppProcessInfo:RunningAppProcesss)
{
put(runningAppProcessInfo.pid,runningAppProcessInfo.processName);
字符串s=list.getText().toString();
list.setText(s+runningAppProcessInfo.processName);
}
集合键=pidMap.keySet();
for(int键:键)
{
int-pids[]=新int[1];
pids[0]=键;
android.os.Debug.MemoryInfo[]memoryInfoArray=activityManager.getProcessMemoryInfo(pids);
for(android.os.Debug.MemoryInfo-pidMemoryInfo:MemoryInfo-Array)
{
Log.i(TAG,String.format(“**MEMINFO在pid%d[%s]**\n”、pids[0]、pidMap.get(pids[0]));
Log.i(标记“pidMemoryInfo.getTotalPrivateDirty():”+pidMemoryInfo.getTotalPrivateDirty()+“\n”);
Log.i(标记“pidMemoryInfo.getTotalPss():”+pidMemoryInfo.getTotalPss()+“\n”);
Log.i(标记“pidMemoryInfo.getTotalSharedDirty():”+pidMemoryInfo.getTotalSharedDirty()+“\n”);
}
}
'''

    Log.i(TAG, " memoryInfo.availMem " + memoryInfo.availMem + "\n" );
    Log.i(TAG, " memoryInfo.lowMemory " + memoryInfo.lowMemory + "\n" );
    Log.i(TAG, " memoryInfo.threshold " + memoryInfo.threshold + "\n" );

    List<ActivityManager.RunningAppProcessInfo> runningAppProcesses = activityManager.getRunningAppProcesses();

    Map<Integer, String> pidMap = new TreeMap<Integer, String>();
    for (ActivityManager.RunningAppProcessInfo runningAppProcessInfo : runningAppProcesses)
    {
        pidMap.put(runningAppProcessInfo.pid, runningAppProcessInfo.processName);
        String s= list.getText().toString();
        list.setText(s+runningAppProcessInfo.processName);
    }

    Collection<Integer> keys = pidMap.keySet();

    for(int key : keys)
    {
        int pids[] = new int[1];
        pids[0] = key;
        android.os.Debug.MemoryInfo[] memoryInfoArray = activityManager.getProcessMemoryInfo(pids);
        for(android.os.Debug.MemoryInfo pidMemoryInfo: memoryInfoArray)
        {
            Log.i(TAG, String.format("** MEMINFO in pid %d [%s] **\n",pids[0],pidMap.get(pids[0])));
            Log.i(TAG, " pidMemoryInfo.getTotalPrivateDirty(): " + pidMemoryInfo.getTotalPrivateDirty() + "\n");
            Log.i(TAG, " pidMemoryInfo.getTotalPss(): " + pidMemoryInfo.getTotalPss() + "\n");
            Log.i(TAG, " pidMemoryInfo.getTotalSharedDirty(): " + pidMemoryInfo.getTotalSharedDirty() + "\n");
        }
    }