[android] 안드로이드 파일 시스템과 파일 외부 검사 방법

안드로이드는 리눅스 기반의 운영 체제로, 파일 시스템 구조는 리눅스와 유사합니다. 안드로이드 앱은 내부 저장 공간과 외부 저장 공간에 파일을 저장할 수 있습니다. 하지만 안드로이드 11부터는 외부 저장 공간에 파일에 접근할 때 새로운 권한이 요구됩니다.

안드로이드 파일 시스템

내부 저장 공간

안드로이드 앱에서는 getFilesDir() 메서드를 사용하여 내부 저장 공간에 파일을 생성하고 액세스할 수 있습니다. 이 공간은 앱별로 지정되며, 다른 앱에서 접근할 수 없습니다.

File file = new File(context.getFilesDir(), "myfile.txt");

외부 저장 공간

외부 저장 공간에 파일을 저장하려면 외부 저장소 권한을 필요로 합니다. WRITE_EXTERNAL_STORAGE 권한은 안드로이드 10까지는 필수적이었으나, 안드로이드 11부터는 MANAGE_EXTERNAL_STORAGE 권한이 추가되었습니다.

File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS), "myfile.txt");

파일 외부 검사 방법

안드로이드 10 미만

앱이 안드로이드 10 미만을 타깃으로 하는 경우, 간단하게 WRITE_EXTERNAL_STORAGE 권한을 매니페스트 파일에 추가하여 외부 저장 공간에 파일을 작성하고 읽을 수 있습니다.

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

안드로이드 10 이상

안드로이드 10 이상에서는 MANAGE_EXTERNAL_STORAGE 권한이 추가되어 외부 저장 공간의 파일을 조작하기 위해서는 사용자 권한을 직접 요청해야 합니다. 안드로이드 11 이상에서는 권한이 추가로 필요합니다.

외부 저장 공간에 파일을 작성할 때, MediaStore를 사용하여 다른 앱이 파일에 액세스할 수 있도록 제어해야 합니다.

결론

안드로이드 파일 시스템은 내부 저장 공간과 외부 저장 공간으로 나뉘며, 각각에 파일을 저장하고 액세스하기 위해서는 권한 관리가 필요합니다. 안드로이드 10 이상에서는 MANAGE_EXTERNAL_STORAGE 권한을 요청하여 파일에 안전하게 접근해야 합니다.

참고 자료


위의 내용은 안드로이드 파일 시스템과 파일 외부 검사 방법에 대한 기본적인 내용을 다루고 있습니다. 안드로이드 앱 개발 시 파일 시스템에 대해 이해하는 것은 매우 중요합니다.