Skip to content

Commit fc762c2

Browse files
authored
Merge pull request #405 from YangSen-qn/refactor
change readme
2 parents eaad263 + b2ab6c8 commit fc762c2

File tree

8 files changed

+283
-25
lines changed

8 files changed

+283
-25
lines changed

CHANGELOG.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,24 @@
11
#Changelog
2+
## 8.0.0 (2020-08-06)
3+
## 重构
4+
8.0.0版本相对于7.4.6版本的改进:
5+
- 优化上传流程
6+
- 优化重试方案
7+
8+
8.0.0版本是在7.x版本基础上,在保证上传接口不变的条件下进行的升级,代码修改信息如下:
9+
- 增加的内部使用类:GlobalConfiguration(dns配置类)、HttpRegionRequest、UploadRequestState等
10+
- 废弃类:HttpResponseInfo、UploadInfoReporter
11+
- 修改了一些7.x内部使用类的API
12+
- UploadManager上传接口进行了少量调整
13+
14+
如果您并未对7.x SDK 进行过深度定制,而是直接对接QNUploadManager进行上传,那么SDK版本升级只需要花费几分钟的时间进行即可。
15+
16+
详细情况请参考:[Android_Changes_from_7.x_to_8.0.0.md](./doc/Android_Changes_from_7.x_to_8.0.0.md)
17+
18+
注:
19+
- dns配置类:GlobalConfiguration
20+
- 设置并发上传:Configuration -> useConcurrentResumeUpload & concurrentTaskCount
21+
222
# 7.6.5
323
* 优化Dns local cache
424

README.md

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ https://github.com/qiniudemo/qiniu-lab-android
1515

1616
| Qiniu SDK 版本 | 最低 Android版本 | 依赖库版本 |
1717
|------------ |-----------------|------------------------|
18+
| 8.0.x | Android 5.0+ | okhttp 4+ |
1819
| 7.6.x | Android 5.0+ | okhttp 4+ |
1920
| 7.5.x | Android 5.0+ | okhttp 4+ |
2021
| 7.4.6 | Android 4.0+ | okhttp 3.12.6 |
@@ -25,13 +26,12 @@ https://github.com/qiniudemo/qiniu-lab-android
2526
| 7.0.7 | Android 2.2+ | android-async-http 1.4.8 |
2627

2728
### 注意
28-
* 推荐使用最新版:7.6.5
29+
* 推荐使用最新版:8.0.0
2930
* AndroidNetwork.getMobileDbm()可以获取手机信号强度,需要如下权限(API>=18时生效)
3031
```
3132
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
3233
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
3334
```
34-
* 从 7.3.13 开始,不在强制依赖 `happy-dns-android`,默认不再提供 `httpDns`,可以调用 `Configuration.Builder#dns(com.qiniu.android.http.Dns)`方法设置外部 `Dns`,自定义 `Dns` 要求实现 `com.qiniu.android.http.Dns` 接口。
3535
* 从7.5.0开始增加了DNS预取和缓存策略,减少dns解析错误
3636
* 如果可以明确 区域 的话,最好指定固定区域,这样可以少一步网络请求,少一步出错的可能。
3737

