Computer >> 컴퓨터 >  >> 프로그래밍 >> Android

Kotlin로 Android 애플리케이션 힙 크기 확인하는 방법

Android 앱을 개발하다 보면 애플리케이션에 할당된 힙(Heap) 크기를 확인해야 하는 경우가 종종 있습니다. 힙 크기는 앱이 사용할 수 있는 메모리의 상한선을 의미하며, 메모리 최적화나 대용량 데이터 처리 시 중요한 참고 지표가 됩니다.

이 글에서는 ActivityManager 클래스를 활용해 Kotlin으로 Android 애플리케이션의 힙 크기를 감지하는 방법을 단계별로 알아보겠습니다.

1단계: 새 프로젝트 생성

Android Studio에서 File → New Project를 선택하고, 필요한 정보를 모두 입력하여 새 프로젝트를 생성합니다. 언어는 Kotlin으로 설정합니다.

2단계: 레이아웃 파일 작성 (activity_main.xml)

res/layout/activity_main.xml 파일에 아래 코드를 추가합니다. 화면에는 버튼 하나와 결과를 표시할 TextView가 배치됩니다.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="50dp"
        android:text="Tutorials Point"
        android:textAlignment="center"
        android:textColor="@android:color/holo_green_dark"
        android:textSize="32sp"
        android:textStyle="bold" />

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:onClick="getHeapSize"
        android:text="Detect Heap Size" />

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/button"
        android:layout_centerInParent="true"
        android:layout_marginTop="20dp"
        android:textColor="@android:color/holo_red_light"
        android:textSize="24sp"
        android:textStyle="bold" />

</RelativeLayout>

3단계: MainActivity.kt 코드 작성

src/MainActivity.kt 파일에 다음 코드를 추가합니다. 핵심은 ActivityManagermemoryClass 속성으로, 이 값이 현재 앱에 할당된 힙 크기(MB 단위)입니다.

import android.app.ActivityManager
import android.content.Context
import android.os.Bundle
import android.view.View
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import java.util.*

class MainActivity : AppCompatActivity() {

    private lateinit var textView: TextView

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        title = "KotlinApp"
        textView = findViewById(R.id.textView)
    }

    fun getHeapSize(view: View) {
        val activityManager = getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager
        val memoryClass: Int = Objects.requireNonNull(activityManager).memoryClass
        textView.text = "Heap Size: $memoryClass"
    }
}

코드 설명

  • getSystemService(Context.ACTIVITY_SERVICE): 시스템 서비스에서 ActivityManager 인스턴스를 가져옵니다.
  • memoryClass: 현재 애플리케이션에 허용된 힙 크기를 MB(메가바이트) 단위 정수로 반환합니다.
  • 버튼 클릭 시 getHeapSize() 메서드가 호출되어 결과가 TextView에 표시됩니다.

참고로, 더 큰 힙이 필요한 경우 매니페스트에서 android:largeHeap="true" 속성을 사용할 수 있으며, 이때는 largeMemoryClass 값으로 확장된 힙 크기를 확인할 수 있습니다.

4단계: AndroidManifest.xml 설정

androidManifest.xml 파일에 아래 코드를 추가합니다.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android" package="app.com.q11">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

앱 실행 및 결과 확인

이제 애플리케이션을 실행해 보겠습니다. 실제 Android 기기를 컴퓨터에 연결했다고 가정합니다. Android Studio에서 프로젝트의 액티비티 파일 중 하나를 연 뒤, 툴바의 Run 아이콘을 클릭하세요. 실행 옵션에서 연결된 모바일 기기를 선택하면, 기본 화면과 함께 앱이 실행됩니다.

앱이 실행되면 화면 가운데 있는 Detect Heap Size 버튼을 눌러보세요. 버튼 아래 빨간색 텍스트로 현재 애플리케이션의 힙 크기(MB)가 표시됩니다.