Skip to content

Commit 00fb192

Browse files
committed
README update
1 parent c494f87 commit 00fb192

File tree

1 file changed

+108
-7
lines changed

1 file changed

+108
-7
lines changed

README.md

Lines changed: 108 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
## cacheKit
2-
一个简单易用的cache 库,此版本的cache 支持多实例模式.
2+
一个简单易用的cache 库,此版本的cache 支持`多实例模式``本地缓存过期模式`.
33

44
### 特征
55
- 简单
66
- 实用
77
- 方便
88
- 多实例
9+
- 缓存过期
910

1011
#### 使用Gradle构建时添加一下依赖即可:
1112
```
12-
implementation 'com.dvsnier:cache:0.1.0'
13+
implementation 'com.dvsnier:cache:0.2.0'
1314
```
1415

1516
#### 使用前配置
@@ -32,12 +33,12 @@ implementation 'com.dvsnier:cache:0.1.0'
3233
@Override
3334
public void onTerminate() {
3435
super.onTerminate();
35-
CacheManager.getInstance().close();
36+
CacheManager.getInstance().onDestroy();
3637
}
3738
3839
```
3940
#### 扩展
40-
##### 第一种
41+
##### 第一种,默认配置
4142
```
4243
// 在application的onCreate中初始化
4344
@Override
@@ -48,7 +49,7 @@ implementation 'com.dvsnier:cache:0.1.0'
4849
...
4950
}
5051
```
51-
##### 第二种
52+
##### 第二种,自定义配置
5253
```
5354
// 在application的onCreate中初始化
5455
@Override
@@ -74,7 +75,7 @@ implementation 'com.dvsnier:cache:0.1.0'
7475
}
7576
```
7677

77-
#### 第三种
78+
#### 第三种,多实例配置
7879
```
7980
// 在application的onCreate中初始化
8081
@Override
@@ -106,6 +107,47 @@ implementation 'com.dvsnier:cache:0.1.0'
106107
return versionCode;
107108
}
108109
```
110+
#### 第四种,本地缓存过期模式配置
111+
```
112+
// 在application的onCreate中初始化
113+
@Override
114+
public void onCreate() {
115+
super.onCreate();
116+
// 自定义磁盘1G 缓存空间
117+
int cacheMaxSizeOfDisk = Double.valueOf(CacheStorage.INSTANCE().getFormatted(1, AbstractStorage.SCU.G)).intValue(); // 1G < Integer.MAX_VALUE ~ 2G
118+
// the configure cache alias, here in the downloads directory
119+
CacheManager.getInstance().initialize(IType.TYPE_DOWNLOADS, new ICacheConfig.Builder(this)
120+
.setContext(this)
121+
.setAppVersion(getAppVersionCode(this))
122+
.setCacheMaxSizeOfDisk(cacheMaxSizeOfDisk)
123+
.setUniqueName(IType.TYPE_DOWNLOADS)
124+
.setCacheGenre(new CacheGenre.SCHEDULED()) // the Scheduled Mode, otherwise is default
125+
// .setDebug(true)
126+
// .setLevel(Level.VERBOSE)
127+
.create());
128+
129+
CacheManager.getInstance().setOnTransactionSessionChangeListener(IType.TYPE_DOWNLOADS, new OnTransactionSessionChangeListener() {
130+
@Override
131+
public void onTransactionSessionChange(@NonNull String alias, @NonNull String key, @Nullable Object value) {
132+
Log.i(Debug.TAG(), String.format("the current cache engine(%s), key(%s) - value(%s)", alias, key, value));
133+
}
134+
});
135+
...
136+
}
137+
138+
public static int getAppVersionCode(Context context) {
139+
int versionCode = 1;
140+
PackageManager pm = context.getPackageManager();
141+
try {
142+
PackageInfo packInfo = pm.getPackageInfo(context.getPackageName(), 0);
143+
versionCode = packInfo.versionCode;
144+
} catch (NameNotFoundException e) {
145+
e.printStackTrace();
146+
}
147+
return versionCode;
148+
}
149+
```
150+
109151

110152
#### 使用
111153
#### 1. 默认方式
@@ -122,12 +164,71 @@ implementation 'com.dvsnier:cache:0.1.0'
122164
.commit(IType.TYPE_DOWNLOADS);
123165
```
124166