@@ -44,10 +44,10 @@ https://github.com/qiniudemo/qiniu-lab-android
4444
* Adroid Studio中添加dependencies 或者 在项目中添加maven依赖
4545
```
4646
// 1. 直接导入
47-
implementation 'com.qiniu:qiniu-android-sdk:7.6.+'
47+
implementation 'com.qiniu:qiniu-android-sdk:8.0.+'
4848
4949
// 2. 如果要修改okhttp依赖的版本,可采用以下方式(强烈建议使用七牛库依赖的okhttp版本)
50-
implementation ('com.qiniu:qiniu-android-sdk:7.6.+'){
50+
implementation ('com.qiniu:qiniu-android-sdk:8.0.+'){
5151
exclude (group: 'com.squareup.okhttp3', module: 'okhttp')
5252
}
5353
implementation 'com.squareup.okhttp3:okhttp:4.2.2'
@@ -62,15 +62,15 @@ UploadManager 可以创建一次,一直使用。
6262
```java
6363
import com.qiniu.android.storage.UploadManager;
6464
...
65-
String token = "从服务端SDK获取";
66-
UploadManager uploadManager = new UploadManager();
67-
uploadManager.put("Hello, World!".getBytes(), "hello", token,
68-
new UpCompletionHandler() {
69-
@Override
70-
public void complete(String key, ResponseInfo info, JSONObject response) {
71-
LogUtil.i(info);
72-
}
73-
}, null);
65+
String token = "从服务端SDK获取";
66+
UploadManager uploadManager = new UploadManager();
67+
uploadManager.put("Hello, World!".getBytes(), "hello", token,
68+
new UpCompletionHandler() {
69+
@Override
70+
public void complete(String key, ResponseInfo info, JSONObject response) {
71+
LogUtil.i(info);
72+
}
73+
}, null);
7474
...
7575
```
7676

@@ -554,6 +554,8 @@ public class MainActivity extends Activity implements View.OnClickListener {
554554
具体可以参考源码:
555555
https://github.com/qiniu/android-sdk/blob/c4cd1437aa1f2a0d68122e46b83580facdf1b74a/library/src/main/java/com/qiniu/android/http/ResponseInfo.java
556556
```
557+
public static final int MaliciousResponseError = -8;
558+
public static final int LocalIOError = -7;
557559
public static final int ZeroSizeFile = -6;
558560
public static final int InvalidToken = -5;
559561
public static final int InvalidArgument = -4;
Lines changed: 212 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,212 @@
1+
2+
# Differences from 7.6.4 to 8.0.0
3+
4+
注:
5+
- dns配置类:`GlobalConfiguration`
6+
- 设置并发上传:`Configuration` -> `useConcurrentResumeUpload` & `concurrentTaskCount`
7+
8+
9+
## 1. com.qiniu.android.storage
10+
### 1.1 change class
11+
**remove:**
12+
- com.qiniu.android.storage.ResumeUploaderFast
13+
14+
15+
### 1.2 change file
16+
#### 1.2.1 com.qiniu.android.storage.UploadManager
17+
**remove:**
18+
- `UploadManager(Configuration config, int multitread)`
19+
- `UploadManager(Recorder recorder, int multitread)`
20+
- `UploadManager(Recorder recorder, KeyGenerator keyGen, int multitread)`
21+
22+
#### 1.2.2 com.qiniu.android.storage.Builder
23+
**add:**
24+
- `property` : `allowBackupHost`
25+
- `property` : `concurrentTaskCount`
26+
- `property` : `useConcurrentResumeUpload`
27+
28+
**remove:**
29+
- `func` : `UploadManager(Configuration config, int multitread)`
30+
- `func` : `UploadManager(Recorder recorder, int multitread)`
31+
- `func` : `UploadManager(Recorder recorder, KeyGenerator keyGen, int multitread)`
32+
- `property` : `dns`
33+
- `property` : `dnsCacheTimeMs`
34+
35+
36+
37+
38+
## 2. com.qiniu.android.bigdata.client
39+
### 2.1 change class
40+
**add:**
41+
- com.qiniu.android.bigdata.client.Client
42+
- com.qiniu.android.bigdata.client.PostArgs
43+
44+
45+
## 3. com.qiniu.android.collect
46+
### 3.1 change class
47+
**add:**
48+
- com.qiniu.android.collect.ReportConfig
49+
- com.qiniu.android.collect.ReportItem
50+
- com.qiniu.android.collect.UploadInfoReporter
51+
52+
**remove:**
53+
- com.qiniu.android.collect.Config
54+
- com.qiniu.android.collect.UploadInfo
55+
- com.qiniu.android.collect.UploadInfoCollector
56+
- com.qiniu.android.collect.UploadInfoCollector.RecordMsg
57+
- com.qiniu.android.collect.UploadInfoElement
58+
- com.qiniu.android.collect.UploadInfoElement.BlockInfo
59+
- com.qiniu.android.collect.UploadInfoElement.ReqInfo
60+
- com.qiniu.android.collect.UploadInfoElement.UploadQuality
61+
- com.qiniu.android.collect.UploadInfoElementCollector
62+
63+
64+
## 4. com.qiniu.android.common
65+
### 4.1 change class
66+
**add:**
67+
- com.qiniu.android.common.ZoneInfo.UploadServerGroup
68+
- com.qiniu.android.common.Config
69+
70+
### 4.2 change file
71+
#### 4.2.1 com.qiniu.android.common.Zone.QueryHandler
72+
**add:**
73+
- `func` : `void complete(int code, ResponseInfo responseInfo, UploadRegionRequestMetrics metrics)`
74+
75+
**remove:**
76+
- `func` : `void onSuccess()`
77+
- `func` : `void onFailure(int reason)`
78+
79+
80+
#### 4.2.2 com.qiniu.android.common.FixedZone
81+
**add:**
82+
- `func` : `FixedZone(java.lang.String[] upDomains, java.lang.String[] ioDomains)`
83+
- `func` : `FixedZone(ZonesInfo zonesInfo)`
84+
- `func` : `ZonesInfo getZonesInfo(UpToken token)`
85+
- `func` : `static FixedZone localsZoneInfo()`
86+
- `func` : `void preQuery(UpToken token, Zone.QueryHandler completeHandler)`
87+
88+
**remove:**
89+
- `property` : arrayzone0
90+
- `property` : arrayzone1
91+
- `property` : arrayzone2
92+
- `property` : arrayzoneAs0
93+
- `property` : arrayzoneNa0
94+
- `func` : `static ZoneInfo createZoneInfo(java.lang.String[] upDomains)`
95+
- `func` : `void frozenDomain(java.lang.String upHostUrl)`
96+
- `func` : `static java.util.List<ZoneInfo> getZoneInfos()`
97+
- `func` : `boolean preQuery(LogHandler logHandler, java.lang.String token)`
98+
- `func` : `void preQuery(LogHandler logHandler, java.lang.String token, Zone.QueryHandler complete)`
99+
- `func` : `java.lang.String upHost(java.lang.String upToken, boolean useHttps, java.lang.String frozenDomain)`
100+
101+
102+
103+
## 5 com.qiniu.android.http
104+
### 5.1 change class
105+
**remove:**
106+
- com.qiniu.android.http.Client
107+
- com.qiniu.android.http.Client.ResponseTag
108+
- com.qiniu.android.http.CountingRequestBody
109+
- com.qiniu.android.http.DnsPrefetcher
110+
- com.qiniu.android.http.HttpEventListener
111+
- com.qiniu.android.http.MultipartBody
112+
- com.qiniu.android.http.MultipartBody.Builder
113+
- com.qiniu.android.http.MultipartBody.Part
114+
- com.qiniu.android.http.PostArgs
115+
116+
### 5.2 change file
117+
#### 5.2.1 com.qiniu.android.http.ResponseInfo
118+
**add:**
119+
- `LocalIOError`
120+
- `static MaliciousResponseError`
121+
- `message`
122+
- `static NetworkSlow`
123+
- `static NetworkSSLError`
124+
- `static PasrseError `
125+
- `responseHeader`
126+
- `static ResquestSuccess `
127+
128+
**remove:**
129+
- `bytes_sent`
130+
- `duration`
131+
- `requests_count`
132+
- `totalSize`
133+
134+
135+
## 6 com.qiniu.android.http.dns
136+
### 6.1 change class
137+
**add:**
138+
- com.qiniu.android.http.dns.Dns
139+
- com.qiniu.android.http.dns.IDnsNetworkAddress
140+
- com.qiniu.android.http.dns.DnsCacheFile
141+
- com.qiniu.android.http.dns.DnsPrefetcher
142+
- com.qiniu.android.http.dns.DnsPrefetchTransaction
143+
- com.qiniu.android.http.dns.HappyDns
144+
- com.qiniu.android.http.dns.SystemDns
145+
146+
147+
## 7 com.qiniu.android.http.metrics
148+
### 7.1 change class
149+
**add:**
150+
- com.qiniu.android.http.metrics.UploadRegionRequestMetrics
151+
- com.qiniu.android.http.metrics.UploadSingleRequestMetrics
152+
- com.qiniu.android.http.metrics.UploadTaskMetrics
153+
154+
155+
## 8 com.qiniu.android.http.request
156+
### 8.1 change class
157+
**add:**
158+
- com.qiniu.android.http.request.IRequestClient
159+
- com.qiniu.android.http.request.IRequestClient.RequestClientCompleteHandler
160+
- com.qiniu.android.http.request.IRequestClient.RequestClientProgress
161+
- com.qiniu.android.http.request.IUploadServer
162+
- com.qiniu.android.http.request.RequestTransaction.RequestCompleteHandler
163+
- com.qiniu.android.http.request.IUploadRegion
164+
- com.qiniu.android.http.request.Request
165+
- com.qiniu.android.http.request.RequestTransaction
166+
- com.qiniu.android.http.request.UploadFileInfo
167+
- com.qiniu.android.http.request.UploadFileInfo.UploadBlock
168+
- com.qiniu.android.http.request.UploadFileInfo.UploadData
169+
170+
171+
## 9 com.qiniu.android.http.request.handler
172+
### 9.1 change class
173+
**add:**
174+
- com.qiniu.android.http.request.handler.CheckCancelHandler
175+
- com.qiniu.android.http.request.handler.RequestProgressHandler
176+
- com.qiniu.android.http.request.handler.RequestShouldRetryHandler
177+
178+
179+
## 10 com.qiniu.android.http.request.httpclient
180+
### 10.1 change class
181+
**add:**
182+
- com.qiniu.android.http.request.httpclient.ByteBody
183+
- com.qiniu.android.http.request.httpclient.CountingRequestBody
184+
- com.qiniu.android.http.request.httpclient.MultipartBody
185+
- com.qiniu.android.http.request.httpclient.MultipartBody.Builder
186+
- com.qiniu.android.http.request.httpclient.MultipartBody.Part
187+
- com.qiniu.android.http.request.httpclient.SystemHttpClient
188+
189+
190+
## 11 com.qiniu.android.http.request.serverRegion
191+
### 11.1 change class
192+
**add:**
193+
- com.qiniu.android.http.request.serverRegion.UploadDomainRegion
194+
- com.qiniu.android.http.request.serverRegion.UploadServer
195+
- com.qiniu.android.http.request.serverRegion.UploadServerFreezeManager
196+
197+
198+
## 12 com.qiniu.android.transaction
199+
### 12.1 change class
200+
**add:**
201+
- com.qiniu.android.transaction.TransactionManager
202+
- com.qiniu.android.transaction.TransactionManager.Transaction
203+
204+
205+
## 13 com.qiniu.android.transaction
206+
### 13.1 change class
207+
**add:**
208+
- com.qiniu.android.transaction.GroupTaskThread.GroupTaskCompleteHandler
209+
- com.qiniu.android.transaction.GroupTaskThread
210+
- com.qiniu.android.transaction.LogUtil
211+
- com.qiniu.android.transaction.Utils
212+
- com.qiniu.android.transaction.Wait

