안드로이드는 리눅스 기반의 운영 체제로, 파일 시스템 구조는 리눅스와 유사합니다. 안드로이드 앱은 내부 저장 공간과 외부 저장 공간에 파일을 저장할 수 있습니다. 하지만 안드로이드 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
권한을 요청하여 파일에 안전하게 접근해야 합니다.
참고 자료
- Android Developers - Manage all files on a storage device
위의 내용은 안드로이드 파일 시스템과 파일 외부 검사 방법에 대한 기본적인 내용을 다루고 있습니다. 안드로이드 앱 개발 시 파일 시스템에 대해 이해하는 것은 매우 중요합니다.