Skip to content

Commit f51acce

Browse files
authored
Merge pull request #14 from DovSnier/developer
[DONE]合并分支
2 parents facb63f + 23251e8 commit f51acce

File tree

81 files changed

+7476
-795
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

81 files changed

+7476
-795
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ captures/
4242
.idea/libraries
4343
.DS_Store
4444
release/
45+
mock/
4546

4647
# Keystore files
4748
*.jks

README.md

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

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

911
#### 使用Gradle构建时添加一下依赖即可:
1012
```
11-
implementation 'com.dvsnier:cacheLib:0.0.6'
13+
implementation 'com.dvsnier:cache:0.2.0'
1214
```
1315

1416
#### 使用前配置
@@ -31,30 +33,30 @@ implementation 'com.dvsnier:cacheLib:0.0.6'
3133
@Override
3234
public void onTerminate() {
3335
super.onTerminate();
34-
CacheManager.getInstance().close();
36+
CacheManager.getInstance().onDestroy();
3537
}
3638
3739
```
3840
#### 扩展
39-
##### 第一种
41+
##### 第一种,默认配置
4042
```
41-
// 在application的onCreate中初始化
43+
// 在application的onCreate中初始化
4244
@Override
4345
public void onCreate() {
4446
super.onCreate();
45-
// 默认磁盘配置512M 缓存空间
47+
// 默认磁盘配置512M 缓存空间
4648
CacheManager.getInstance().initialize(this);
4749
...
4850
}
4951
```
50-
##### 第二种
52+
##### 第二种,自定义配置
5153
```
5254
// 在application的onCreate中初始化
5355
@Override
5456
public void onCreate() {
5557
super.onCreate();
56-
// 自定义磁盘1G 缓存空间
57-
int cacheMaxSizeOfDisk = 1024 * 1024 * 1024; // 1G
58+
// 自定义磁盘1G 缓存空间
59+
int cacheMaxSizeOfDisk = 1024 * 1024 * 1024; // 1G
5860
CacheManager.getInstance().initialize(new ICacheConfig.Builder(this).setCacheMaxSizeOfDisk(cacheMaxSizeOfDisk).create());
5961
// CacheManager.getInstance().initialize(new ICacheConfig.Builder(this).setAppVersion(getAppVersionCode(this)).setCacheMaxSizeOfDisk(cacheMaxSizeOfDisk).create());
6062
...
@@ -72,10 +74,162 @@ implementation 'com.dvsnier:cacheLib:0.0.6'
7274
return versionCode;
7375
}
7476
```
75-
#### FAQ
76-
1.默认缓存文件保存目录为: `/mnt/sdcard/Android/data/package_your_name/cache/`
7777

78+
#### 第三种,多实例配置
79+
```
80+
// 在application的onCreate中初始化
81+
@Override
82+
public void onCreate() {
83+
super.onCreate();
84+
// 自定义磁盘1G 缓存空间
85+
int cacheMaxSizeOfDisk = Double.valueOf(CacheStorage.INSTANCE().getFormatted(1, AbstractStorage.SCU.G)).intValue(); // 1G < Integer.MAX_VALUE ~ 2G
86+
// the configure cache alias, here in the downloads directory
87+
CacheManager.getInstance().initialize(IType.TYPE_DOWNLOADS, new ICacheConfig.Builder(this)
88+
.setContext(this)
89+
.setAppVersion(getAppVersionCode(this))
90+
.setCacheMaxSizeOfDisk(cacheMaxSizeOfDisk)
91+
// .setUniqueName(IType.TYPE_DEFAULT)
92+
.setUniqueName(IType.TYPE_DOWNLOADS)
93+
.setDebug(true) // debug mode
94+
.create());
95+
...
96+
}
97+
98+
public static int getAppVersionCode(Context context) {
99+
int versionCode = 1;
100+
PackageManager pm = context.getPackageManager();
101+
try {
102+
PackageInfo packInfo = pm.getPackageInfo(context.getPackageName(), 0);
103+
versionCode = packInfo.versionCode;
104+
} catch (NameNotFoundException e) {
105+
e.printStackTrace();
106+
}
107+
return versionCode;
108+
}
109+
```
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+
151+
152+
#### 使用
153+
#### 1. 默认方式
154+
```
155+
CacheManager.getInstance().put(key0, "测试数据: " + System.currentTimeMillis())
156+
.putString(key1, "测试字符串: " + view.toString())
157+
.putObject(key2, new Bean("cache object " + System.currentTimeMillis(), BuildConfig.VERSION_NAME))
158+
.putString(getKey(), view.toString())
159+
.commit();
160+
```
161+
#### 2. 多实例方式
162+
```
163+
CacheManager.getInstance().put(IType.TYPE_DOWNLOADS, getKey(), getValue())
164+
.commit(IType.TYPE_DOWNLOADS);
165+
```
166+
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+
225+
#### FAQ
226+
1. 默认缓存文件保存目录为: `/mnt/sdcard/Android/data/package_your_name/cache/`
227+
2. 配置缓存(IType.TYPE_DOWNLOADS)文件保存目录为: `/mnt/sdcard/Android/data/package_your_name/cache/downloads`,
228+
如果配置不符合规范,则提供的默认配置为: `/mnt/sdcard/Android/data/package_your_name/cache/local`
229+
230+
> - ```0.0.6``` 版本的Cache SDK 和```0.1.0``` 版本的Cache SDK 不兼容,如需简单使用缓存请使用```0.0.6```
231+
> - 推荐```0.2.0```,本地缓存过期和持久化自由切换(冷切换),兼容```0.1.0``` 版本,不兼容```0.0.6``` 版本;
78232
----
79233
### 关于作者
80-
* Email: <3086722095@qq.com>
234+
* Email: <dovsnier@qq.com>
81235
* 有任何建议或者使用中遇到问题都可以给我发邮件,欢迎技术交流QQ:578562841

app/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ dependencies {
3636
}
3737

3838
implementation project(':cacheLib')
39+
// implementation 'com.dvsnier:cache:0.1.0'
3940

4041
testImplementation "junit:junit:${rootProject.ext.junit_version}"
4142
androidTestImplementation "com.android.support.test:runner:${rootProject.ext.runner_version}"

app/src/androidTest/java/com/dvsnier/demo/CacheManagerInstrumentedTest.java

Lines changed: 0 additions & 129 deletions
This file was deleted.

0 commit comments

Comments
 (0)