2012-04-13 7 views
4

Meine Frage ist, dass .. in diesem ImageDownloader sie Cache als harte und weiche Cache implementieren .. und für harte cache..hereMaximale Größe von Hard-Cache eines ImageDownloader

// Hard cache, with a fixed maximum capacity and a life duration 
private final HashMap<String, Bitmap> sHardBitmapCache = 
    new LinkedHashMap<String, Bitmap>(HARD_CACHE_CAPACITY/2, 0.75f, true) { 
    @Override 
    protected boolean removeEldestEntry(LinkedHashMap.Entry<String, Bitmap> eldest) { 
     if (size() > HARD_CACHE_CAPACITY) { 
      // Entries push-out of hard reference cache are transferred to soft reference cache 
      sSoftBitmapCache.put(eldest.getKey(), new SoftReference<Bitmap>(eldest.getValue())); 
      return true; 
     } else 
      return false; 
    } 
}; 

sie ein Maximum setzen capacity value for hard cache .. was passiert nun, wenn ich einen großen Wert als maximale Kapazität wähle ..? Ich meine .. wird es die anderen Anwendungen ausführen, während meine Anwendung großen Speicher belegt. Andere Anwendungen werden ausgeführt in einer völlig getrennten Instanz von Dalvik. Sie würden keine Art von Speicherdruck in der Anwendung verursachen, die in diesem läuft .. das ist, was ich kennen lernte .. wenn das richtig ist .. dann kann ich meinen harten Cache irgendeiner Größe erklären? Ich weiß nicht viel darüber Cache .. Korrigieren Sie mich, wenn ich falsch liege.

Antwort

0

Ihr Gerät verfügt über eine feste Speicherkapazität, die von allen Anwendungen gemeinsam genutzt wird. Um dem Vordergrundprozess den Speicher zu geben, der benötigt wird, wird Android zwischengespeicherte Hintergrundprozesse beenden. Anwendungen mit einem hohen Speicherbedarf werden mit Multitasking langsamer ausgeführt, da die anderen Apps neu erstellt werden müssen.

Symmetrisch werden Anwendungen mit einem hohen Speicherbedarf auch früher beendet als Anwendungen, die nicht so viel Arbeitsspeicher benötigen. Schließlich wird durch das Löschen dieser Apps mehr Speicher freigegeben.

Sie sollten die kleinste Cache-Größe wählen, die eine gute Leistung liefert. Alles größer und Sie verschwenden Speicher und verlangsamen das Gerät.

+0

Thnq .. [können Sie sich diese Frage bitte ansehen ..] (http://stackoverflow.com/questions/10135261/possible-bug-in-android-imagedownloader-class-shardbitmapcache-not-static- wann) – 5hssba