Translate

[Android] Memory 사용량 측정하기





    public MemResource getResource(Context context) {

        ActivityManager activityManager = (ActivityManager) context.getSystemService(context.ACTIVITY_SERVICE);
        ActivityManager.MemoryInfo memoryInfo = new ActivityManager.MemoryInfo();
        activityManager.getMemoryInfo(memoryInfo);

        MemResource meminfo = new MemResource();
        meminfo.setTotal(memoryInfo.totalMem);
        meminfo.setAvail(memoryInfo.availMem);

        return meminfo;
    }

    public class MemResource {
        private long avail;
        private long total;

        public String getAvail() {
            return changeHumanValue(avail);
        }

        public void setAvail(long avail) {
            this.avail = avail;
        }

        public String getTotal() {
            return changeHumanValue(total);
        }

        public void setTotal(long total) {
            this.total = total;
        }

        private String changeHumanValue(long value) {
            String humanValue;
            value = (int)(value / (1000 * 1000));
            if (value > 1024) {
                humanValue = (int)(value / 1024) + "";
                humanValue += "." + value % 1024 + "G";
            } else {
                humanValue = value + "M";
            }
            return humanValue;
        }
    }





CPU 사용량 구하는 방법과 같이 Linux 의 기본 기능을 가져와서 파싱하려 했는데
실제 핸드폰의 관리프로그램에서 보이는 용량과 System 에서 보여지는 용량과 큰 차이가 있다.
안드로이드는 시스템의 메모리를 최대한 확보를 한다나 모라나..





참조 사이트
http://blog.naver.com/PostView.nhn?blogId=huewu&logNo=110092658919&parentCategoryNo=18&viewDate=&currentPage=1&listtype=0
http://stackoverflow.com/questions/2298208/how-to-discover-memory-usage-of-my-application-in-android/2299813#2299813




댓글