투케이2K

442. (kotlin/코틀린) ActivityManager MemoryInfo 사용해 안드로이드 기기 RAM 사용 정보 확인 본문

Kotlin

442. (kotlin/코틀린) ActivityManager MemoryInfo 사용해 안드로이드 기기 RAM 사용 정보 확인

투케이2K 2023. 11. 27. 19:28

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Kotlin

 

[소스 코드]

 

        // -----------------------------------------------------------------------------------------
        // TODO [SEARCH FAST] : [RETURN] getRamMemoryUsed : 안드로이드 RAM 메모리 사용량 확인
        // -----------------------------------------------------------------------------------------
        fun getRamMemoryUsed(mContext: Context): String {

            /**
             * // -----------------------------------------
             * [getRamMemoryUsed 메소드 설명]
             * // -----------------------------------------
             * 1. 안드로이드 RAM 메모리 사용량 확인
             * // -----------------------------------------
             * 2. 호출 방식 :
             *
             * C_App.getRamMemoryUsed(A_Intro@this)
             *
             * // -----------------------------------------
             * 3. 리턴 데이터 :
             *
             * 58%
             * // -----------------------------------------
             * 4. TODO 추가 설명 :
             *
             * ActivityManager : 앱 활동, 서비스 및 프로세스에 대한 정보를 제공합니다
             * ActivityManager 는 디버깅 또는 정보 제공 목적으로 사용되며 앱의 런타임 동작에 영향을 주는 데 사용되어서는 안 됩니다
             *
             * // -----------------------------------------
             * 5. 참 고 :
             *
             * https://developer.android.com/reference/android/app/ActivityManager
             * https://developer.android.com/reference/android/app/ActivityManager#getMemoryInfo(android.app.ActivityManager.MemoryInfo)
             * // -----------------------------------------
             */


            // [리턴 값 선언]
            var returnData = ""
            var M_LOG = ""


            // [로직 처리 실시]
            try {

                // [ActivityManager 인스턴스 생성]
                val activityManager = mContext.getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager

                // [MemoryInfo 인스턴스 생성]
                val memoryInfo = ActivityManager.MemoryInfo()

                // [안드로이드 기기 RAM 메모리 정보 구하기]
                activityManager.getMemoryInfo(memoryInfo)

                // [RAM 전체 및 이용 가능 용량 확인]
                val total = memoryInfo.totalMem.toDouble()
                val avail = memoryInfo.availMem.toDouble()

                // [RAM 사용량 확인]
                val decimalFormat = DecimalFormat("#,###")
                val used = 100 * (total - avail) / total

                // [리턴 변수에 삽입]
                returnData = decimalFormat.format(used) + "%"
                M_LOG = "[Success] :: Used Ram Size Check"

            } catch (e: Exception) {
                M_LOG = "[Exception] :: " + e.message.toString()
                S_Log._printStackTrace_(mContext, S_FinalMsg.LOG_BUG_STATE, null, e)
            }


            // [로그 출력 실시]
            ///*
            // ===============================================================
            S_Log._D_("안드로이드 RAM 메모리 사용량 확인", arrayOf(
                "M_LOG :: $M_LOG",
                "RETURN :: $returnData"
            ))
            // ===============================================================
            // */


            // [리턴 반환 실시]
            return returnData
        }

 

반응형
Comments