마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

내장메모리와 외장메모리의 차이점?

0 추천

지금까지 안드로이드의 내장메모리와 외장메모리라 하면 내장메모리는 디바이스 내부에 존재하는 저장 메모리이고 외장메모리는 SD카드를 삽입하면 그 SD카드가 외장메모리가 된다고 생각했습니다.

 

그런데 개발을 하다 보니

외장메모리(SD카드)에서 파일을 검색할 일이 있어 Environment.getExternalStorageDirectory() 를 기준으로 파일 검색을 하다가 SD카드를 빼면 어떻게 될까 하고 SD카드를 뺀후 위의 코드를 그대로 실행 시켰는데 에러없이 작업이 되더라구요..

이때부터 제가 외장메모리란걸 잘못알고 있나 라는 생각이 들면서 내장메모리와 외장메모리의 기준이 혼동이 되더라구요.

 

위의 경우를 봤을때는 외장메모리라 하면 SD카드를 포함한 기가에 기본적으로 탑제된 저장영역(저는 이게 내장메모리라고 생각했는데요)을 포함한것 같기도하고... 아닌것 같기도 하고...

 

혹시 이 두 메모리의 차이점이 어떤것인지 알려주실분 계신가요?

그리고 내장메모리(갤럭시노트 2같은 경우 내부 메모리 16기가)를 검색할때는 Environment.getDataDirectory()를 이용하는게 맞는건가요? 

궁금합니다.

Style_jG (220 포인트) 님이 2013년 6월 3일 질문

1개의 답변

0 추천

내장 메모리는 안드로이드 OS와 사용자 어플(어플+데이터)이 차지하는 기본 공간들을 얘기하는 것 같습니다.

따라서 외장 메모리는 그외의 영역을 얘기하구요.

가령 갤럭시S3 같은 넘은 SD카드를 넣지 않아도 내장 메모리를 제외한 영역이 충분하므로 나머지 영역을 모두 외장 메모리로 사용합니다. 여기에 SD카드를 꼽으면 외장메모리가 하나 더 생긴다고 이해하시면 될거 같네요..

예전 초창기 저가 폰(옵티머스 원 같은)에서는 SD카드를 꼽지 않으면 아얘 외장메모리가 없다고 나오는 폰들이 종종 있었습니다.

참고로 SD카드를 꼽으면 Environment.getExternalStorageDirectory()로는 SD카드가 링크된 Directory를 알 수 없으며 이름도 각 폰 별로 제각각입니다. 여기부터는 표준이 아닌 제조사 맘인 것 같습니다. --;

백운도사 (800 포인트) 님이 2013년 6월 3일 답변
백운도사님의 답변덕분에 아리까리했던부분이 많이 해소가 되었씁니다. 답변 감사합니다`^^
...