library/src/main/java/com/qiniu/android/common/Constants.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33

44
public final class Constants {
5-
public static final String VERSION = "7.6.5";
5+
public static final String VERSION = "8.0.0";
66

77
public static final String UTF_8 = "utf-8";
88
}

library/src/main/java/com/qiniu/android/storage/ConcurrentResumeUpload.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import com.qiniu.android.http.request.IUploadRegion;
77
import com.qiniu.android.http.request.handler.RequestProgressHandler;
88
import com.qiniu.android.http.metrics.UploadRegionRequestMetrics;
9+
import com.qiniu.android.utils.AsyncRun;
910
import com.qiniu.android.utils.GroupTaskThread;
1011

1112
import org.json.JSONException;
@@ -74,7 +75,12 @@ public void complete(ResponseInfo responseInfo, JSONObject response) {
7475
completeAction(responseInfo, response);
7576
}
7677
} else {
77-
option.progressHandler.progress(key, 1.0);
78+
AsyncRun.runInMain(new Runnable() {
79+
@Override
80+
public void run() {
81+
option.progressHandler.progress(key, 1.0);
82+
}
83+
});
7884
removeUploadInfoRecord();
7985
completeAction(responseInfo, response);
8086
}

library/src/main/java/com/qiniu/android/storage/FormUpload.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.qiniu.android.http.request.RequestTransaction;
55
import com.qiniu.android.http.request.handler.RequestProgressHandler;
66
import com.qiniu.android.http.metrics.UploadRegionRequestMetrics;
7+
import com.qiniu.android.utils.AsyncRun;
78

