Skip to content

Commit 98d26ee

Browse files
authored
Merge pull request #484 from YangSen-qn/develop
handle dns thread poo
2 parents 6fce0a6 + be3f3c0 commit 98d26ee

File tree

8 files changed

+33
-15
lines changed

8 files changed

+33
-15
lines changed

Diff for: CHANGELOG.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
#Changelog
2+
## 8.4.4 (2022-06-02)
3+
* 处理 Dns 预解析内存问题
24

3-
## 8.4.3 (2022-5-18)
5+
## 8.4.3 (2022-05-18)
46
* 修复:解决使用分片上传 v1 偶现上传异常:在多个区域域名之间进行上传重试的场景下空指针异常
57
* 补充了上传 response status code 注释,详情 [code 注释说明](https://github.com/qiniu/android-sdk/blob/master/library/src/main/java/com/qiniu/android/http/ResponseInfo.java)
68

Diff for: README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ https://github.com/qiniudemo/qiniu-lab-android
3333
| 7.0.7 | Android 2.2+ | android-async-http 1.4.8 |
3434

3535
### 注意
36-
* 推荐使用最新版:8.4.3
36+
* 推荐使用最新版:8.4.4
3737
* 7.6.2 ~ 8.3.2 AndroidNetwork.getMobileDbm()可以获取手机信号强度,需要如下权限(API>=18时生效)
3838
```
3939
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

Diff for: library/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ dependencies {
5454
implementation 'com.squareup.okhttp3:okhttp:4.9.1'
5555

5656
// implementation 'com.squareup.okhttp3:okhttp:3.12.+'
57-
implementation 'com.qiniu:happy-dns:1.0.0'
57+
implementation 'com.qiniu:happy-dns:1.0.1'
5858
// for javax.annotation.Nullable use in custom MultipartBody and Headers implements.
5959
// implementation 'com.google.code.findbugs:jsr305:3.0.2'
6060
implementation 'org.conscrypt:conscrypt-android:2.2.1'

Diff for: library/src/main/java/com/qiniu/android/common/Constants.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
public final class Constants {
55

6-
public static final String VERSION = "8.4.3";
6+
public static final String VERSION = "8.4.4";
77

88
public static final String UTF_8 = "utf-8";
99
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.qiniu.android.http.dns;
2+
3+
import java.util.concurrent.ExecutorService;
4+
import java.util.concurrent.LinkedBlockingQueue;
5+
import java.util.concurrent.ThreadPoolExecutor;
6+
import java.util.concurrent.TimeUnit;
7+
8+
class BaseDns {
9+
int timeout = 10;
10+
static final ExecutorService executor = new ThreadPoolExecutor(0, 4,
11+
60L, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>());
12+
}

Diff for: library/src/main/java/com/qiniu/android/http/dns/HttpDns.java

+7-3
Original file line numberDiff line numberDiff line change
@@ -10,21 +10,25 @@
1010
import java.net.UnknownHostException;
1111
import java.util.ArrayList;
1212
import java.util.List;
13+
import java.util.concurrent.ExecutorService;
14+
import java.util.concurrent.LinkedBlockingQueue;
15+
import java.util.concurrent.ThreadPoolExecutor;
16+
import java.util.concurrent.TimeUnit;
1317

14-
public class HttpDns implements Dns {
18+
public class HttpDns extends BaseDns implements Dns {
1519

1620
private IResolver httpIpv4Resolver;
1721
private IResolver httpIpv6Resolver;
1822

1923
public HttpDns(int timeout) {
2024
String[] dohIpv4Servers = GlobalConfiguration.getInstance().getDohIpv4Servers();
2125
if (dohIpv4Servers != null && dohIpv4Servers.length > 0) {
22-
httpIpv4Resolver = new DohResolver(dohIpv4Servers, Record.TYPE_A, timeout);
26+
httpIpv4Resolver = new DohResolver(dohIpv4Servers, Record.TYPE_A, timeout, executor);
2327
}
2428

2529
String[] dohIpv6Servers = GlobalConfiguration.getInstance().getDohIpv6Servers();
2630
if (dohIpv6Servers != null && dohIpv6Servers.length > 0) {
27-
httpIpv6Resolver = new DohResolver(dohIpv6Servers, Record.TYPE_A, timeout);
31+
httpIpv6Resolver = new DohResolver(dohIpv6Servers, Record.TYPE_A, timeout, executor);
2832
}
2933
}
3034

Diff for: library/src/main/java/com/qiniu/android/http/dns/SystemDns.java

+1-5
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,7 @@
1919
/**
2020
* Created by yangsen on 2020/5/28
2121
*/
22-
public class SystemDns implements Dns {
23-
24-
private int timeout = 10;
25-
private static final ExecutorService executor = new ThreadPoolExecutor(1, 3,
26-
60L, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>());
22+
public class SystemDns extends BaseDns implements Dns {
2723

2824
public SystemDns() {
2925
}

Diff for: library/src/main/java/com/qiniu/android/http/dns/UdpDns.java

+7-3
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,24 @@
1010
import java.net.UnknownHostException;
1111
import java.util.ArrayList;
1212
import java.util.List;
13+
import java.util.concurrent.ExecutorService;
14+
import java.util.concurrent.LinkedBlockingQueue;
15+
import java.util.concurrent.ThreadPoolExecutor;
16+
import java.util.concurrent.TimeUnit;
1317

14-
public class UdpDns implements Dns {
18+
public class UdpDns extends BaseDns implements Dns {
1519
private IResolver udpIpv4Resolver;
1620
private IResolver udpIpv6Resolver;
1721

1822
public UdpDns(int timeout) {
1923
String[] udpIpv4Servers = GlobalConfiguration.getInstance().getUdpDnsIpv4Servers();
2024
if (udpIpv4Servers != null && udpIpv4Servers.length > 0) {
21-
udpIpv4Resolver = new DnsUdpResolver(udpIpv4Servers, Record.TYPE_A, timeout);
25+
udpIpv4Resolver = new DnsUdpResolver(udpIpv4Servers, Record.TYPE_A, timeout, executor);
2226
}
2327

2428
String[] udpIpv6Servers = GlobalConfiguration.getInstance().getUdpDnsIpv6Servers();
2529
if (udpIpv6Servers != null && udpIpv6Servers.length > 0) {
26-
udpIpv6Resolver = new DnsUdpResolver(udpIpv6Servers, Record.TYPE_A, timeout);
30+
udpIpv6Resolver = new DnsUdpResolver(udpIpv6Servers, Record.TYPE_A, timeout, executor);
2731
}
2832
}
2933

0 commit comments

Comments
 (0)