1

질문은 어떻게 많은 양의 데이터 (수 백 메가 바이트 이상)를 저장하고 동시에 내 애플리케이션에서만 사용할 수 있도록 유지할 수 있습니까?Android에 대용량 데이터 볼륨을 비공개로 저장하는 방법은 무엇입니까?

내부 저장소가 제한되어 있고 그 크기는 장치 모델에 따라 다릅니다. 대용량 데이터 스토리지에 충분할 수 있습니까? 500Mb 이상을 내부 저장소에 저장할 수 있습니까?

대안으로 외부 저장소를 사용하는 것입니다. 아시다시피 외부 저장소는 응용 프로그램을 제한하지 않으며 전체 외부 저장소를 사용할 수 있습니다. 그러나 데이터는 사용자 및 기타 응용 프로그램에서 사용할 수있게되며 내 경우에는 받아 들일 수 없습니다. 내부 저장소에 저장하는 것처럼 외부 저장소에 저장하는 데이터를 비공개로 만드는 방법이 있습니까?

답변

1

내부 저장 내가 발견으로 제한이 있으며 그 크기 만 안드로이드 1.x에서/2.X에

장치 모델

에 따라 달라집니다. 광대 한 개의 Android 3.0 이상의 장치에서 내부 및 외부 저장소는 동일한 파티션에 있으므로 동일한 공간을 사용합니다.

내부 저장소에 500Mb 이상을 저장할 수 있습니까?

Android 3.0 이상, 아마. 사용자는 무료로 500MB를 사용할 수는 없지만 내부 저장 용량의 제한 사항이 아니라 일반적으로 '저장 용량'의 제한 사항입니다.

내부 저장소에 저장된 것처럼 외부 저장소에 저장되는 데이터를 비공개로 만들 수있는 방법이 있습니까?

아니요. 예를 들어, 사용자 또는 다른 응용 프로그램이 해당 파일을 삭제하는 것을 막을 수는 없습니다. Facebook의 Conceal 라이브러리를 사용하여 생성 된 암호화 키를 내부 저장소에 저장 한 상태에서 외부 저장소의 파일을 암호화하여 사용자 또는 다른 응용 프로그램이 파일의 내용을 변경하지 못하게 할 수 있습니다 (단순히 손상시키는 것만 제외).그러나 Android 1.x/2.x를 계속 지원하는 경우에만 해당됩니다. Android 3.0 이상에서는 내부 저장 용량 만 사용하세요.

0

두 가지 가능한 접근법을 사용하면 실제로 제약받을 수 있습니다.

  • 내부 저장 용량을 사용하지만 사용 가능한 메모리를 확인하고 기기가 처리 할 수없는 경우 사용자가 기기에서 앱을 실행할 수 없음을 알리는 문제입니다.
  • 외부 메모리를 사용하고 멋진 암호화를 구축하십시오. 따라서 누군가 다른 사람이 파일을 가져 오더라도 적절한 암호 해독 메커니즘 없이는 실제 데이터가 의미가 없습니다.

선택 옵션은 제품 결정입니다.

0

getExternalFilesDir()을 사용하면 미디어 저장소 콘텐츠 제공 업체가 외부 저장소에서 앱 별 파일을 읽지 못하도록 제한 할 수 있습니다. 하지만 난 같은 허가를 가진 다른 응용 프로그램이 READ_EXTERNAL_STORAGE 파일에 액세스 할 수 있다고 생각합니다. 유일한 방법은 내부 메모리를 사용하는 것입니다.

저장하려는 파일 형식이 확실하지 않습니다. 파일 수가 적 으면 데이터베이스 사용에 대한 생각을 할 수 있지만 ACID 원칙을 위반합니다. 또는 콘텐츠 공급자를 사용하여 제한에 대해 생각할 수도 있습니다.