Development record of developer who study hard everyday.

, , , , , , , , ,

안드로이드 10 이상 저장소 개념 총 정리


안드로이드 10 이상 저장소 개념 총 정리

회사에서 프로젝트를 하나 수정하게 되었다.

BLE로 데이터를 측정 후에 저장하고 이메일로 보내고 측정 데이터를 핸드폰으로 옮겨서 import해서 볼 수 있는 앱이다.

근데 앱이 워낙 오래되어서 측정 데이터를 활용하는 모든 기능에 수정이 필요했다. ㅜㅜ

평소에도 파일 입출력을 많이 다뤄보지 않아서 걱정이 많았는데 이번에 빡세게 공부했다.

우선, 안드로이드10(Q)이전의 저장소 개념부터 알아보자.

1. 안드로이드 10 이전의 저장소

안드로이드에서는 내부저장소와 외부저장소가 있다.

내부저장소: 말 그대로 기기 내부의 저장소이다.

외부저장소: 단어 말 뜻 자체만 보면 기기 외부의 저장소일 것 같지만!! 그렇지않다.

SD카드 같은 기기 외부의 저장소일 수도 있고 내부저장소가 아닌 기기 내부에 있는 저장소를 외부저장소라고도 한다.

헷갈린다면 그냥 내부저장소가 아닌 것은 다 외부저장소라고 생각해도 큰 문제 없다.

그렇다면 안드로이드 스튜디오에서 외부저장소를 살펴보자

/mnt/sdcard

/sdcard

/storage/self/primary

/mnt/sdcard, /sdcard, /storage/self/primary 3가지의 경로를 캡쳐화면으로 확인했다.

전부 다 같은 공간을 나타내고 빌트인 외부저장소에 해당한다.

그리고 캡쳐화면에 /Pictures, /DCIM, /Movies 처럼 우리가 흔히 접하는 폴더들이 보인다.

이런 폴더들은 안드로이드에서 제공하는 빌트인 외부저장소의 공유공간에 해당하는 곳이다.

그리고 외부저장소에도 내부저장소 처럼 앱 개별 공간이 별도로 존재한다.

(내부저장소보다 외부저장소가 볼륨이 크기 때문에 용량이 큰 컨텐츠는 외부저장소에 따로 보관할 수 있게 만들었다고 한다.)

이번엔 내부저장소를 살펴보자

/data/data
/data/data 경로로 들어가보면 내부저장소가 나온다.

안드로이드 10 이전 저장소
안드로이드 10 이전의 저장소

안드로이드 10 이전의 저장소 개념을 한눈에 정리한 그림이다.
보통 이것을 Legacy Storage라고 부른다.

2. 안드로이드 10 이상의 저장소 

안드로이드 10부터는 Scoped Storage라는 개념이 생겼습니다.

Scoped Storage

Scoped Storage에서는 내부저장소에 앱별 저장소를 제공합니다.

다른 앱이 액세스해서는 안되는 민감한 정보를 여기에 저장하면 됩니다.

안드로이드 10 이전과 동일합니다.

외부저장소가 조금 달라졌는데요.


외부저장소 구조의 변화

안드로이드 10 이전에는 EXTERNAL_STORAGE 권한으로 다른 앱의 개별공간을 접근했지만 이제는 접근 자체가 불가능합니다.

그리고 개별 앱 공간을 이용할 때는 어떠한 권한도 필요가 없습니다.

오늘은 여기까지 정리하고 다음 글에서는 각 저장소의 공간에 어떻게 접근하는지에 대해서 정리해보도록 하겠습니다.


Share:

댓글 없음:

댓글 쓰기