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

안드로이드 기기의 사용 가능한 저장 공간 확인 방법 (Java 코드 예제)

안드로이드 기기의 사용 가능한 저장 공간 확인하기

이 튜토리얼에서는 StatFs 클래스를 활용해 Android 기기에서 사용 가능한 저장 공간을 확인하는 방법을 단계별로 살펴봅니다. 외부 저장소의 전체 용량과 내부 데이터 디렉터리의 가용 용량을 계산해 화면에 출력하는 간단한 예제입니다.

1단계 — 새 프로젝트 생성

Android Studio를 실행한 뒤 File → New Project로 이동하고, 프로젝트 생성에 필요한 정보를 모두 입력하여 새 프로젝트를 만듭니다.

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

아래 코드를 activity_main.xml 파일에 추가합니다. 화면 중앙에 TextView 하나를 배치한 간단한 레이아웃입니다.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:orientation="vertical"
    android:gravity="center"
    android:padding="8dp"
    tools:context=".MainActivity">
    <TextView
        android:id="@+id/textView"
        android:textSize="24sp"
        android:textStyle="bold"
        android:textAlignment="center"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
</LinearLayout>

3단계 — MainActivity 작성 (src/MainActivity.java)

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

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.os.Environment;
import android.os.StatFs;
import android.text.format.Formatter;
import android.util.Log;
import android.widget.TextView;
import java.io.File;

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);

        // 외부 저장소의 전체 용량 계산
        StatFs stat = new StatFs(Environment.getExternalStorageDirectory().getPath());
        long bytesAvailable = (long) stat.getBlockSize() * (long) stat.getBlockCount();
        long megAvailable = bytesAvailable / 1048576;
        Log.e("", "Available MB : " + megAvailable);

        // 내부 데이터 디렉터리의 사용 가능한 용량 계산
        File path = Environment.getDataDirectory();
        StatFs stat2 = new StatFs(path.getPath());
        long blockSize = stat2.getBlockSize();
        long availableBlocks = stat2.getAvailableBlocks();
        String format = Formatter.formatFileSize(this, availableBlocks * blockSize);
        textView.setText(String.format("Available Memory: %s", format));
    }
}

주요 코드 설명

  • StatFs: 파일 시스템의 블록 크기와 블록 수를 조회해 저장 공간을 계산하는 클래스입니다.
  • getBlockSize() × getBlockCount(): 두 값을 곱해 전체 저장 용량(바이트)을 구합니다.
  • getAvailableBlocks(): 현재 사용 가능한 블록 수를 반환합니다.
  • Formatter.formatFileSize(): 바이트 값을 MB, GB처럼 사람이 읽기 쉬운 단위로 자동 변환해 줍니다.

4단계 — 매니페스트 설정 (androidManifest.xml)

아래 코드를 AndroidManifest.xml 파일에 추가합니다.

<?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 기기를 컴퓨터에 연결한 상태에서 앱을 실행해 보겠습니다. Android Studio에서 프로젝트의 액티비티 파일 중 하나를 연 뒤 툴바의 Run 안드로이드 기기의 사용 가능한 저장 공간 확인 방법 (Java 코드 예제) 아이콘을 클릭하세요. 실행 대상으로 연결된 모바일 기기를 선택하면, 기기 화면에 아래와 같이 사용 가능한 메모리 용량이 표시됩니다.

안드로이드 기기의 사용 가능한 저장 공간 확인 방법 (Java 코드 예제)