이 글에서는 Kotlin을 사용해 안드로이드에서 현재 실행 중인 애플리케이션을 코드로 조회하는 방법을 단계별로 알아봅니다. ActivityManager의 getRunningTasks() 메서드를 활용하면 실행 중인 태스크(액티비티 스택) 정보를 가져올 수 있습니다.
1단계 — 새 프로젝트 생성
Android Studio를 열고 File → New Project 메뉴로 이동한 뒤, 필요한 모든 세부 정보를 입력하여 새 프로젝트를 생성합니다.
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"
android:padding="16dp"
tools:context=".MainActivity">
<TextView
android:textColor="@android:color/background_dark"
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:textAlignment="center"
android:textSize="24sp"
android:textStyle="bold" />
</RelativeLayout>3단계 — MainActivity.kt 구현
src/MainActivity.kt 파일에 다음 코드를 추가합니다. 시스템 서비스로부터 ActivityManager를 얻어온 뒤, 실행 중인 태스크 목록을 순회하며 기본 액티비티와 태스크 ID를 화면에 출력합니다.
import android.app.ActivityManager
import android.app.ActivityManager.RunningTaskInfo
import android.content.Context
import android.os.Bundle
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import java.util.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
title = "KotlinApp"
val textView: TextView = findViewById(R.id.textView)
val activityManager = getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager
val recentTasks: List<RunningTaskInfo> =
Objects.requireNonNull(activityManager).getRunningTasks(Int.MAX_VALUE)
for (i in recentTasks.indices) {
textView.text = "Application executed: ${recentTasks[i].baseActivity!!.toShortString()}ID: ${recentTasks[i].id}"
}
}
}4단계 — 매니페스트 설정 (AndroidManifest.xml)
androidManifest.xml 파일에 아래 코드를 추가합니다. 별도의 권한 선언 없이 기본 런처 액티비티만 등록하면 됩니다.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android" package="com.example.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 Studio에서 프로젝트의 액티비티 파일 중 하나를 연 후, 툴바의 Run 아이콘을 클릭하세요.

옵션 목록에서 자신의 모바일 기기를 선택하면, 기기 화면에 실행 중인 애플리케이션 정보가 표시되는 것을 확인할 수 있습니다.

참고 사항
안드로이드 5.0(API 21)부터는 보안·프라이버시 정책 강화로 인해 getRunningTasks()가 자신의 앱 태스크 이외의 정보는 반환하지 않습니다. 따라서 최신 버전에서 다른 앱의 실행 여부를 확인하려면 UsageStatsManager(사용자 접근성 권한 필요)나 포그라운드 앱 감지용 ProcessLifecycleOwner 같은 대체 방안을 검토하는 것이 좋습니다.