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

Android 앱의 최초 설치 날짜를 확인하는 방법

이 튜토리얼에서는 안드로이드(Android) 애플리케이션이 처음 설치된 날짜, 즉 최초 설치 시간(firstInstallTime)을 가져오는 방법을 단계별로 알아봅니다.

안드로이드에서는 PackageManagerPackageInfo 클래스를 활용하면 앱의 설치 관련 정보를 손쉽게 조회할 수 있습니다. 그중 firstInstallTime 필드는 해당 앱이 기기에 처음 설치된 시각을 밀리초(millisecond) 단위의 타임스탬프로 반환합니다.

1단계: 새 프로젝트 생성

Android Studio에서 File → New Project를 선택하고, 새 프로젝트 생성에 필요한 모든 세부 정보를 입력하여 새 프로젝트를 만듭니다.

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

아래 코드를 res/layout/activity_main.xml 파일에 추가합니다.

<?xml version = "1.0" encoding = "utf-8"?>
<LinearLayout xmlns:android = "https://schemas.android.com/apk/res/android"
   xmlns:app = "https://schemas.android.com/apk/res-auto"
   xmlns:tools = "https://schemas.android.com/tools"
   android:layout_width = "match_parent"
   android:gravity = "center"
   android:layout_height = "match_parent"
   tools:context = ".MainActivity"
   android:orientation = "vertical">
   <TextView
      android:id = "@+id/text"
      android:textSize = "30sp"
      android:layout_width = "wrap_content"
      android:layout_height = "wrap_content" />
</LinearLayout>

위 코드에서는 화면 중앙에 하나의 TextView를 배치했습니다. 이 TextView는 앱의 최초 설치 날짜를 사용자에게 보여주는 역할을 합니다.

3단계: 메인 액티비티 작성 (src/MainActivity.java)

아래 코드를 src/MainActivity.java 파일에 추가합니다.

package com.example.myapplication;
import android.content.pm.PackageInfo;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.RequiresApi;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;
import java.text.SimpleDateFormat;
import java.util.Date;
public class MainActivity extends AppCompatActivity {
    TextView textView;
    @RequiresApi(api = Build.VERSION_CODES.P)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView = findViewById(R.id.text);

        PackageManager pm = getApplicationContext().getPackageManager();
        String pkgName = getApplicationContext().getPackageName();
        PackageInfo pkgInfo = null;
        try {
            pkgInfo = pm.getPackageInfo(pkgName, 0);
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }
        Long ver = pkgInfo.firstInstallTime;
        DateFormat simple = new SimpleDateFormat("dd MMM yyyy HH:mm:ss:SSS Z");
        Date result = new Date(ver);
        textView.setText("" + simple.format(result));
    }
}

코드 설명

핵심 로직은 다음과 같습니다.

  • getPackageManager()를 통해 PackageManager 인스턴스를 얻습니다.
  • getPackageName()으로 현재 앱의 패키지 이름을 가져옵니다.
  • pm.getPackageInfo(pkgName, 0)을 호출해 PackageInfo 객체를 조회하며, 패키지를 찾지 못할 경우를 대비해 예외 처리를 합니다.
  • pkgInfo.firstInstallTime 값(밀리초 단위 타임스탬프)을 Date 객체로 변환한 뒤, SimpleDateFormat으로 원하는 형식(일 월 년 시:분:초:밀리초 시간대)의 문자열로 포맷팅합니다.
  • 마지막으로 포맷팅된 날짜 문자열을 TextView에 설정하여 화면에 표시합니다.

앱 실행하기

이제 애플리케이션을 실행해 보겠습니다. 실제 안드로이드 스마트폰이 컴퓨터에 연결되어 있다고 가정합니다. Android Studio에서 프로젝트의 액티비티 파일 중 하나를 열고 상단 툴바의 Run(실행) 아이콘을 클릭하세요. 실행 옵션에서 연결된 실제 기기를 선택하면, 모바일 기기 화면에 아래와 같이 앱의 최초 설치 날짜가 표시됩니다.

Android 앱의 최초 설치 날짜를 확인하는 방법

이처럼 PackageInfo.firstInstallTime 값을 활용하면 별도의 데이터베이스나 저장소 없이도 시스템 차원에서 제공하는 정확한 최초 설치 시각을 확인할 수 있습니다. 참고로 마지막 업데이트 시간이 필요한 경우에는 같은 객체의 lastUpdateTime 필드를 사용하면 됩니다.