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!!!
 
    