2013-04-02 3 views
1

하나의 비디오를 메모리 캐시에 저장하려고하는데, 비디오가 완료되면 캐시에서 삭제됩니다. 재생 중에는 해당 비디오 파일을 캐시에서 삭제할 수 없습니다. 당신이 시도 될 것으로 보인다 어떤 코멘트에서안드로이드의 메모리 캐시

+0

당신이 뭘 하려는지? 비트 앰프 캐싱? – Raghunandan

+0

질문 번호 2에 의해,보십시오 : 더 나은 당신의 질문을 설명해야한다 : http://stackoverflow.com/questions/10977288/clear-application-cache-on-exit-in-android – Castiblanco

+0

. 무엇을 캐싱 하시겠습니까? 비트 맵? 파일? 업무? 아들?그리고 어디에서 캐시하고 싶습니까? RAM 메모리에 있거나 영구적으로 있습니까? – Budius

답변

9

모든 안드로이드 응용 프로그램이 정상적인 장치에서 자신의 제한된 메모리

// Get max available VM memory, exceeding this amount will throw an 
// OutOfMemory exception. 
final int maxMemory = (int) (Runtime.getRuntime().maxMemory()/1024); 

// Use 1/8th of the available memory for this memory cache. 
final int cacheSize = maxMemory/8; 

을 가지고 약 4 메가 ​​바이트 최소됩니다 (32/: 여기

그것을 할 방법을 보여주는 StackOverflow의 게시물입니다 8) 응용 프로그램 당 32MB가 할당됩니다.

해상도가 800x480 인 장치의 이미지로 채워진 전체 화면 격자보기는 약 1.5MB (800 * 480 * 4 바이트)를 사용합니다. 800 * 480 * 4 = 실제 이미지 크기

이렇게하면 메모리에 약 2.5 페이지의 이미지가 캐시됩니다. 그리드보기에서만 2.5 개의 이미지가 캐시에 저장됩니다 ... 위아래로 스크롤 할 때 2.5 이미지로, 그것은 캐시에서 이미지를 가져옵니다 ... 사용자가 3 번째 또는 4 번째 이미지로 이동할 때 .. 처음 두 이미지 캐시가 지워지고 캐시에 새 다운로드 이미지가 생깁니다.

캐시 메커니즘은 주로 눈금보기 목록에서 이미지를 부드럽게 스크롤하는 데 사용됩니다.

메커니즘 : 목록 또는 그리드보기에서 첫 번째 이미지는 네트워크에서 다운로드되어 사용자가 아래로 스크롤 할 때 캐시에 저장됩니다. 사용자가 위로 스크롤하면 사용 가능한 경우 이미지가 캐시에서 가져옵니다.

디스크 캐시 코드는 안드로이드 운영 체제에서 가져 (사용 내부 응용 프로그램 메모리)

1.LRU 캐시 2.Disk 캐시 (사용 sdcard에 메모리) :

안드로이드는 두기구의 종류를 사용합니다. 제한된 양의 데이터를 sdcard에 저장합니다. 삽입 된 데이터가 초과되면 가장 최근에 사용 된 파일이 삭제되고 새 파일이 저장됩니다.

예 : Facebook Android는 디스크 캐시를 사용합니다.

응용 프로그램 수준에서 캐시 메모리가 지워지거나 설정> 응용 프로그램 관리> 응용 프로그램 이름에서 캐시 메모리가 지워집니다.

모든 응용 프로그램이 자신의 캐시 메모리를 가지고, 다른 응용 프로그램의 캐시 메모리를 액세스 할 수없는 하나의 응용 프로그램 ... 자세한 내용을 보려면 다음 사이트를 방문

:

http://developer.android.com/training/displaying-bitmaps/cache-bitmap.html#disk-cache