2012-05-31 21 views
9

Poszukuje prostego open-source'owego buforowania bez kopiowania dla systemu Android (SDK 7+).Pamięć podręczna obiektów Androida

Służy do przechowywania asynchronicznie Bitmap s (więc nie potrzebuję tej funkcjonalności do uwzględnienia w klasie pamięci podręcznej).

Używałem słabej listy do tego celu, to było oczywiście złe rozwiązanie, z pamięcią podręczną Guava, która jest trochę lepsza, ale nadal nie jest w porządku.

Zaleca się, aby pamięć podręczna była w stanie przechowywać wszystkie możliwe do serializacji Object, a nie tylko Bitmap oraz że mógłbym łatwo oczyścić obiekty z określonego znacznika używanego podczas dodawania obiektu do pamięci podręcznej.

Najlepszą opcją byłoby pobranie pamięci podręcznej systemu plików, takiej jak owijanie bazy danych sqlite. Byłoby wspaniale, gdyby cache byłoby zdaje Settings >Manage Application > Clear Cache

+0

i don; t myśleć istnieje dowolny system cache dla Androida. – kosa

Odpowiedz

8

Sugerowany wyżej prosty LruCache to pamięć podręczna w pamięci. Z twojego pytania wynika, że ​​szukasz rozwiązania pamięci podręcznej dysku.

Przeczytaj Disk Cache dokumentu treningowego dla androidów Caching Bitmaps.

Następnie spojrzeć na realizację DiskLruCache omawianym na wątku: Using DiskLruCache in android 4.0 does not provide for openCache method

Można chwycić źródło DiskLruCache na GitHub.

+2

Po drugie. Jake Wharton to solidny programista. – shkschneider

1

Polecam skorzystanie z szeroko stosowany i znany wcześniej jako droidów-fu z refactored i naprawdę potężne lib nazwie zapłon. Bibliotekę zapłonu obsługuje głównie Matthias Käppler, wiodący twórca urządzeń mobilnych Qype. Biblioteka ma strukturę pamięci podręcznej i widżet RemoteImage (i wiele innych użytecznych klas). Ponadto Maven jest gotowy, więc łatwo jest dodać zależność. Spójrz na pamięć podręczną javadoc: http://kaeppler.github.com/ignition-docs/ignition-support/apidocs/

4

Co powiecie na android.util.LruCache? Jeśli potrzebujesz obsługi starszych platform, po prostu skopiuj go do swojego projektu. EDYCJA: faktycznie znajduje się w bibliotece compat/support.

+0

Pamięć podręczna Guava wydaje się być bardziej elastyczna i wolałbym teraz używać nie środowiska wykonawczego, ale pamięci podręcznej systemu plików, dzięki za podpowiedź. –

+0

http://developer.android.com/training/displaying-bitmaps/cache-bitmap.html Artykuł na temat Androida omawiający opcje buforowania obrazu. – krishnakumarp

3

ICSDiskLruCache.java. To jest port DiskLruCache dostępny w ICS i nowszych wersjach Androida, open-sourced przez Google jako część aplikacji IO 2012 Android, więc działa z wersjami aż do (przynajmniej) poziomu interfejsu API 7.

Znajdź źródło: http://code.google.com/p/iosched/source/browse/android/src/com/google/android/apps/iosched/util/ICSDiskLruCache.java

+4

Link jest uszkodzony. – Matthew

+0

Plik można znaleźć na: https://github.com/google/iosched/blob/f4fd7504d43b25a75cc23b58d6f844f3553b48c3/android/src/com/google/android/apps/iosched/util/ICSDiskLruCache.java –

Powiązane problemy