89
import org.json.JSONObject;
910

@@ -50,7 +51,12 @@ public void progress(long totalBytesWritten, long totalBytesExpectedToWrite) {
5051
public void complete(ResponseInfo responseInfo, UploadRegionRequestMetrics requestMetrics, JSONObject response) {
5152
addRegionRequestMetricsOfOneFlow(requestMetrics);
5253
if (responseInfo.isOK()){
53-
option.progressHandler.progress(key, 1.0);
54+
AsyncRun.runInMain(new Runnable() {
55+
@Override
56+
public void run() {
57+
option.progressHandler.progress(key, 1.0);
58+
}
59+
});
5460
completeAction(responseInfo, response);
5561
} else if (responseInfo.couldRetry() && config.allowBackupHost){
5662
boolean isSwitched = switchRegionAndUpload();

library/src/main/java/com/qiniu/android/storage/ResumeUpload.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import com.qiniu.android.http.request.IUploadRegion;
77
import com.qiniu.android.http.request.handler.RequestProgressHandler;
88
import com.qiniu.android.http.metrics.UploadRegionRequestMetrics;
9+
import com.qiniu.android.utils.AsyncRun;
910

1011
import org.json.JSONException;
1112
import org.json.JSONObject;
@@ -64,7 +65,12 @@ public void complete(ResponseInfo responseInfo, JSONObject response) {
6465
completeAction(responseInfo, response);
6566
}
6667
} else {
67-
option.progressHandler.progress(key, 1.0);
68+
AsyncRun.runInMain(new Runnable() {
69+
@Override
70+
public void run() {
71+
option.progressHandler.progress(key, 1.0);
72+
}
73+
});
6874
removeUploadInfoRecord();
6975
completeAction(responseInfo, response);
7076
}

0 commit comments

Comments
 (0)