In My app, I want to display list of running processes and memory allocated for those processes.
I tried many solutions discussed in SOF, finally I got this answer from this and this link. But the problem is, I don't know how to get Memory size in bytes from MemoryInfo. And This code runs if usage access is provided.
I tried this code,
final ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
final List<ActivityManager.RunningAppProcessInfo> recentTasks = activityManager.getRunningAppProcesses();
for (ActivityManager.RunningAppProcessInfo info : recentTasks) {
Debug.MemoryInfo[] arrayofmem = activityManager.getProcessMemoryInfo(new int[]{info.pid});
double size=0;
for(Debug.MemoryInfo i:arrayofmem)
{
Debug.getMemoryInfo(i);
size+=i.getTotalPss();
}
}
I don't understand the exception which is thrown,
W/ActivityManager: getRunningAppProcesses: caller 10240 does not hold REAL_GET_TASKS; limiting output
W/u.myapp: type=1400 audit(0.0:1756): avc: denied { read } for uid=10240 name="mem" dev="debugfs" ino=2051842 scontext=u:r:untrusted_app:s0 tcontext=u:object_r:debugfs:s0 tclass=file permissive=0
Please save me. Thanks in advance!!!