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

안드로이드 시스템 버전 확인 방법 – 코드로 OS 버전, 코드명, API 레벨 조회하기

안드로이드 앱을 개발하다 보면 현재 기기의 운영체제(OS) 버전을 확인해야 하는 경우가 자주 있습니다. 예를 들어 특정 API 레벨 이상에서만 동작하는 기능을 분기 처리하거나, 버전별로 다른 UI를 제공해야 할 때가 그렇습니다. 이 예제에서는 Build.VERSION 클래스를 활용해 안드로이드 기기의 시스템 버전, 코드명(코드 네임), API 레벨을 화면에 표시하는 방법을 단계별로 살펴보겠습니다.

핵심 개념: Build.VERSION 클래스

안드로이드는 android.os.Build 클래스를 통해 기기와 시스템 관련 정보를 제공합니다. 이 중 자주 사용되는 필드는 다음과 같습니다.

Build.VERSION.RELEASE – 사용자에게 표시되는 버전 문자열입니다. 예를 들어 "9", "13" 같은 값이 반환됩니다.
Build.VERSION.SDK_INT – 해당 버전의 API 레벨을 정수(int) 형태로 반환합니다. 버전 분기 처리 시 가장 많이 사용됩니다.

구현 단계

1단계: 새 프로젝트 만들기

Android Studio를 실행한 뒤 File ⇒ New Project 메뉴로 이동하여 새 프로젝트를 생성하고, 필요한 모든 정보를 입력합니다. Empty Activity 템플릿을 선택하면 이 예제를 따라 하기에 가장 편리합니다.

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

버전 정보를 출력할 TextView 하나를 포함한 간단한 레이아웃을 구성합니다. 아래 코드를 activity_main.xml에 추가하세요.

<?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:id="@+id/textView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:textAlignment="center"
        android:textSize="24sp"
        android:textStyle="bold" />
</RelativeLayout>

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

이제 핵심 로직을 MainActivity.java에 작성합니다. RELEASE 값을 파싱해 정식 코드명(Jelly Bean, Kit Kat, Lollipop 등)을 판별하고, 버전과 API 레벨을 함께 화면에 출력합니다.

import androidx.appcompat.app.AppCompatActivity;
import android.os.Build;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
    TextView textView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView = findViewById(R.id.textView);
        double release = Double.parseDouble(Build.VERSION.RELEASE.replaceAll("(\\d+[.]\\d+)(.*)", "$1"));
        String codeName = "Unsupported";
        if (release >= 4.1 && release < 4.4) codeName = "Jelly Bean";
        else if (release < 5) codeName = "Kit Kat";
        else if (release < 6) codeName = "Lollipop";
        else if (release < 7) codeName = "Marshmallow";
        else if (release < 8) codeName = "Nougat";
        else if (release < 9) codeName = "Oreo";
        textView.setText(codeName + " Version " + release + ", API LEVEL: " + Build.VERSION.SDK_INT);
    }
}

코드 설명: 정규식 replaceAll을 사용해 RELEASE 문자열에서 주 버전과 부 버전(예: "8.0")만 추출한 뒤 double 타입으로 변환합니다. 이후 조건문으로 버전 범위를 비교해 해당하는 코드명을 지정하고, 최종적으로 코드명·버전·API 레벨을 하나의 문자열로 조합해 TextView에 설정합니다.

4단계: 매니페스트 설정 (AndroidManifest.xml)

매니페스트 파일에는 별도의 권한 선언이 필요하지 않습니다. 아래처럼 MainActivity가 런처(LAUNCHER) 액티비티로 등록되어 있는지만 확인하면 됩니다.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android" package="app.com.sample">
    <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(실행) 아이콘을 클릭하고, 목록에서 연결된 모바일 기기를 선택하세요. 그러면 앱이 기기에 설치·실행되며, 아래 이미지와 같이 기기의 시스템 버전 정보가 화면에 표시됩니다.

안드로이드 시스템 버전 확인 방법 – 코드로 OS 버전, 코드명, API 레벨 조회하기

마무리 및 참고 사항

이처럼 Build.VERSION 클래스만 활용하면 별도의 권한 없이도 기기의 OS 버전 정보를 손쉽게 얻을 수 있습니다. 실무에서는 위 예제처럼 코드명을 직접 비교하기보다 SDK_INT 값과 Build.VERSION_CODES 상수(예: Build.VERSION_CODES.O)를 비교하는 방식이 더 권장됩니다. 이 방법은 가독성이 좋고, 새 버전이 출시되어도 코드 수정 없이 안정적으로 동작하기 때문입니다.