개요
이 튜토리얼에서는 안드로이드 앱 내부에서 프로그래밍 방식으로 다른 앱(APK)을 제거(삭제)하는 방법을 단계별로 살펴봅니다. 핵심은 Intent.ACTION_DELETE 인텐트를 사용해 시스템의 앱 삭제 화면을 호출하는 것입니다.
1단계 — 새 프로젝트 생성
Android Studio를 실행한 뒤 File ⇒ New Project 메뉴로 이동하여 새 프로젝트를 생성하고, 필요한 모든 세부 정보를 입력합니다.
2단계 — 레이아웃 파일 작성
다음 코드를 res/layout/activity_main.xml에 추가합니다.
<?xml version = "1.0" encoding = "utf-8"?> <LinearLayout xmlns:android = "https://schemas.android.com/apk/res/android" android:orientation = "vertical" android:layout_width = "match_parent" android:gravity = "center" android:layout_height = "match_parent"> <TextView android:id = "@+id/text" android:layout_width = "fill_parent" android:gravity = "center" android:textSize = "30sp" android:layout_height = "wrap_content" android:text = "Click here" /> </LinearLayout>
위 코드에서는 클릭 이벤트를 받을 텍스트뷰 하나를 배치했습니다.
3단계 — MainActivity 코드 작성
다음 코드를 src/MainActivity.java에 추가합니다.
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
TextView text;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text = findViewById(R.id.text);
text.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_DELETE);
intent.setData(Uri.parse("package:com.example.myapplication"));
startActivity(intent);
}
});
}
}위 코드의 동작 원리는 다음과 같습니다.
Intent.ACTION_DELETE: 특정 패키지를 삭제하겠다는 요청을 시스템에 전달하는 인텐트 액션입니다.Uri.parse("package:..."): 삭제할 앱의 패키지 이름을 데이터로 지정합니다.startActivity(intent): 시스템의 앱 삭제 확인 대화상자를 띄웁니다. 사용자가 확인하면 해당 앱이 제거됩니다.
4단계 — 매니페스트 권한 설정 (권장)
일부 기기 및 최신 안드로이드 버전(Android 10 이상)에서는 삭제 요청이 정상적으로 처리되도록 AndroidManifest.xml에 아래 권한을 선언하는 것이 좋습니다.
<uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES"/>
5단계 — 앱 실행 및 결과 확인
실제 안드로이드 기기를 컴퓨터에 연결했다고 가정하고 앱을 실행해 보겠습니다. Android Studio에서 프로젝트의 액티비티 파일 중 하나를 연 뒤 툴바의 Run 아이콘을 클릭하고, 목록에서 자신의 모바일 기기를 선택하세요. 그러면 기기에 아래와 같은 기본 화면이 표시됩니다.

이제 홈 버튼을 눌러보면 다음과 같은 결과가 나타납니다.

마무리
이처럼 ACTION_DELETE 인텐트만으로 복잡한 로직 없이 간단히 앱 삭제 기능을 구현할 수 있습니다. 참고로 직접 삭제를 수행하는 것이 아니라 항상 시스템 확인 창을 거치므로, 사용자 동의가 필요한 안전한 방식이라는 점도 기억해 두세요.