728x90
안드로이드 앱을 개발하다 보면 현재 앱 자체의 정보나 기기에 설치된 다른 앱들의 정보를 프로그램적으로 알아야 할 때가 있습니다. 예를 들어, 앱 내에 "앱 정보" 화면을 구현하여 버전 번호를 보여주거나, 특정 앱이 설치되어 있는지 확인하여 기능을 활성화/비활성화하고 싶을 때 유용하죠.
이럴 때 안드로이드에서 제공하는 PackageManager와 ApplicationInfo 클래스를 활용할 수 있습니다.
이번 포스팅에서는 PackageManager와 ApplicationInfo를 사용하여 현재 앱의 이름, 패키지 이름, 버전 이름, 아이콘을 가져와 TextView와 ImageView에 표시하는 방법을 MainActivity.java와 activity_main.xml 두 파일만으로 간단하게 구현해 보겠습니다.
전체 코드입니다
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center_horizontal"
android:padding="20dp"
tools:context=".MainActivity">
<ImageView
android:id="@+id/app_icon_image_view"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginBottom="20dp"
android:src="@mipmap/ic_launcher"
android:contentDescription="App Icon" />
<TextView
android:id="@+id/app_name_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24sp"
android:textStyle="bold"
android:textColor="@android:color/black"
android:layout_marginBottom="10dp"
tools:text="앱 이름"/>
<TextView
android:id="@+id/package_name_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="16sp"
android:layout_marginBottom="5dp"
tools:text="패키지 이름: com.example.myapp"/>
<TextView
android:id="@+id/version_name_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="16sp"
android:layout_marginBottom="5dp"
tools:text="버전 이름: 1.0.0"/>
</LinearLayout>
MainActivity.java
public class MainActivity extends AppCompatActivity {
private ImageView appIconImageView;
private TextView appNameTextView;
private TextView packageNameTextView;
private TextView versionNameTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 뷰 바인딩
appIconImageView = findViewById(R.id.app_icon_image_view);
appNameTextView = findViewById(R.id.app_name_text_view);
packageNameTextView = findViewById(R.id.package_name_text_view);
versionNameTextView = findViewById(R.id.version_name_text_view);
// PackageManager 인스턴스 가져오기
PackageManager packageManager = getPackageManager();
// 현재 앱의 패키지 이름 가져오기
String currentPackageName = getPackageName();
try {
// 1. ApplicationInfo를 사용하여 앱 이름과 아이콘 가져오기
ApplicationInfo appInfo = packageManager.getApplicationInfo(currentPackageName, 0);
String appName = (String) packageManager.getApplicationLabel(appInfo);
Drawable appIcon = packageManager.getApplicationIcon(appInfo);
appNameTextView.setText(appName);
appIconImageView.setImageDrawable(appIcon);
// 2. PackageInfo를 사용하여 버전 이름가져오기
PackageInfo packageInfo = packageManager.getPackageInfo(currentPackageName, 0);
String versionName = packageInfo.versionName;
packageNameTextView.setText("패키지 이름: " + currentPackageName);
versionNameTextView.setText("버전 이름: " + versionName);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
appNameTextView.setText("앱 정보를 가져올 수 없습니다.");
}
}
}
실행 결과입니다.

'안드로이드 자바' 카테고리의 다른 글
| [Java][Android] GestureDetector로 제스처 감지하기 (1) | 2025.07.19 |
|---|---|
| [Java][Android] RXJava 사용하기 (0) | 2025.07.13 |
| [Java][Android] AssetManager를 활용하여 앱 내 에셋 파일에 접근하기 (0) | 2025.07.01 |
| [Java][Android] Hilt 활용 예시 만들기 (2) | 2025.06.28 |
| [Java][Android] Html.fromHtml() 로 HTML 텍스트 표시하기 (3) | 2025.06.24 |