2011-09-09 3 views
6

내 응용 프로그램 내에 다운로드 한 콘텐츠를 저장할 위치와 관련하여 자주 묻는 질문입니다.Android - 다운로드 한 콘텐츠를 저장할 위치, 내부 저장소와 외부 저장소?

중앙 서버에서 콘텐츠를 다운로드하는 응용 프로그램이 있습니다. 이 콘텐츠는 프리미엄 콘텐츠이거나 최소한 게시자가 자유롭게 배포하지 않으려는 콘텐츠입니다. 전화가 뿌리가되지 않는 한 "외부"스토리지는 쉽게 액세스 할 수 있지만 "내부"스토리지는 보호된다는 점을 이해합니다.

응용 프로그램이 SDCARD에 설치되어있는 경우 (광산이 구성된 것처럼) 물리적으로 SDCARD에 "내부"저장소가 있습니까? 따라서 내 SDCARD를 설치 한 응용 프로그램이 내부 저장소에 100MB의 콘텐츠를 다운로드하면 실제로 SDCARD에 저장 되는가 아니면 장치의 실제 온보드 저장소에 저장 될까요?

응용 프로그램이 SDCARD에 설치되어 있고 다운로드 한 콘텐츠가있는 "내부"저장소가 SDCARD에있는 경우 물리적으로 열려있는 형식으로 저장되어 있거나 암호화되어 있습니까? 나는 SDCARD에 저장된 응용 프로그램이 암호화되어 있다는 것을 기억하는 것 같습니다. 이것은 "내부"스토리지에도 적용됩니까?

더 나은 방법이 있나요 (Context.getDir()와 같은 단일 디렉토리에 파일을 저장에 대한 삭제 문제는 디렉토리 시스템이 만들어지고 내부 저장소에 유지 될 수 있음을 의미한다)?

답변

4

는 실험의 무리를했고, 모토로라 드로이드 2에 안드로이드 2.2 다음과 같은 결론에 온 :

응용 프로그램이 설치되어
  • /다음이의 .asec 파일로 저장되어있는 SDCARD로 이동 SDCARD의 숨겨진 /.android_secure 디렉토리. 이것은 암호화되고 압축 된 파일입니다.
  • 응용 프로그램에서 "내부 저장소"에 데이터 파일을 만들면 SDCARD의 이 아닌이 저장됩니다.
  • 응용 프로그램의 설정/관리 응용 프로그램 세부 정보 대화 상자에는 "데이터"값이 있습니다. 이것은 응용 프로그램이 내부 저장소 (SDCARD가 아닌 내부 메모리)에서 사용하는 데이터의 양입니다.
  • 외부 저장소는/Android/data 디렉토리 아래의 SDACRD로 끝납니다.
  • 설정/관리 응용 프로그램 세부 정보 대화 상자에서 데이터를 지우는 것은 실제로 모든 것을 지우는 것입니다. 즉, 설치된 응용 프로그램이 해당 응용 프로그램을 처리 할 수있는 충분한 지식/"데이터 없음"상황.

내 앱은 다운로드 콘텐츠 앱입니다. 어떤이 모두 나에게 의미하는 것은 즉 :

  • 는 전화에 소비 할 저장소의 대부분이 기기의 내부 메모리에있을 것이라고 주어진 SDCARD에 내 작은 응용 프로그램을 저장하는 거의 진정한 가치가있다. 물론 응용 프로그램이 SDCARD에 설치되도록 항상 좋은 것을 제외하고는.
  • 사용자가 다운로드 한 콘텐츠를 설치 패키지가 복구 할 수 있어야합니다.
  • 내부 메모리에 unique installation id을 저장하는 개념은 사용자가 응용 프로그램의 데이터를 삭제하고 새 설치 ID가 계산 될 때까지 잘 작동합니다.따라서 장치에 다운로드 된 내용을 기억하려면 응용 프로그램이 처음부터 시작될 때마다 사용자가 생성/로그인하는 중앙 서버의 사용자 계정이 필요합니다.
관련 문제