내부저장소
해당 앱에서만 접근 가능, 각 애플리케이션에서만 데이터를 읽고 쓸 수 있음, 보안을 위해서는 외부 어플이 접근할 수 없도록 내부 저장소에 저장하는 것이 안전
- 캐시(Cache)
임시 파일들이 저장. File Context.getCacheDir() 내부 저장소의 캐시 디렉터리 경로를 반환한다. 경로: /data/data/패키지 이름/cache
- 데이터베이스(Database)
데이터베이스 파일들이 저장된다. File Context.getDatabasePath(String name) 데이터베이스 파일의 경로를 반환. 인자로 데이터베이스 파일의 이름을 넘겨준다. 경로: /data/data/패키지 이름/databases
- 일반 파일
일반 파일이 저장되는 영역이다.
이 경로는 Context.openFileOutput(String, int)를 사용하여 생성되는 파일이 저장되는 경로와 동일하다. File Context.getFilesDir() 일반 파일들의 저장 경로를 반환한다. 경로: /data/data/패키지 이름/files
각 일반 파일들의 경로를 가져오기 File Context.getFileStreamPath(String name) 일반 파일이 저장된 공간에서 특정 이름을 가지는 파일의 경로를 반환한다. 인자로 확장자를 포함한 파일 이름을 넘겨준다. 경로: /data/data/패키지 이름/files/파일이름
외부저장소 (공용영역)
다양한 어플이 접근할 수 있는 영역이며 어플이 삭제되어도 이 경로에 저장된 데이터는 유지
- 최상위 경로
외부 저장소(SD카드)의 최상위 경로를 반환. static File Environment.getExternalStorageDirectory() 경로: /mnt/sdcard 또는 /storage/emulated/0 등 기종마다 다르다.
- 특정 데이터를 저장하는 영역
여러 애플리케이션에서 공용으로 사용할 수 있는 데이터들을 저장하며 데이터의 유형에 따라 별도의 디렉터리를 사용한다. 이 영역에 데이터를 저장하기 전에, 해당 디렉터리가 존재하는지 확인해야 한다. 존재하지 않으면 FileNotFoundException이 발생하기 때문에 File.mkdirs()를 사용하여 없을 경우 새 디렉터리를 생성해 준다. 다음의 함수를 이용해서 external 디렉터리가 존재하는지, 그리고 write가 가능한지 확인할 수 있다.
외부저장소 (고유영역)
애플리케이션 고유 영역 이 영역에 저장된 데이터는 애플리케이션이 삭제될 때 같이 삭제되며 다른 애플리케이션에서 해당 데이터에 접근하는 것이 가능
- 특정 데이터를 저장하는 영역
애플리케이션 고유 영역에도 공용 영역과 마찬가지로 각 데이터 유형별로 데이터를 저장하는 표준 디렉터리를 제공한다. File Context.getExternalFilesDir(String type) 인자로 디렉터리의 유형을 넘겨준다.
- 캐시 데이터를 저장하는 영역
애플리케이션에서 사용하는 임시 데이터를 외부 저장소에 저장. File Context.getExternalCacheDir() 경로: /mnt/sdcard/Android/data/패키지 이름/cache
'Android' 카테고리의 다른 글
[Android] setDisplayWindow() (0) | 2021.03.10 |
---|---|
[Android] Context (0) | 2021.03.09 |
[Android] ACC를 활용한 MVVM패턴 (0) | 2021.03.03 |
[Android] 비동기 처리(AsyncTask) (0) | 2021.03.02 |
[Android] WebView (0) | 2021.02.26 |