현재 캐시에 비트 맵 이미지를 저장하고 있습니다. 각 비트 맵의 크기는 최대 3MB까지 가능합니다. 나는 을 사용하고 있습니다. 그러나 androids 문서를 읽은 후에 다음을 발견했습니다 :셀프 모니터 캐시 디렉토리
참고 :이 파일들을 삭제하는 시스템에 의존해서는 안됩니다. 캐쉬 파일로 소비하는 공간의 양에 대해 항상 1MB와 같은 최대 값을 가져야하며, 해당 공간을 초과 할 때 파일을 프 i (prune)해야합니다. 그래서
내가 getExternalCacheDir()
를 사용하여 내 캐시를 전환 고려하고 있지만, 이것에 대해 ABIT 불확실입니다 :
플랫폼은 항상 자동으로 삭제하지 않을 수 있습니다 따라서 공유 스토리지에서 사용할 수있는 공간을 모니터링하고,하지 않습니다 이 파일들. 앱은 항상이 위치에서 사용되는 최대 공간을 관리해야합니다. 현재 플랫폼에서 삭제할 수있는 유일한 시간은 JELLY_BEAN_MR1 이상에서 실행되고 isExternalStorageEmulated (File)가 true를 반환하는 경우입니다.
파일을 무작위로 삭제하면 내 응용 프로그램의 실행에 영향을 줄 수 있기 때문에 캐시 디렉토리를 완전히 제어하고 싶습니다. 이미 일정 크기의 공간을 초과하지 않도록 캐시 크기의 상한선을 설정했습니다. 이제는 시스템이이 캐시에서 모니터링하고 삭제하는 것을 방지 할 수 있습니까?
감사합니다.
2 가지 질문 1) getFilesDir() 및 여기에 저장된 이미지를 사용하면 미디어 폴더로 사용자에게 표시 될 수 있습니까? (나는 그것을 원하지 않는다). 2)이 자산 폴더에 대한 자세한 정보를 제공 할 수 있습니까? – memoryManagers
1) getFilesDir에 저장된 파일은 사용자가 볼 수 없습니다 (루트 액세스 권한이없는 경우). 따라서 사용자는 쉽게 삭제할 수 없습니다. 그러나 파일을 사용자가 볼 수있게하려면 getExternalStorageDir()이 필요하며 사용자에게 표시되며 쉽게 삭제할 수 있습니다. – Ekalips
2) 애셋 폴더는 항상 앱을 유지할 파일을 저장하는 데 사용됩니다. 그들은 apk 파일로 이미 올 것이다. 사용자는 어쨌든 그것을 삭제할 수 없습니다. 하지만 하나의 단점 - 당신은 파일을 동적으로 배치 할 수 없습니다. 단지 apk 빌드 전에 – Ekalips