读写数据至缓存文件的Android库:CacheUtilsLibrary

jopen 8年前

一个简单的Android工具类库用于将任意类型的数据写进至缓存文件中,之后读取它们。
使用Gson来序列化和反序列化这些数据。

Gradle

compile 'com.lifeofcoding:cacheutilslibrary:1.0.0@aar'

如果出现如下错误:

duplication file during packaging of APK ...  Path in archive: META-INF/LICENSE.txt  ...

Please add such code in your android entry of your build.gradle file:
packagingOptions {      exclude 'META-INF/DEPENDENCIES'      exclude 'META-INF/NOTICE'      exclude 'META-INF/LICENSE'      exclude 'META-INF/LICENSE.txt'      exclude 'META-INF/NOTICE.txt'      exclude 'META-INF/ASL2.0'      exclude 'META-INF/MANIFEST.MF'  }

Configuration

You need to configureCacheUtilsLibraryin yourApplicationclass.

public class MyApplication extends Application {        @Override      public void onCreate() {          super.onCreate();          // configure CacheUtilsLibrary          CacheUtils.configureCache(this);      }  }

Don't forget to declare theMyApplicationclass in yourAndroidManifest.xmlfile.

Usage

All sample code can be found in the MainActivity file.

CacheStringFile
// write  CacheUtils.writeFile(CACHE_FILE_STRING, CACHE_FILE_CONTENT_STRING);    // read  String fileContent = CacheUtils.readFile(CACHE_FILE_STRING);

CacheMap<String, T>File
// write  CacheUtils.writeDataMapFile(CACHE_FILE_MAP, getCacheFileContentMap());    // read  Map<String, Object> mapData = CacheUtils.readDataMapFile(CACHE_FILE_MAP);    // get mapData  private static Map<String, Object> getCacheFileContentMap() {      Map<String, Object> mapData = new HashMap<>();      mapData.put("firstItem", "item0");      mapData.put("secondItem", 1);      mapData.put("thirdItem", false);      return mapData;  }

CacheList<Map<String, T>File
// write  CacheUtils.writeDataMapsFile(CACHE_FILE_LIST_MAP, getCacheFileContentListMap());    // read  List<Map<String, Object>> listMapData = CacheUtils.readDataMapsFile(CACHE_FILE_LIST_MAP);    // get listMapData  private static List<Map<String, Object>> getCacheFileContentListMap() {      List<Map<String, Object>> listMapData = new ArrayList<Map<String, Object>>();        for (int i = 0; i < 4; i++) {          Map<String, Object> item = new HashMap<>();          item.put("firstItemAt" + i, "item0At" + i);          item.put("secondItemAt" + i, 1 + i);          item.put("thirdItemAt" + i, i % 2 == 0);          listMapData.add(item);      }      return listMapData;  }

CacheObjectFile
// write  CacheUtils.writeObjectFile(CACHE_FILE_OBJECT, MyClass.SAMPLE_MYCLASS_1);    // read  MyClass myClassSample = CacheUtils.readObjectFile(CACHE_FILE_OBJECT, new TypeToken<MyClass>(){}.getType());

You can seeMyClassandMyClass.SAMPLE_MYCLASS_1here and here.

CacheList<Object>File
// write  CacheUtils.writeObjectFile(CACHE_FILE_LIST_OBJECT, getCacheFileContentListObject());    // read  List<MyClass> myClassList = CacheUtils.readObjectFile(CACHE_FILE_LIST_OBJECT, new TypeToken<List<MyClass>>(){}.getType());    // get List<MyClass> data  private static List<MyClass> getCacheFileContentListObject() {      List<MyClass> listObject = new ArrayList<>();      listObject.add(MyClass.SAMPLE_MYCLASS_1);      listObject.add(MyClass.SAMPLE_MYCLASS_2);      listObject.add(MyClass.SAMPLE_MYCLASS_3);      return listObject;  }

项目主页:http://www.open-open.com/lib/view/home/1442134426888