167+
#### 3. 本地缓存过期方式
168+
```
169+
CacheManager.getInstance().put(IType.TYPE_DOWNLOADS, getKey(), getValue())
170+
.put(IType.TYPE_DOWNLOADS, key1, getValue(), 30, TimeUnit.SECONDS)
171+
.put(IType.TYPE_DOWNLOADS, key2, getValue(), 1, TimeUnit.MINUTES)
172+
.put(IType.TYPE_DOWNLOADS, String.valueOf(System.currentTimeMillis()), getValue(), 3, TimeUnit.SECONDS)
173+
.commit(IType.TYPE_DOWNLOADS);
174+
```
175+
176+
#### 4. 获取数据
177+
```
178+
Object o0 = CacheManager.getInstance().get(key0);
179+
String o1 = CacheManager.getInstance().getString(key1);
180+
Object o2 = CacheManager.getInstance().getObject(key2);
181+
182+
Object O3 = CacheManager.getInstance().get(IType.TYPE_DOWNLOADS, key1);
183+
Object O4 = CacheManager.getInstance().get(IType.TYPE_DOWNLOADS, key2);
184+
```
185+
186+
#### 5. 方法签名
187+
188+
说明
189+
- ```Y```:支持; ```*```: 原则上支持;
190+
191+
| | 默认 | 多实例 | 缓存过期 | 说明 | 备注 | |
192+
| ---------------------------- | ---- | ------ | -------- | ---- | ---- | --- |
193+
| | | | | | | |
194+
| put(K,V) | Y | * | | | | |
195+
| putString(K,V) | Y | * | | | | |
196+
| putInputStream(K,V) | Y | * | | | | |
197+
| putObject(K,V) | Y | * | | | | |
198+
| | | | | | | |
199+
| get(K) | Y | * | | | | |
200+
| getString(K) | Y | * | | | | |
201+
| getInputStream(K) | Y | * | | | | |
202+
| getObject(K) | Y | * | | | | |
203+
| | | | | | | |
204+
| put(Type,K,V) | | Y | | | | |
205+
| putString(Type,K,V) | | Y | | | | |
206+
| putInputStream(Type,K,V) | | Y | | | | |
207+
| putObject(Type,K,V) | | Y | | | | |
208+
| | | | | | | |
209+
| get(Type,K) | | Y | | | | |
210+
| getString(Type,K) | | Y | | | | |
211+
| getInputStream(Type,K) | | Y | | | | |
212+
| getObject(Type,K) | | Y | | | | |
213+
| | | | | | | |
214+
| put(Type,K,V,D,U) | | Y | Y | | | |
215+
| putString(Type,K,V,D,U) | | Y | Y | | | |
216+
| putInputStream(Type,K,V,D,U) | | Y | Y | | | |
217+
| putObject(Type,K,V,D,U) | | Y | Y | | | |
218+
| | | | | | | |
219+
| get(Type,K) | | Y | Y | | | |
220+
| getString(Type,K) | | Y | Y | | | |
221+
| getInputStream(Type,K) | | Y | Y | | | |
222+
| getObject(Type,K) | | Y | Y | | | |
223+
224+
125225
#### FAQ
126226
1. 默认缓存文件保存目录为: `/mnt/sdcard/Android/data/package_your_name/cache/`
127227
2. 配置缓存(IType.TYPE_DOWNLOADS)文件保存目录为: `/mnt/sdcard/Android/data/package_your_name/cache/downloads`,
128228
如果配置不符合规范,则提供的默认配置为: `/mnt/sdcard/Android/data/package_your_name/cache/local`
129229

130-
> ```0.0.6``` 版本的Cache SDK 和```0.1.0``` 版本的Cache SDK 不兼容,如需简单使用缓存请使用```0.0.6```
230+
> - ```0.0.6``` 版本的Cache SDK 和```0.1.0``` 版本的Cache SDK 不兼容,如需简单使用缓存请使用```0.0.6```
231+
> - 推荐```0.2.0```,本地缓存过期和持久化自由切换(冷切换),兼容```0.1.0``` 版本,不兼容```0.0.6``` 版本;
131232
----
132233
### 关于作者
133234
* Email: <dovsnier@qq.com>

0 commit comments

Comments
 (0)