换成单集群模式

This commit is contained in:
robin
2026-03-02 20:07:53 +08:00
parent 5d0b7c7e91
commit 2a76d1773d
432 changed files with 5681 additions and 5095 deletions

View File

@@ -3,11 +3,11 @@ plugins {
}
android {
namespace 'com.aliyun.ams.httpdns.demo'
namespace 'com.newsdk.ams.httpdns.demo'
compileSdkVersion 34
buildToolsVersion "30.0.2"
defaultConfig {
applicationId "com.aliyun.ams.httpdns.demo2"
applicationId "com.newsdk.ams.httpdns.demo2"
minSdkVersion 19
targetSdkVersion 34
versionCode 1

View File

@@ -25,6 +25,6 @@
#-renamesourcefileattribute SourceFile
-dontwarn okhttp3.**
-dontwarn okio.**
-dontwarn com.alibaba.sdk.android.httpdns.test.**
-dontwarn com.alibaba.sdk.android.httpdns.net.HttpDnsNetworkDetector
-dontwarn com.newsdk.sdk.android.httpdns.test.**
-dontwarn com.newsdk.sdk.android.httpdns.net.HttpDnsNetworkDetector
-keep class com.aliyun.ams.ipdetector.Inet64Util{*;}

View File

@@ -1,357 +0,0 @@
package com.aliyun.ams.httpdns.demo;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.EditText;
import com.alibaba.sdk.android.httpdns.DegradationFilter;
import com.alibaba.sdk.android.httpdns.NetType;
import com.alibaba.sdk.android.httpdns.RequestIpType;
import com.alibaba.sdk.android.httpdns.net.HttpDnsNetworkDetector;
import com.alibaba.sdk.android.httpdns.ranking.IPRankingBean;
import com.aliyun.ams.httpdns.demo.base.BaseActivity;
import com.aliyun.ams.httpdns.demo.http.HttpUrlConnectionRequest;
import com.aliyun.ams.httpdns.demo.okhttp.OkHttpRequest;
import com.aliyun.ams.httpdns.demo.utils.ThreadUtil;
import java.util.ArrayList;
import java.util.Collections;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/**
* @author zonglin.nzl
* @date 8/30/22
*/
public class HttpDnsActivity extends BaseActivity {
public static final String SCHEMA_HTTPS = "https://";
public static final String SCHEMA_HTTP = "http://";
public static final String TAOBAO_URL = "www.taobao.com";
public static final String Aliyun_URL = "www.Aliyun.com";
public static final String[] hosts = new String[]{
TAOBAO_URL, Aliyun_URL
};
public static String getUrl(String schema, String host) {
return schema + host;
}
/**
* 瑕佽姹傜殑schema
*/
private String schema = SCHEMA_HTTPS;
/**
* 瑕佽姹傜殑鍩熷悕
*/
private String host = Aliyun_URL;
/**
* 瑕佽В鏋愮殑ip绫诲瀷
*/
private RequestIpType requestIpType = RequestIpType.v4;
private HttpUrlConnectionRequest httpUrlConnectionRequest;
private OkHttpRequest okHttpRequest;
private NetworkRequest networkRequest = httpUrlConnectionRequest;
private ExecutorService worker = Executors.newSingleThreadExecutor();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
httpUrlConnectionRequest = new HttpUrlConnectionRequest(this);
okHttpRequest = new OkHttpRequest(this);
networkRequest = httpUrlConnectionRequest;
addFourButton("鍒囨崲瀹炰緥", v -> {
MyApp.getInstance().changeHolder();
sendLog("httpdns瀹炰緥宸插垏鎹?);
}, "鑾峰彇閰嶇疆", v -> {
sendLog(MyApp.getInstance().getCurrentHolder().getCurrentConfig());
sendLog("瑕佽В鏋愮殑鍩熷悕鏄? + host);
sendLog("瑕佽В鏋愮殑ip绫诲瀷鏄? + requestIpType.name());
sendLog("瑕佹ā鎷熻姹傜殑url鏄? + getUrl(schema, host));
sendLog("妯℃嫙璇锋眰鐨勭綉缁滄鏋舵槸" + (networkRequest == httpUrlConnectionRequest ? " HttpUrlConnection" : "OkHttp"));
}, "娓呴櫎閰嶇疆缂撳瓨", v -> {
MyApp.getInstance().getCurrentHolder().cleanSp();
sendLog(MyApp.getInstance().getCurrentHolder().getAccountId() + "閰嶇疆缂撳瓨娓呴櫎, 閲嶅惎鐢熸晥");
}, "娓呴櫎鏃ュ織", v -> cleanLog());
addTwoButton("寮€鍚痟ttps", v -> {
MyApp.getInstance().getCurrentHolder().setEnableHttps(true);
sendLog(MyApp.getInstance().getCurrentHolder().getAccountId() + "寮€鍚痟ttps");
}, "鍏抽棴https", v -> {
MyApp.getInstance().getCurrentHolder().setEnableHttps(false);
sendLog(MyApp.getInstance().getCurrentHolder().getAccountId() + "鍏抽棴https");
});
addTwoButton("鍏佽杩囨湡IP", v -> {
MyApp.getInstance().getCurrentHolder().setEnableExpiredIp(true);
sendLog(MyApp.getInstance().getCurrentHolder().getAccountId() + "鍏佽杩囨湡IP");
}, "涓嶅厑璁歌繃鏈烮P", v -> {
MyApp.getInstance().getCurrentHolder().setEnableExpiredIp(false);
sendLog(MyApp.getInstance().getCurrentHolder().getAccountId() + "涓嶅厑璁歌繃鏈烮P");
});
addTwoButton("鍏佽鎸佷箙鍖栫紦瀛?, v -> {
MyApp.getInstance().getCurrentHolder().setEnableCacheIp(true);
sendLog(MyApp.getInstance().getCurrentHolder().getAccountId() + "鍏佽鎸佷箙鍖栫紦瀛?);
}, "涓嶅厑璁告寔涔呭寲缂撳瓨", v -> {
MyApp.getInstance().getCurrentHolder().setEnableCacheIp(false);
sendLog(MyApp.getInstance().getCurrentHolder().getAccountId() + "涓嶅厑璁告寔涔呭寲缂撳瓨");
});
addThreeButton("璁剧疆涓浗澶ч檰", v -> {
MyApp.getInstance().getCurrentHolder().setRegion(null);
sendLog(MyApp.getInstance().getCurrentHolder().getAccountId() + "鍒囨崲鍒颁腑鍥藉ぇ闄?);
}, "璁剧疆涓浗棣欐腐", v -> {
MyApp.getInstance().getCurrentHolder().setRegion("hk");
sendLog(MyApp.getInstance().getCurrentHolder().getAccountId() + "鍒囨崲鍒颁腑鍥介?);
}, "璁剧疆鏂板姞鍧?, v -> {
MyApp.getInstance().getCurrentHolder().setRegion("sg");
sendLog(MyApp.getInstance().getCurrentHolder().getAccountId() + "鍒囨崲鍒版柊鍔犲潯");
});
addEditTextButton("瓒呮椂鏃堕暱 ms", "璁剧疆瓒呮椂ms", view -> {
EditText et = (EditText) view;
int timeout = Integer.parseInt(et.getEditableText().toString());
MyApp.getInstance().getCurrentHolder().setTimeout(timeout);
sendLog(MyApp.getInstance().getCurrentHolder().getAccountId() + "璁剧疆瓒呮椂 " + timeout);
});
addTwoButton("檷绾?, v -> {
// 娉ㄦ剰锛氶檷绾ц繃婊ゅ櫒鐜板湪闇€瑕侀€氳繃InitConfig璁剧疆锛岄噸鍚簲鐢ㄧ敓鏁?
sendLog(MyApp.getInstance().getCurrentHolder().getAccountId() + "闄嶇骇鍔熻兘闇€瑕侀€氳繃InitConfig閰嶇疆");
}, "鍏抽棴闄嶇骇", v -> {
// 娉ㄦ剰锛氶檷绾ц繃婊ゅ櫒鐜板湪闇€瑕侀€氳繃InitConfig璁剧疆锛岄噸鍚簲鐢ㄧ敓鏁?
sendLog(MyApp.getInstance().getCurrentHolder().getAccountId() + "闄嶇骇鍔熻兘闇€瑕侀€氳繃InitConfig閰嶇疆");
});
addTwoButton("寮€鍚綉缁滃彉鍖栧悗棰勮В鏋?, v -> {
// 娉ㄦ剰锛氭鍔熻兘鐜板湪闇€瑕侀€氳繃InitConfig璁剧疆锛岄噸鍚簲鐢ㄧ敓鏁?
sendLog(MyApp.getInstance().getCurrentHolder().getAccountId() + "缃戠粶鍙樺寲鍚庨瑙f瀽闇瑕侀氳繃InitConfig閰嶇疆");
}, "鍏抽棴缃戠粶鍙樺寲鍚庨瑙f瀽", v -> {
// 娉ㄦ剰锛氭鍔熻兘鐜板湪闇€瑕侀€氳繃InitConfig璁剧疆锛岄噸鍚簲鐢ㄧ敓鏁?
sendLog(MyApp.getInstance().getCurrentHolder().getAccountId() + "缃戠粶鍙樺寲鍚庨瑙f瀽闇瑕侀氳繃InitConfig閰嶇疆");
});
addView(R.layout.item_autocomplete_edittext_button, view -> {
final AutoCompleteTextView actvOne = view.findViewById(R.id.actvOne);
final EditText etOne = view.findViewById(R.id.etOne);
Button btnOne = view.findViewById(R.id.btnOne);
actvOne.setHint("璇疯緭鍏ュ煙鍚?);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(),
android.R.layout.simple_dropdown_item_1line, hosts);
actvOne.setAdapter(adapter);
etOne.setHint("璇疯緭鍏ヨ嚜瀹氫箟ttl");
btnOne.setText("鎸囧畾鍩熷悕ttl s");
btnOne.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String host = actvOne.getEditableText().toString();
int ttl = Integer.parseInt(etOne.getEditableText().toString());
MyApp.getInstance().getCurrentHolder().setHostTtl(host, ttl);
sendLog("鎸囧畾鍩熷悕" + host + "鐨則tl涓? + ttl + "?);
}
});
});
addView(R.layout.item_autocomplete_edittext_button, view -> {
final AutoCompleteTextView actvOne = view.findViewById(R.id.actvOne);
final EditText etOne = view.findViewById(R.id.etOne);
Button btnOne = view.findViewById(R.id.btnOne);
actvOne.setHint("鍩熷悕");
ArrayAdapter<String> adapter = new ArrayAdapter<>(getApplicationContext(),
android.R.layout.simple_dropdown_item_1line, hosts);
actvOne.setAdapter(adapter);
etOne.setHint("璇疯緭鍏ョ鍙?);
btnOne.setText("娣诲姞ipRanking閰嶇疆");
btnOne.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String host = actvOne.getEditableText().toString();
int port = Integer.parseInt(etOne.getEditableText().toString());
MyApp.getInstance().getCurrentHolder().addIpProbeItem(new IPRankingBean(host, port));
sendLog("娣诲姞鍩熷悕" + host + " ");
}
});
});
addAutoCompleteTextViewButton(hosts, "涓荤珯鍩熷悕", "娣诲姞涓荤珯鍩熷悕", view -> {
AutoCompleteTextView actvOne = (AutoCompleteTextView) view;
String host = actvOne.getEditableText().toString();
MyApp.getInstance().getCurrentHolder().addHostWithFixedIp(host);
sendLog("娣诲姞涓荤珯鍩熷悕" + host);
});
addAutoCompleteTextViewButton(hosts, "鍩熷悕", "鍒犻櫎鎸囧畾鍩熷悕鐨勭紦瀛?, view -> {
AutoCompleteTextView actvOne = (AutoCompleteTextView) view;
String host = actvOne.getEditableText().toString();
ArrayList<String> list = new ArrayList<>();
list.add(host);
MyApp.getInstance().getService().cleanHostCache(list);
sendLog("娓呴櫎鎸囧畾host鐨勭紦瀛? + host);
});
addOneButton("娓呴櫎鎵鏈夌紦瀛?, v -> {
MyApp.getInstance().getService().cleanHostCache(null);
sendLog("娓呴櫎鎵€鏈夌紦瀛?);
});
addFourButton("鑾峰彇褰撳墠缃戠粶鐘舵?, v -> {
NetType type = HttpDnsNetworkDetector.getInstance().getNetType(getApplicationContext());
sendLog("鑾峰彇缃戠粶鐘舵€?" + type.name());
}, "绂佺敤缃戠粶鐘舵€佺紦瀛?, v -> {
HttpDnsNetworkDetector.getInstance().disableCache(true);
sendLog("缃戠粶鐘舵?绂佺敤缂撳瓨 ");
}, "綉缁滅姸鎬佺紦瀛?, v -> {
HttpDnsNetworkDetector.getInstance().disableCache(false);
sendLog("缃戠粶鐘舵€?寮€鍚紦瀛?");
}, "娓呴櫎缃戠粶鐘舵€佺紦瀛?, v -> {
HttpDnsNetworkDetector.getInstance().cleanCache(false);
sendLog("缃戠粶鐘舵佹竻闄ょ紦瀛?");
});
addTwoButton("绂佹璇诲彇IP", v -> {
HttpDnsNetworkDetector.getInstance().setCheckInterface(false);
sendLog("鏌ヨ缃戠粶鐘舵佹椂 绂佹璇诲彇IP");
}, "鍏佽璇诲彇IP", v -> {
HttpDnsNetworkDetector.getInstance().setCheckInterface(true);
sendLog("鏌ヨ缃戠粶鐘舵佹椂 鍏佽璇诲彇IP");
});
addAutoCompleteTextViewButton(hosts, "鍩熷悕", "璁剧疆妫娴嬬綉缁滀娇鐢ㄧ殑鍩熷悕", view -> {
AutoCompleteTextView actvOne = (AutoCompleteTextView) view;
String host = actvOne.getEditableText().toString();
HttpDnsNetworkDetector.getInstance().setHostToCheckNetType(host);
sendLog("璁剧疆妫娴嬬綉缁滅姸鎬佷娇鐢ㄧ殑鍩熷悕涓? + host);
});
addTwoButton("妯℃嫙璇锋眰浣跨敤https璇锋眰", v -> {
schema = SCHEMA_HTTPS;
sendLog("娴嬭瘯url浣跨敤https");
}, "妯℃嫙璇锋眰浣跨敤http璇锋眰", v -> {
schema = SCHEMA_HTTP;
sendLog("娴嬭瘯url浣跨敤http");
});
addTwoButton("HttpUrlConnection", v -> {
networkRequest = httpUrlConnectionRequest;
sendLog("鎸囧畾缃戠粶瀹炵幇鏂瑰紡涓篐ttpUrlConnection");
}, "Okhttp", v -> {
networkRequest = okHttpRequest;
sendLog("鎸囧畾缃戠粶瀹炵幇鏂瑰紡涓簅khttp");
});
addFourButton("鎸囧畾v4", v -> {
requestIpType = RequestIpType.v4;
sendLog("瑕佽В鏋愮殑IP绫诲瀷鎸囧畾涓篿pv4");
}, "鎸囧畾v6", v -> {
requestIpType = RequestIpType.v6;
sendLog("瑕佽В鏋愮殑IP绫诲瀷鎸囧畾涓篿pv6");
}, "閮借В鏋?, v -> {
requestIpType = RequestIpType.both;
sendLog("瑕佽В鏋愮殑IP绫诲瀷鎸囧畾涓篿pv4鍜宨pv6");
}, "姩鍒ゆ柇", v -> {
requestIpType = RequestIpType.auto;
sendLog("瑕佽В鏋愮殑IP绫诲瀷鏍规嵁缃戠粶鎯呭喌鑷姩鍒ゆ柇");
});
addAutoCompleteTextViewButton(hosts, "鍩熷悕", "鎸囧畾瑕佽В鏋愮殑鍩熷悕", new OnButtonClick() {
@Override
public void onBtnClick(View view) {
AutoCompleteTextView actvOne = (AutoCompleteTextView) view;
host = actvOne.getEditableText().toString();
sendLog("瑕佽В鏋愮殑鍩熷悕" + host);
}
});
addTwoButton("寮傛瑙f瀽", v -> worker.execute(new Runnable() {
@Override
public void run() {
sendLog("濮嬪彂璧风綉缁滆?);
sendLog("缃戠粶瀹炵幇鏂瑰紡涓? + (networkRequest == httpUrlConnectionRequest ? "HttpUrlConnection" : "okhttp"));
String url = getUrl(schema, host);
sendLog("url is " + url);
sendLog("httpdns 浣跨敤 寮傛瀽api");
sendLog("鎸囧畾瑙瀽ip绫诲瀷涓? + requestIpType.name());
networkRequest.updateHttpDnsConfig(true, requestIpType);
try {
String response = networkRequest.httpGet(url);
if (response != null && response.length() > 30) {
response = response.trim();
if (response.length() > 30) {
response = response.substring(0, 30) + "...";
}
}
sendLog("璇锋眰缁撴潫 response is " + response + " 瀹屾暣璁板綍璇风湅logcat鏃ュ織");
} catch (Exception e) {
e.printStackTrace();
sendLog("璇锋眰缁撴潫 鍙戠敓寮傚父 " + e.getClass().getName() + e.getMessage() + " 瀹屾暣璁板綍璇风湅logcat鏃ュ織");
}
}
}), "鍚屾瑙f瀽", v -> worker.execute(() -> {
sendLog("寮€濮嬪彂璧风綉缁滆姹?);
sendLog("缃戠粶瀹炵幇鏂瑰紡涓? + (networkRequest == httpUrlConnectionRequest ? "HttpUrlConnection" : "okhttp"));
String url = getUrl(schema, host);
sendLog("url is " + url);
sendLog("httpdns 浣跨敤 鍚屾瑙瀽api");
sendLog("鎸囧畾瑙瀽ip绫诲瀷涓? + requestIpType.name());
networkRequest.updateHttpDnsConfig(false, requestIpType);
try {
String response = networkRequest.httpGet(url);
if (response != null && response.length() > 30) {
response = response.substring(0, 30) + "...";
}
sendLog("璇锋眰缁撴潫 response is " + response + " 瀹屾暣璁板綍璇风湅logcat鏃ュ織");
} catch (Exception e) {
e.printStackTrace();
sendLog("璇锋眰缁撴潫 鍙戠敓寮傚父 " + e.getClass().getName() + e.getMessage() + " 瀹屾暣璁板綍璇风湅logcat鏃ュ織");
}
}));
addThreeButton("鍙戣捣棰勮В鏋?, v -> worker.execute(() -> {
ArrayList<String> tmp = new ArrayList<>();
Collections.addAll(tmp, hosts);
MyApp.getInstance().getService().setPreResolveHosts(tmp, requestIpType);
sendLog("宸插彂璧烽瑙f瀽璇锋眰");
}), "璺宠浆SDNS娴嬭瘯鐣岄潰",
v -> startActivity(new Intent(HttpDnsActivity.this, SDNSActivity.class)), "璺宠浆Webview娴嬭瘯鐣岄潰", new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(HttpDnsActivity.this, WebViewActivity.class));
}
});
final String[] validHosts = new String[]{
"www.Aliyun.com",
"www.taobao.com"
};
addTwoButton("骞跺彂寮傛璇锋眰", v -> {
ThreadUtil.multiThreadTest(validHosts, 100, 20, 10 * 60 * 1000, true, requestIpType);
sendLog("寮傛api骞跺彂娴嬭瘯寮€濮嬶紝澶х害鑰楁椂10鍒嗛挓锛岃鏈€鍚庢煡鐪媗ogcat鏃ュ織锛岀璁ょ粨鏋滐紝寤鸿鍏抽棴httpdns鏃ュ織锛岄伩鍏嶆棩蹇楅噺杩囧ぇ");
}, "骞跺彂鍚屾璇锋眰", v -> {
ThreadUtil.multiThreadTest(validHosts, 100, 20, 10 * 60 * 1000, false, requestIpType);
sendLog("鍚屾api骞跺彂娴嬭瘯寮€濮嬶紝澶х害鑰楁椂10鍒嗛挓锛岃鏈€鍚庢煡鐪媗ogcat鏃ュ織锛岀璁ょ粨鏋滐紝寤鸿鍏抽棴httpdns鏃ュ織锛岄伩鍏嶆棩蹇楅噺杩囧ぇ");
});
}
}

View File

@@ -1,133 +0,0 @@
package com.aliyun.ams.httpdns.demo;
import android.os.Bundle;
import android.view.View;
import android.widget.AutoCompleteTextView;
import android.widget.EditText;
import com.alibaba.sdk.android.httpdns.HTTPDNSResult;
import com.alibaba.sdk.android.httpdns.RequestIpType;
import com.aliyun.ams.httpdns.demo.base.BaseActivity;
import java.util.HashMap;
import static com.aliyun.ams.httpdns.demo.HttpDnsActivity.Aliyun_URL;
public class SDNSActivity extends BaseActivity {
private final HashMap<String, String> globalParams = new HashMap<>();
/**
* 瑕佽姹傜殑鍩熷悕
*/
private String host = HttpDnsActivity.Aliyun_URL;
/**
* 瑕佽В鏋愮殑ip绫诲瀷
*/
private RequestIpType requestIpType = RequestIpType.v4;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addEditTextEditTextButton("key", "value", "娣诲姞鍏ㄥ眬閰嶇疆", new OnButtonClickMoreView() {
@Override
public void onBtnClick(View[] views) {
EditText etOne = (EditText) views[0];
EditText etTwo = (EditText) views[1];
String key = etOne.getEditableText().toString();
String value = etTwo.getEditableText().toString();
globalParams.put(key, value);
// 娉ㄦ剰锛歋DNS鍏ㄥ眬鍙傛暟鐜板湪闇€瑕侀€氳繃InitConfig璁剧疆锛岄噸鍚簲鐢ㄧ敓鏁?
sendLog("娣诲姞鍏ㄥ眬鍙傛暟 " + key + " : " + value);
}
});
addOneButton("娓呴櫎鍏ㄥ眬閰嶇疆", new View.OnClickListener() {
@Override
public void onClick(View v) {
globalParams.clear();
// 娉ㄦ剰锛歋DNS鍏ㄥ眬鍙傛暟鐜板湪闇€瑕侀€氳繃InitConfig璁剧疆锛岄噸鍚簲鐢ㄧ敓鏁?
sendLog("娓呴櫎鍏ㄥ眬鍙傛暟");
}
});
addFourButton("鎸囧畾v4", new View.OnClickListener() {
@Override
public void onClick(View v) {
requestIpType = RequestIpType.v4;
sendLog("瑕佽В鏋愮殑IP绫诲瀷鎸囧畾涓篿pv4");
}
}, "鎸囧畾v6", new View.OnClickListener() {
@Override
public void onClick(View v) {
requestIpType = RequestIpType.v6;
sendLog("瑕佽В鏋愮殑IP绫诲瀷鎸囧畾涓篿pv6");
}
}, "閮借В鏋?, new View.OnClickListener() {
@Override
public void onClick(View v) {
requestIpType = RequestIpType.both;
sendLog("瑕佽В鏋愮殑IP绫诲瀷鎸囧畾涓篿pv4鍜宨pv6");
}
}, "姩鍒ゆ柇", new View.OnClickListener() {
@Override
public void onClick(View v) {
requestIpType = RequestIpType.auto;
sendLog("瑕佽В鏋愮殑IP绫诲瀷鏍规嵁缃戠粶鎯呭喌鑷姩鍒ゆ柇");
}
});
addAutoCompleteTextViewButton(HttpDnsActivity.hosts, "鍩熷悕", "鎸囧畾瑕佽В鏋愮殑鍩熷悕", new OnButtonClick() {
@Override
public void onBtnClick(View view) {
AutoCompleteTextView actvOne = (AutoCompleteTextView) view;
host = actvOne.getEditableText().toString();
sendLog("瑕佽В鏋愮殑鍩熷悕" + host);
}
});
addEditTextEditTextButton("key", "value", "鍙戣捣璇锋眰", new OnButtonClickMoreView() {
@Override
public void onBtnClick(View[] views) {
EditText etOne = (EditText) views[0];
EditText etTwo = (EditText) views[1];
String key = etOne.getEditableText().toString();
String value = etTwo.getEditableText().toString();
HashMap<String, String> map = new HashMap<>();
map.put(key, value);
sendLog("鍙戣捣SDNS璇锋眰 requestIpType is " + requestIpType.name());
HTTPDNSResult result = MyApp.getInstance().getService().getIpsByHostAsync(host, requestIpType, map, "娴嬭瘯SDNS");
sendLog("缁撴灉 " + result);
}
});
addTwoButton("scale1鍙傛暟璇锋眰", new View.OnClickListener() {
@Override
public void onClick(View v) {
HashMap<String, String> map = new HashMap<>();
map.put("scale", "scale1");
sendLog("鍙戣捣SDNS璇锋眰 requestIpType is " + requestIpType.name() + " scale : scale1");
HTTPDNSResult result = MyApp.getInstance().getService().getIpsByHostAsync(host, requestIpType, map, "娴嬭瘯1");
sendLog("缁撴灉 " + result);
}
}, "scale2鍙傛暟璇锋眰", new View.OnClickListener() {
@Override
public void onClick(View v) {
HashMap<String, String> map = new HashMap<>();
map.put("scale", "scale2");
sendLog("鍙戣捣SDNS璇锋眰 requestIpType is " + requestIpType.name() + " scale : scale2");
HTTPDNSResult result = MyApp.getInstance().getService().getIpsByHostAsync(host, requestIpType, map, "娴嬭瘯2");
sendLog("缁撴灉 " + result);
}
});
}
}

View File

@@ -1,128 +0,0 @@
package com.aliyun.ams.httpdns.demo.utils;
import android.util.Log;
import com.alibaba.sdk.android.httpdns.HTTPDNSResult;
import com.alibaba.sdk.android.httpdns.RequestIpType;
import com.alibaba.sdk.android.httpdns.SyncService;
import com.aliyun.ams.httpdns.demo.MyApp;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Random;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ThreadUtil {
public static void multiThreadTest(final String[] validHosts, final int hostCount,
final int threadCount, final int executeTime,
final boolean async, final RequestIpType type) {
int validCount = validHosts.length;
if (validCount > hostCount) {
validCount = hostCount;
}
final int tmpValidCount = validCount;
Log.d(MyApp.TAG,
threadCount + "绾跨▼骞跺彂锛屾墽琛? + executeTime + ", 鎬诲煙鍚? + hostCount + "涓紝鏈夋晥"
+ validCount + "涓?);
new Thread(new Runnable() {
@Override
public void run() {
final ArrayList<String> hosts = new ArrayList<>(hostCount);
for (int i = 0; i < hostCount - tmpValidCount; i++) {
hosts.add("test" + i + ".Aliyun.com");
}
hosts.addAll(Arrays.asList(validHosts).subList(0, tmpValidCount));
final CountDownLatch testLatch = new CountDownLatch(threadCount);
ExecutorService service = Executors.newFixedThreadPool(threadCount);
final CountDownLatch countDownLatch = new CountDownLatch(threadCount);
for (int i = 0; i < threadCount; i++) {
service.execute(new Runnable() {
@Override
public void run() {
countDownLatch.countDown();
try {
countDownLatch.await();
} catch (InterruptedException e) {
e.printStackTrace();
}
Random random = new Random(Thread.currentThread().getId());
int allRequestCount = 0;
int slowRequestCount = 0;
int emptyResponseCount = 0;
long maxSlowRequestTime = 0;
long subSlowRequestTime = 0;
int taobaoCount = 0;
int taobaoSuccessCount = 0;
long firstTaobaoTime = 0;
long firstTaobaoSuccessTime = 0;
long begin = System.currentTimeMillis();
while (System.currentTimeMillis() - begin < executeTime) {
String host = hosts.get(random.nextInt(hostCount));
long startRequestTime = System.currentTimeMillis();
HTTPDNSResult ips = null;
if (async) {
ips = MyApp.getInstance().getService().getIpsByHostAsync(host,
type);
} else {
ips =
((SyncService)MyApp.getInstance().getService()).getByHost(
host, type);
}
long endRequestTime = System.currentTimeMillis();
if (host.equals("www.taobao.com")) {
if (taobaoCount == 0) {
firstTaobaoTime = System.currentTimeMillis();
}
taobaoCount++;
if (ips.getIps() != null && ips.getIps().length > 0) {
if (taobaoSuccessCount == 0) {
firstTaobaoSuccessTime = System.currentTimeMillis();
}
taobaoSuccessCount++;
}
}
if (endRequestTime - startRequestTime > 100) {
slowRequestCount++;
subSlowRequestTime += endRequestTime - startRequestTime;
if (maxSlowRequestTime < endRequestTime - startRequestTime) {
maxSlowRequestTime = endRequestTime - startRequestTime;
}
}
if (ips == null || ips.getIps() == null
|| ips.getIps().length == 0) {
emptyResponseCount++;
}
allRequestCount++;
}
String msg = Thread.currentThread().getId() + " allRequestCount: "
+ allRequestCount + ", slowRequestCount: " + slowRequestCount
+ ", emptyResponseCount: " + emptyResponseCount
+ ", maxSlowRequestTime : " + maxSlowRequestTime
+ ", avgSlowRequestTime: " + (slowRequestCount == 0 ? 0
: subSlowRequestTime / slowRequestCount)
+ ", taoRequestCount: " + taobaoCount + ", "
+ "taoSuccessRequestCount: "
+ taobaoSuccessCount + ", firstTaoRequestTime: " + (firstTaobaoTime
- begin) + ", firstSuccessTaoRequestTime: " + (
firstTaobaoSuccessTime - begin);
Log.w(MyApp.TAG, "asyncMulti " + msg);
testLatch.countDown();
}
});
}
try {
testLatch.await();
} catch (InterruptedException e) {
}
}
}).start();
}
}

View File

@@ -0,0 +1,159 @@
package com.newsdk.ams.httpdns.demo;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AutoCompleteTextView;
import com.newsdk.sdk.android.httpdns.RequestIpType;
import com.newsdk.ams.httpdns.demo.base.BaseActivity;
import com.newsdk.ams.httpdns.demo.http.HttpUrlConnectionRequest;
import com.newsdk.ams.httpdns.demo.okhttp.OkHttpRequest;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class HttpDnsActivity extends BaseActivity {
private static final String SCHEMA_HTTPS = "https://";
private static final String SCHEMA_HTTP = "http://";
private static final String[] HOSTS = new String[] {
"www.taobao.com",
"www.Aliyun.com"
};
private String schema = SCHEMA_HTTPS;
private String host = HOSTS[0];
private RequestIpType requestIpType = RequestIpType.v4;
private HttpUrlConnectionRequest httpUrlConnectionRequest;
private OkHttpRequest okHttpRequest;
private NetworkRequest networkRequest;
private final ExecutorService worker = Executors.newSingleThreadExecutor();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
httpUrlConnectionRequest = new HttpUrlConnectionRequest(this);
okHttpRequest = new OkHttpRequest(this);
networkRequest = httpUrlConnectionRequest;
addFourButton(
"Switch instance",
v -> {
MyApp.getInstance().changeHolder();
sendLog("Instance switched.");
},
"Show config",
v -> sendLog(MyApp.getInstance().getCurrentHolder().getCurrentConfig()),
"Clear holder cache",
v -> {
MyApp.getInstance().getCurrentHolder().cleanSp();
sendLog("Holder cache cleared.");
},
"Clear log",
v -> cleanLog()
);
addAutoCompleteTextViewButton(HOSTS, "Host", "Set host", view -> {
AutoCompleteTextView actv = (AutoCompleteTextView) view;
host = actv.getEditableText().toString();
sendLog("Host set to: " + host);
});
addTwoButton(
"Use HTTPS",
v -> {
schema = SCHEMA_HTTPS;
sendLog("Schema set to HTTPS.");
},
"Use HTTP",
v -> {
schema = SCHEMA_HTTP;
sendLog("Schema set to HTTP.");
}
);
addFourButton(
"IP type v4",
v -> {
requestIpType = RequestIpType.v4;
sendLog("Request IP type: v4");
},
"IP type v6",
v -> {
requestIpType = RequestIpType.v6;
sendLog("Request IP type: v6");
},
"IP type both",
v -> {
requestIpType = RequestIpType.both;
sendLog("Request IP type: both");
},
"IP type auto",
v -> {
requestIpType = RequestIpType.auto;
sendLog("Request IP type: auto");
}
);
addTwoButton(
"HttpUrlConnection",
v -> {
networkRequest = httpUrlConnectionRequest;
sendLog("Network stack: HttpUrlConnection");
},
"OkHttp",
v -> {
networkRequest = okHttpRequest;
sendLog("Network stack: OkHttp");
}
);
addTwoButton(
"Resolve sync",
v -> worker.execute(() -> executeResolve(false)),
"Resolve async",
v -> worker.execute(() -> executeResolve(true))
);
addTwoButton(
"Open SDNS page",
v -> startActivity(new Intent(HttpDnsActivity.this, SDNSActivity.class)),
"Open WebView page",
new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(HttpDnsActivity.this, WebViewActivity.class));
}
}
);
}
@Override
protected void onDestroy() {
super.onDestroy();
worker.shutdownNow();
}
private void executeResolve(boolean async) {
String url = schema + host;
sendLog("Request URL: " + url);
sendLog("Request IP type: " + requestIpType.name());
sendLog("Async mode: " + async);
sendLog("Stack: " + (networkRequest == httpUrlConnectionRequest ? "HttpUrlConnection" : "OkHttp"));
try {
networkRequest.updateHttpDnsConfig(async, requestIpType);
String response = networkRequest.httpGet(url);
if (response != null && response.length() > 120) {
response = response.substring(0, 120) + "...";
}
sendLog("Response: " + response);
} catch (Exception e) {
sendLog("Request failed: " + e.getClass().getSimpleName() + " " + e.getMessage());
}
}
}

View File

@@ -1,15 +1,15 @@
package com.aliyun.ams.httpdns.demo;
package com.newsdk.ams.httpdns.demo;
import android.content.Context;
import android.content.SharedPreferences;
import com.alibaba.sdk.android.httpdns.CacheTtlChanger;
import com.alibaba.sdk.android.httpdns.HttpDns;
import com.alibaba.sdk.android.httpdns.HttpDnsService;
import com.alibaba.sdk.android.httpdns.InitConfig;
import com.alibaba.sdk.android.httpdns.RequestIpType;
import com.alibaba.sdk.android.httpdns.ranking.IPRankingBean;
import com.aliyun.ams.httpdns.demo.utils.SpUtil;
import com.newsdk.sdk.android.httpdns.CacheTtlChanger;
import com.newsdk.sdk.android.httpdns.HttpDns;
import com.newsdk.sdk.android.httpdns.HttpDnsService;
import com.newsdk.sdk.android.httpdns.InitConfig;
import com.newsdk.sdk.android.httpdns.RequestIpType;
import com.newsdk.sdk.android.httpdns.ranking.IPRankingBean;
import com.newsdk.ams.httpdns.demo.utils.SpUtil;
import org.json.JSONArray;
import org.json.JSONException;

View File

@@ -1,13 +1,13 @@
package com.aliyun.ams.httpdns.demo;
package com.newsdk.ams.httpdns.demo;
import android.app.Application;
import android.content.SharedPreferences;
import android.util.Log;
import com.alibaba.sdk.android.httpdns.HttpDnsService;
import com.alibaba.sdk.android.httpdns.ILogger;
import com.alibaba.sdk.android.httpdns.log.HttpDnsLog;
import com.aliyun.ams.httpdns.demo.utils.SpUtil;
import com.newsdk.sdk.android.httpdns.HttpDnsService;
import com.newsdk.sdk.android.httpdns.ILogger;
import com.newsdk.sdk.android.httpdns.log.HttpDnsLog;
import com.newsdk.ams.httpdns.demo.utils.SpUtil;
public class MyApp extends Application {

View File

@@ -1,6 +1,6 @@
package com.aliyun.ams.httpdns.demo;
package com.newsdk.ams.httpdns.demo;
import com.alibaba.sdk.android.httpdns.RequestIpType;
import com.newsdk.sdk.android.httpdns.RequestIpType;
public interface NetworkRequest {

View File

@@ -0,0 +1,126 @@
package com.newsdk.ams.httpdns.demo;
import android.os.Bundle;
import android.view.View;
import android.widget.AutoCompleteTextView;
import android.widget.EditText;
import com.newsdk.sdk.android.httpdns.HTTPDNSResult;
import com.newsdk.sdk.android.httpdns.RequestIpType;
import com.newsdk.ams.httpdns.demo.base.BaseActivity;
import java.util.HashMap;
public class SDNSActivity extends BaseActivity {
private static final String[] HOSTS = new String[] {
"www.Aliyun.com",
"www.taobao.com"
};
private final HashMap<String, String> globalParams = new HashMap<>();
private String host = HOSTS[0];
private RequestIpType requestIpType = RequestIpType.v4;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addEditTextEditTextButton("key", "value", "Add global param", new OnButtonClickMoreView() {
@Override
public void onBtnClick(View[] views) {
EditText keyView = (EditText) views[0];
EditText valueView = (EditText) views[1];
String key = keyView.getEditableText().toString();
String value = valueView.getEditableText().toString();
globalParams.put(key, value);
sendLog("Global param added: " + key + "=" + value);
}
});
addOneButton("Clear global params", new View.OnClickListener() {
@Override
public void onClick(View v) {
globalParams.clear();
sendLog("Global params cleared.");
}
});
addFourButton(
"IP type v4",
new View.OnClickListener() {
@Override
public void onClick(View v) {
requestIpType = RequestIpType.v4;
sendLog("Request IP type: v4");
}
},
"IP type v6",
new View.OnClickListener() {
@Override
public void onClick(View v) {
requestIpType = RequestIpType.v6;
sendLog("Request IP type: v6");
}
},
"IP type both",
new View.OnClickListener() {
@Override
public void onClick(View v) {
requestIpType = RequestIpType.both;
sendLog("Request IP type: both");
}
},
"IP type auto",
new View.OnClickListener() {
@Override
public void onClick(View v) {
requestIpType = RequestIpType.auto;
sendLog("Request IP type: auto");
}
}
);
addAutoCompleteTextViewButton(HOSTS, "Host", "Set host", new OnButtonClick() {
@Override
public void onBtnClick(View view) {
AutoCompleteTextView hostView = (AutoCompleteTextView) view;
host = hostView.getEditableText().toString();
sendLog("Host set to: " + host);
}
});
addEditTextEditTextButton("key", "value", "Resolve with param", new OnButtonClickMoreView() {
@Override
public void onBtnClick(View[] views) {
EditText keyView = (EditText) views[0];
EditText valueView = (EditText) views[1];
HashMap<String, String> params = new HashMap<>(globalParams);
params.put(keyView.getEditableText().toString(), valueView.getEditableText().toString());
HTTPDNSResult result = MyApp.getInstance().getService().getIpsByHostAsync(
host, requestIpType, params, "sdns-demo");
sendLog("SDNS result: " + result);
}
});
addTwoButton("Resolve scale1", new View.OnClickListener() {
@Override
public void onClick(View v) {
HashMap<String, String> params = new HashMap<>(globalParams);
params.put("scale", "scale1");
HTTPDNSResult result = MyApp.getInstance().getService().getIpsByHostAsync(
host, requestIpType, params, "sdns-demo");
sendLog("scale1 result: " + result);
}
}, "Resolve scale2", new View.OnClickListener() {
@Override
public void onClick(View v) {
HashMap<String, String> params = new HashMap<>(globalParams);
params.put("scale", "scale2");
HTTPDNSResult result = MyApp.getInstance().getService().getIpsByHostAsync(
host, requestIpType, params, "sdns-demo");
sendLog("scale2 result: " + result);
}
});
}
}

View File

@@ -1,4 +1,4 @@
package com.aliyun.ams.httpdns.demo;
package com.newsdk.ams.httpdns.demo;
import android.annotation.SuppressLint;
import android.app.Activity;

View File

@@ -1,4 +1,4 @@
package com.aliyun.ams.httpdns.demo.base;
package com.newsdk.ams.httpdns.demo.base;
import android.app.Activity;
import android.os.Bundle;
@@ -17,8 +17,8 @@ import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.widget.TextView;
import com.aliyun.ams.httpdns.demo.MyApp;
import com.aliyun.ams.httpdns.demo.R;
import com.newsdk.ams.httpdns.demo.MyApp;
import com.newsdk.ams.httpdns.demo.R;
public class BaseActivity extends Activity {

View File

@@ -1,4 +1,4 @@
package com.aliyun.ams.httpdns.demo.http;
package com.newsdk.ams.httpdns.demo.http;
import android.content.Context;
@@ -6,14 +6,14 @@ import android.net.SSLCertificateSocketFactory;
import android.os.Build;
import android.util.Log;
import com.alibaba.sdk.android.httpdns.HTTPDNSResult;
import com.alibaba.sdk.android.httpdns.NetType;
import com.alibaba.sdk.android.httpdns.RequestIpType;
import com.alibaba.sdk.android.httpdns.SyncService;
import com.alibaba.sdk.android.httpdns.net.HttpDnsNetworkDetector;
import com.aliyun.ams.httpdns.demo.MyApp;
import com.aliyun.ams.httpdns.demo.NetworkRequest;
import com.aliyun.ams.httpdns.demo.utils.Util;
import com.newsdk.sdk.android.httpdns.HTTPDNSResult;
import com.newsdk.sdk.android.httpdns.NetType;
import com.newsdk.sdk.android.httpdns.RequestIpType;
import com.newsdk.sdk.android.httpdns.SyncService;
import com.newsdk.sdk.android.httpdns.net.HttpDnsNetworkDetector;
import com.newsdk.ams.httpdns.demo.MyApp;
import com.newsdk.ams.httpdns.demo.NetworkRequest;
import com.newsdk.ams.httpdns.demo.utils.Util;
import java.io.BufferedReader;
import java.io.IOException;

View File

@@ -1,16 +1,16 @@
package com.aliyun.ams.httpdns.demo.okhttp;
package com.newsdk.ams.httpdns.demo.okhttp;
import android.content.Context;
import android.util.Log;
import com.alibaba.sdk.android.httpdns.HTTPDNSResult;
import com.alibaba.sdk.android.httpdns.NetType;
import com.alibaba.sdk.android.httpdns.RequestIpType;
import com.alibaba.sdk.android.httpdns.SyncService;
import com.alibaba.sdk.android.httpdns.net.HttpDnsNetworkDetector;
import com.aliyun.ams.httpdns.demo.MyApp;
import com.aliyun.ams.httpdns.demo.NetworkRequest;
import com.aliyun.ams.httpdns.demo.utils.Util;
import com.newsdk.sdk.android.httpdns.HTTPDNSResult;
import com.newsdk.sdk.android.httpdns.NetType;
import com.newsdk.sdk.android.httpdns.RequestIpType;
import com.newsdk.sdk.android.httpdns.SyncService;
import com.newsdk.sdk.android.httpdns.net.HttpDnsNetworkDetector;
import com.newsdk.ams.httpdns.demo.MyApp;
import com.newsdk.ams.httpdns.demo.NetworkRequest;
import com.newsdk.ams.httpdns.demo.utils.Util;
import java.net.HttpURLConnection;
import java.net.InetAddress;

View File

@@ -1,4 +1,4 @@
package com.aliyun.ams.httpdns.demo.utils;
package com.newsdk.ams.httpdns.demo.utils;
import android.content.Context;
import android.content.SharedPreferences;

View File

@@ -0,0 +1,94 @@
package com.newsdk.ams.httpdns.demo.utils;
import android.util.Log;
import com.newsdk.sdk.android.httpdns.HTTPDNSResult;
import com.newsdk.sdk.android.httpdns.RequestIpType;
import com.newsdk.sdk.android.httpdns.SyncService;
import com.newsdk.ams.httpdns.demo.MyApp;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Random;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ThreadUtil {
public static void multiThreadTest(
final String[] validHosts,
final int hostCount,
final int threadCount,
final int executeTime,
final boolean async,
final RequestIpType type
) {
new Thread(() -> runMultiThreadTest(validHosts, hostCount, threadCount, executeTime, async, type)).start();
}
private static void runMultiThreadTest(
String[] validHosts,
int hostCount,
int threadCount,
int executeTime,
boolean async,
RequestIpType type
) {
int validCount = Math.min(validHosts.length, hostCount);
Log.d(MyApp.TAG, "Start multiThreadTest, threads=" + threadCount
+ ", executeTimeMs=" + executeTime
+ ", hostCount=" + hostCount
+ ", validHostCount=" + validCount
+ ", async=" + async
+ ", ipType=" + type.name());
ArrayList<String> hosts = new ArrayList<>(hostCount);
for (int i = 0; i < hostCount - validCount; i++) {
hosts.add("test" + i + ".Aliyun.com");
}
hosts.addAll(Arrays.asList(validHosts).subList(0, validCount));
ExecutorService pool = Executors.newFixedThreadPool(threadCount);
CountDownLatch done = new CountDownLatch(threadCount);
for (int i = 0; i < threadCount; i++) {
pool.execute(() -> {
Random random = new Random(Thread.currentThread().getId());
long begin = System.currentTimeMillis();
int requestCount = 0;
int successCount = 0;
while (System.currentTimeMillis() - begin < executeTime) {
String host = hosts.get(random.nextInt(hosts.size()));
try {
HTTPDNSResult result;
if (async) {
result = MyApp.getInstance().getService().getIpsByHostAsync(host, type);
} else {
result = ((SyncService) MyApp.getInstance().getService()).getByHost(host, type);
}
if (result != null && result.getIps() != null && result.getIps().length > 0) {
successCount++;
}
} catch (Throwable t) {
Log.w(MyApp.TAG, "multiThreadTest request failed: " + t.getMessage());
}
requestCount++;
}
Log.w(MyApp.TAG, "multiThreadTest thread=" + Thread.currentThread().getId()
+ ", requestCount=" + requestCount
+ ", successCount=" + successCount);
done.countDown();
});
}
try {
done.await();
} catch (InterruptedException ignored) {
} finally {
pool.shutdownNow();
}
}
}

View File

@@ -1,6 +1,6 @@
package com.aliyun.ams.httpdns.demo.utils;
package com.newsdk.ams.httpdns.demo.utils;
import com.alibaba.sdk.android.httpdns.HTTPDNSResult;
import com.newsdk.sdk.android.httpdns.HTTPDNSResult;
import java.lang.reflect.Field;

View File

Before

Width:  |  Height:  |  Size: 9.1 KiB

After

Width:  |  Height:  |  Size: 9.1 KiB

View File

@@ -11,7 +11,7 @@
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/aliyun_bg" />
android:background="@drawable/new_bg" />
<ScrollView
android:id="@+id/logScrollView"

View File

@@ -1,31 +1,30 @@
<resources>
<string name="app_name">銆愰樋閲屼簯HttpDns銆慏emo绋嬪簭</string>
<resources>
<string name="app_name">閵嗘劙妯嬮柌灞肩隘HttpDns閵嗘厪emo缁嬪绨</string>
<string name="action_settings">Settings</string>
<string name="normal_parse">鏅€氳В鏋?/string>
<string name="request_taobao">瑙f瀽娣樺疂鍩熷悕</string>
<string name="request_apple">瀽apple鍩熷悕</string>
<string name="request_douban">瑙f瀽璞嗙摚鍩熷悕</string>
<string name="https_parse">HTTPS寮€鍏?/string>
<string name="timeout">璁剧疆瓒呮椂</string>
<string name="set_expired">鍏佽杩囨湡鍩熷悕</string>
<string name="set_cache">寮€鍚寔涔呭寲缂撳瓨</string>
<string name="set_degration_filter">闄嶇骇绛栫暐</string>
<string name="set_pre_resolve">棰勮В鏋?/string>
<string name="normal_parse">閺咁噣鈧俺袙閺</string>
<string name="request_taobao">鐟欙絾鐎藉ǎ妯虹杺閸╃喎鎮</string>
<string name="request_apple">鐟欙絾鐎絘pple閸╃喎鎮</string>
<string name="request_douban">鐟欙絾鐎界挒鍡欐憵閸╃喎鎮</string>
<string name="https_parse">HTTPS瀵偓閸</string>
<string name="timeout">鐠佸墽鐤嗙搾鍛</string>
<string name="set_expired">閸忎浇顔忔潻鍥ㄦ埂閸╃喎鎮</string>
<string name="set_cache">瀵偓閸氼垱瀵旀稊鍛缂傛挸鐡</string>
<string name="set_degration_filter">闂勫秶楠囩粵鏍殣</string>
<string name="set_pre_resolve">妫板嫯袙閺</string>
<string name="set_region">region</string>
<string name="sync_request">鍚屾瑙f瀽</string>
<string name="multi_sync_request">鍚屾瑙f瀽骞跺彂</string>
<string name="multi_request">骞跺彂瑙f瀽</string>
<string name="sync_request">閸氬本顒炵憴锝嗙€</string>
<string name="multi_sync_request">閸氬本顒炵憴锝嗙€介獮璺哄絺</string>
<string name="multi_request">楠炶泛褰傜憴锝嗙€</string>
<string name="main_about_us">鍏充簬鎴戜滑</string>
<string name="main_helper">甯姪涓績</string>
<string name="main_clear_text">娓呴櫎褰撳墠娑堟伅</string>
<string name="main_about_us">閸忓厖绨幋鎴滄粦</string>
<string name="main_helper">鐢喖濮稉顓炵妇</string>
<string name="main_clear_text">濞撳懘娅庤ぐ鎾冲濞戝牊浼</string>
<!--鍏充簬鎴戜滑椤甸潰-->
<string name="layout_aboutus_arr">All Rights Reserved.</string>
<string name="layout_aboutus_company">闃块噷浜?杞欢)鏈夐檺鍏徃鐗堟潈鎵€鏈?/string>
<string name="layout_aboutus_copyright">Copyright 2009 - 2016 Aliyun.com</string>
<string name="layout_aboutus_company">闂冨潡鍣锋禍?鏉烆垯娆?閺堝妾洪崗顒€寰冮悧鍫熸綀閹碘偓閺</string>
<string name="layout_aboutus_copyright">Copyright 婕?2009 - 2016 Aliyun.com</string>
<string name="layout_aboutus_app_version">1.1.3</string>
<!--甯姪涓績椤甸潰-->
<string name="layout_helpus_content">Q : 浠€涔堟槸鐢ㄦ埛浣撻獙Demo锛焅nA : 鐢ㄦ埛浣撻獙Demo灏辨槸闃块噷浜戝钩鍙颁负鎮ㄨ嚜鍔ㄥ垱寤虹殑銆佺敤鏉ヤ綋楠孒ttpDns鏈嶅姟鍜屽弽棣堝缓璁敤鐨勪竴涓皬Demo锛岃鎮ㄤ綋楠屼究鎹枫€侀珮鏁堢殑HttpDns鏈嶅姟銆俓n\nQ : 濡備綍鑱旂郴鎴戜滑锛焅nA : App Demo鐩稿叧闂锛岃鎼滅储閽夐拤缇ゅ彿锛?1777313</string>
<string name="layout_helpus_content">Q : 娴犫偓娑斿牊妲搁悽銊﹀煕娴捇鐛橠emo閿涚剠nA : 閻劍鍩涙担鎾荤崣Demo鐏忚鲸妲搁梼鍧楀櫡娴滄垵閽╅崣棰佽礋閹劏鍤滈崝銊ュ灡瀵よ櫣娈戦妴浣烘暏閺夈儰缍嬫瀛抰tpDns閺堝秴濮熼崪灞藉冀妫牆缂撶拋顔炬暏閻ㄥ嫪绔存稉顏勭毈Demo閿涘矁顔€閹劋缍嬫灞肩┒閹规灚鈧線鐝弫鍫㈡畱HttpDns閺堝秴濮熼妴淇搉\nQ : 婵″倷缍嶉懕鏃傞兇閹存垳婊戦敍鐒卬A : App Demo閻╃鍙ч梻顕€顣介敍宀冾嚞閹兼粎鍌ㄩ柦澶愭嫟缂囥倕褰块敍?1777313</string>
</resources>

View File

@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true">
<Alibaba-anchors>
<New-anchors>
<certificates src="system" />
</Alibaba-anchors>
</New-anchors>
</base-config>
</network-security-config>

View File

@@ -9,11 +9,11 @@ gradle.ext {
}
android {
namespace 'com.aliyun.ams.httpdns.demo'
namespace 'com.newsdk.ams.httpdns.demo'
compileSdk 34
defaultConfig {
applicationId "com.aliyun.ams.httpdns.demo"
applicationId "com.newsdk.ams.httpdns.demo"
minSdkVersion 26
targetSdkVersion 34
versionCode 1
@@ -111,18 +111,17 @@ dependencies {
implementation("com.squareup.okhttp3:okhttp:4.10.0")
implementation 'com.squareup.okhttp3:logging-interceptor:4.10.0'
// implementation project(path: ':httpdns-sdk')
implementation 'com.aliyun.ams:alicloud-android-httpdns:2.6.6'
implementation project(path: ':httpdns-sdk')
implementation('com.alibaba:fastjson:1.1.73.android@jar')
implementation('com.newsdk:fastjson:1.1.73.android@jar')
// implementation('com.emas.hybrid:emas-hybrid-android:1.1.0.4-public-SNAPSHOT') {
// exclude group: 'com.android.support', module: 'appcompat-v7'
// exclude group: 'com.taobao.android', module: 'thin_so_release'
// }
implementation 'com.aliyun.ams:alicloud-android-tool:1.1.0'
implementation 'com.newsdk.ams:new-android-tool:1.1.0'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
}

View File

@@ -19,4 +19,4 @@
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
-keep class com.alibaba.sdk.android.httpdns.**{*;}
-keep class com.newsdk.sdk.android.httpdns.**{*;}

View File

@@ -1,4 +1,4 @@
package com.alibaba.ams.emas.demo
package com.newsdk.ams.emas.demo
import android.support.test.InstrumentationRegistry
import android.support.test.runner.AndroidJUnit4
@@ -19,7 +19,7 @@ class ExampleInstrumentedTest {
fun useAppContext() {
// Context of the app under test.
val appContext = InstrumentationRegistry.getInstrumentation().targetContext
assertEquals("com.alibaba.ams.emas.demo", appContext.packageName)
assertEquals("com.newsdk.ams.emas.demo", appContext.packageName)
}
}

View File

@@ -6,7 +6,7 @@
<uses-permission android:name="android.permission.READ_BASIC_PHONE_STATE" />
<application
android:name="com.alibaba.ams.emas.demo.HttpDnsApplication"
android:name="com.newsdk.ams.emas.demo.HttpDnsApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
@@ -14,27 +14,27 @@
android:roundIcon="@mipmap/ic_launcher"
android:supportsRtl="true"
android:extractNativeLibs="true"
android:theme="@style/Theme.AlicloudHttpDnsDemo"
android:theme="@style/Theme.NewHttpDnsDemo"
android:usesCleartextTraffic="true">
<activity
android:name="com.alibaba.ams.emas.demo.ui.practice.HttpDnsWebviewGetActivity"
android:name="com.newsdk.ams.emas.demo.ui.practice.HttpDnsWebviewGetActivity"
android:exported="false"
android:theme="@style/Theme.AlicloudHttpDnsDemo.NoActionBar">
android:theme="@style/Theme.NewHttpDnsDemo.NoActionBar">
<meta-data
android:name="android.app.lib_name"
android:value="" />
</activity>
<activity
android:name="com.alibaba.ams.emas.demo.ui.info.list.ListActivity"
android:name="com.newsdk.ams.emas.demo.ui.info.list.ListActivity"
android:exported="false"
android:theme="@style/Theme.AlicloudHttpDnsDemo.NoActionBar">
android:theme="@style/Theme.NewHttpDnsDemo.NoActionBar">
<meta-data
android:name="android.app.lib_name"
android:value="" />
</activity>
<activity
android:name="com.alibaba.ams.emas.demo.MainActivity"
android:name="com.newsdk.ams.emas.demo.MainActivity"
android:exported="true"
android:label="@string/app_name">
<intent-filter>
@@ -47,9 +47,9 @@
android:name="android.app.lib_name"
android:value="" />
</activity>
<activity android:name="com.alibaba.ams.emas.demo.ui.info.SdnsGlobalSettingActivity"
<activity android:name="com.newsdk.ams.emas.demo.ui.info.SdnsGlobalSettingActivity"
android:exported="false"
android:theme="@style/Theme.AlicloudHttpDnsDemo.NoActionBar" >
android:theme="@style/Theme.NewHttpDnsDemo.NoActionBar" >
<meta-data
android:name="android.app.lib_name"
android:value="" />

View File

@@ -1,4 +1,4 @@
package com.alibaba.ams.emas.demo
package com.newsdk.ams.emas.demo
import org.json.JSONArray
import org.json.JSONException
import org.json.JSONObject

View File

@@ -1,4 +1,4 @@
package com.alibaba.ams.emas.demo
package com.newsdk.ams.emas.demo
import android.app.Application

View File

@@ -1,12 +1,12 @@
package com.alibaba.ams.emas.demo
package com.newsdk.ams.emas.demo
import android.content.Context
import android.text.TextUtils
import com.alibaba.ams.emas.demo.constant.KEY_ENABLE_AUTH_MODE
import com.alibaba.ams.emas.demo.constant.KEY_SECRET_KEY_SET_BY_CONFIG
import com.alibaba.sdk.android.httpdns.HttpDns
import com.alibaba.sdk.android.httpdns.HttpDnsService
import com.aliyun.ams.httpdns.demo.BuildConfig
import com.newsdk.ams.emas.demo.constant.KEY_ENABLE_AUTH_MODE
import com.newsdk.ams.emas.demo.constant.KEY_SECRET_KEY_SET_BY_CONFIG
import com.newsdk.sdk.android.httpdns.HttpDns
import com.newsdk.sdk.android.httpdns.HttpDnsService
import com.newsdk.ams.httpdns.demo.BuildConfig
/**
* @author allen.wy

View File

@@ -1,4 +1,4 @@
package com.alibaba.ams.emas.demo
package com.newsdk.ams.emas.demo
import android.os.Bundle
import android.widget.Toast
@@ -6,8 +6,8 @@ import androidx.appcompat.app.AppCompatActivity
import androidx.navigation.findNavController
import androidx.navigation.ui.AppBarConfiguration
import androidx.navigation.ui.setupActionBarWithNavController
import com.aliyun.ams.httpdns.demo.R
import com.aliyun.ams.httpdns.demo.databinding.ActivityMainBinding
import com.newsdk.ams.httpdns.demo.R
import com.newsdk.ams.httpdns.demo.databinding.ActivityMainBinding
import com.google.android.material.bottomnavigation.BottomNavigationView
class MainActivity : AppCompatActivity() {

View File

@@ -1,4 +1,4 @@
package com.alibaba.ams.emas.demo
package com.newsdk.ams.emas.demo
import org.json.JSONArray
import org.json.JSONException

View File

@@ -1,4 +1,4 @@
package com.alibaba.ams.emas.demo
package com.newsdk.ams.emas.demo
import android.util.Log
import androidx.annotation.MainThread

View File

@@ -1,6 +1,6 @@
package com.alibaba.ams.emas.demo
package com.newsdk.ams.emas.demo
import com.alibaba.sdk.android.httpdns.CacheTtlChanger
import com.newsdk.sdk.android.httpdns.CacheTtlChanger
import org.json.JSONException
import org.json.JSONObject

View File

@@ -1,9 +1,9 @@
package com.alibaba.ams.emas.demo
package com.newsdk.ams.emas.demo
import android.content.Context
import android.content.SharedPreferences
import com.alibaba.sdk.android.httpdns.ranking.IPRankingBean
import com.aliyun.ams.httpdns.demo.BuildConfig
import com.newsdk.sdk.android.httpdns.ranking.IPRankingBean
import com.newsdk.ams.httpdns.demo.BuildConfig
import org.json.JSONArray
import org.json.JSONException
import org.json.JSONObject
@@ -113,7 +113,7 @@ fun String?.toBlackList(): MutableList<String>? {
fun getAccountPreference(context: Context): SharedPreferences {
return context.getSharedPreferences(
"Aliyun_httpdns_${BuildConfig.ACCOUNT_ID}",
"New_httpdns_${BuildConfig.ACCOUNT_ID}",
Context.MODE_PRIVATE
)
}

View File

@@ -1,4 +1,4 @@
package com.alibaba.ams.emas.demo.constant
package com.newsdk.ams.emas.demo.constant
/**
* @author allen.wy

View File

@@ -1,15 +1,15 @@
package com.alibaba.ams.emas.demo.net
package com.newsdk.ams.emas.demo.net
import android.content.Context
import android.util.Log
import com.alibaba.ams.emas.demo.HttpDnsServiceHolder
import com.alibaba.ams.emas.demo.readStringFrom
import com.alibaba.ams.emas.demo.ui.resolve.Response
import com.alibaba.sdk.android.httpdns.HTTPDNSResult
import com.alibaba.sdk.android.httpdns.HttpDnsCallback
import com.alibaba.sdk.android.httpdns.NetType
import com.alibaba.sdk.android.httpdns.RequestIpType
import com.alibaba.sdk.android.httpdns.net.HttpDnsNetworkDetector
import com.newsdk.ams.emas.demo.HttpDnsServiceHolder
import com.newsdk.ams.emas.demo.readStringFrom
import com.newsdk.ams.emas.demo.ui.resolve.Response
import com.newsdk.sdk.android.httpdns.HTTPDNSResult
import com.newsdk.sdk.android.httpdns.HttpDnsCallback
import com.newsdk.sdk.android.httpdns.NetType
import com.newsdk.sdk.android.httpdns.RequestIpType
import com.newsdk.sdk.android.httpdns.net.HttpDnsNetworkDetector
import java.io.BufferedReader
import java.io.InputStream
import java.io.InputStreamReader

View File

@@ -1,6 +1,6 @@
package com.alibaba.ams.emas.demo.net
package com.newsdk.ams.emas.demo.net
import com.alibaba.ams.emas.demo.ui.resolve.Response
import com.newsdk.ams.emas.demo.ui.resolve.Response
/**
* @author allen.wy

View File

@@ -1,13 +1,13 @@
package com.alibaba.ams.emas.demo.net
package com.newsdk.ams.emas.demo.net
import android.content.Context
import android.util.Log
import com.alibaba.ams.emas.demo.HttpDnsServiceHolder
import com.alibaba.sdk.android.httpdns.HTTPDNSResult
import com.alibaba.sdk.android.httpdns.HttpDnsCallback
import com.alibaba.sdk.android.httpdns.NetType
import com.alibaba.sdk.android.httpdns.RequestIpType
import com.alibaba.sdk.android.httpdns.net.HttpDnsNetworkDetector
import com.newsdk.ams.emas.demo.HttpDnsServiceHolder
import com.newsdk.sdk.android.httpdns.HTTPDNSResult
import com.newsdk.sdk.android.httpdns.HttpDnsCallback
import com.newsdk.sdk.android.httpdns.NetType
import com.newsdk.sdk.android.httpdns.RequestIpType
import com.newsdk.sdk.android.httpdns.net.HttpDnsNetworkDetector
import okhttp3.ConnectionPool
import okhttp3.Dns
import okhttp3.OkHttpClient

View File

@@ -1,4 +1,4 @@
package com.alibaba.ams.emas.demo.net
package com.newsdk.ams.emas.demo.net
import android.util.Log
import okhttp3.logging.HttpLoggingInterceptor

View File

@@ -1,8 +1,8 @@
package com.alibaba.ams.emas.demo.net
package com.newsdk.ams.emas.demo.net
import android.content.Context
import com.alibaba.ams.emas.demo.ui.resolve.Response
import com.alibaba.sdk.android.httpdns.RequestIpType
import com.newsdk.ams.emas.demo.ui.resolve.Response
import com.newsdk.sdk.android.httpdns.RequestIpType
/**
* @author allen.wy

View File

@@ -1,4 +1,4 @@
package com.alibaba.ams.emas.demo.net
package com.newsdk.ams.emas.demo.net
import android.net.SSLCertificateSocketFactory
import android.os.Build

View File

@@ -1,4 +1,4 @@
package com.alibaba.ams.emas.demo.ui.basic
package com.newsdk.ams.emas.demo.ui.basic
import android.content.Intent
import android.os.Bundle
@@ -11,12 +11,12 @@ import androidx.appcompat.app.AlertDialog
import androidx.appcompat.widget.AppCompatEditText
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import com.alibaba.ams.emas.demo.constant.KEY_REGION
import com.alibaba.ams.emas.demo.getAccountPreference
import com.alibaba.ams.emas.demo.ui.info.list.ListActivity
import com.alibaba.ams.emas.demo.ui.info.list.kListItemTag
import com.aliyun.ams.httpdns.demo.R
import com.aliyun.ams.httpdns.demo.databinding.FragmentBasicSettingBinding
import com.newsdk.ams.emas.demo.constant.KEY_REGION
import com.newsdk.ams.emas.demo.getAccountPreference
import com.newsdk.ams.emas.demo.ui.info.list.ListActivity
import com.newsdk.ams.emas.demo.ui.info.list.kListItemTag
import com.newsdk.ams.httpdns.demo.R
import com.newsdk.ams.httpdns.demo.databinding.FragmentBasicSettingBinding
class BasicSettingFragment : Fragment(), IBasicShowDialog {

View File

@@ -1,4 +1,4 @@
package com.alibaba.ams.emas.demo.ui.basic
package com.newsdk.ams.emas.demo.ui.basic
import android.app.Application
import android.text.TextUtils
@@ -6,16 +6,16 @@ import android.util.Log
import android.widget.CompoundButton
import android.widget.Toast
import androidx.lifecycle.AndroidViewModel
import com.alibaba.ams.emas.demo.*
import com.alibaba.ams.emas.demo.constant.*
import com.alibaba.sdk.android.httpdns.HttpDns
import com.alibaba.sdk.android.httpdns.HttpDnsService
import com.alibaba.sdk.android.httpdns.InitConfig
import com.alibaba.sdk.android.httpdns.NotUseHttpDnsFilter
import com.alibaba.sdk.android.httpdns.RequestIpType
import com.alibaba.sdk.android.httpdns.log.HttpDnsLog
import com.aliyun.ams.httpdns.demo.BuildConfig
import com.aliyun.ams.httpdns.demo.R
import com.newsdk.ams.emas.demo.*
import com.newsdk.ams.emas.demo.constant.*
import com.newsdk.sdk.android.httpdns.HttpDns
import com.newsdk.sdk.android.httpdns.HttpDnsService
import com.newsdk.sdk.android.httpdns.InitConfig
import com.newsdk.sdk.android.httpdns.NotUseHttpDnsFilter
import com.newsdk.sdk.android.httpdns.RequestIpType
import com.newsdk.sdk.android.httpdns.log.HttpDnsLog
import com.newsdk.ams.httpdns.demo.BuildConfig
import com.newsdk.ams.httpdns.demo.R
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch

View File

@@ -1,4 +1,4 @@
package com.alibaba.ams.emas.demo.ui.basic
package com.newsdk.ams.emas.demo.ui.basic
/**
* @author allen.wy

View File

@@ -1,4 +1,4 @@
package com.alibaba.ams.emas.demo.ui.info
package com.newsdk.ams.emas.demo.ui.info
import android.content.Intent
import android.os.Bundle
@@ -8,9 +8,9 @@ import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import com.alibaba.ams.emas.demo.ui.info.list.*
import com.aliyun.ams.httpdns.demo.BuildConfig
import com.aliyun.ams.httpdns.demo.databinding.FragmentInfoBinding
import com.newsdk.ams.emas.demo.ui.info.list.*
import com.newsdk.ams.httpdns.demo.BuildConfig
import com.newsdk.ams.httpdns.demo.databinding.FragmentInfoBinding
class InfoFragment : Fragment() {

View File

@@ -1,16 +1,16 @@
package com.alibaba.ams.emas.demo.ui.info
package com.newsdk.ams.emas.demo.ui.info
import android.app.Application
import android.widget.Toast
import androidx.lifecycle.AndroidViewModel
import com.alibaba.ams.emas.demo.HttpDnsApplication
import com.alibaba.ams.emas.demo.HttpDnsServiceHolder
import com.alibaba.ams.emas.demo.SingleLiveData
import com.alibaba.ams.emas.demo.getAccountPreference
import com.alibaba.sdk.android.httpdns.NetType
import com.alibaba.sdk.android.httpdns.net.HttpDnsNetworkDetector
import com.aliyun.ams.httpdns.demo.BuildConfig
import com.aliyun.ams.httpdns.demo.R
import com.newsdk.ams.emas.demo.HttpDnsApplication
import com.newsdk.ams.emas.demo.HttpDnsServiceHolder
import com.newsdk.ams.emas.demo.SingleLiveData
import com.newsdk.ams.emas.demo.getAccountPreference
import com.newsdk.sdk.android.httpdns.NetType
import com.newsdk.sdk.android.httpdns.net.HttpDnsNetworkDetector
import com.newsdk.ams.httpdns.demo.BuildConfig
import com.newsdk.ams.httpdns.demo.R
class InfoViewModel(application: Application) : AndroidViewModel(application) {

View File

@@ -1,12 +1,12 @@
package com.alibaba.ams.emas.demo.ui.info
package com.newsdk.ams.emas.demo.ui.info
import android.os.Bundle
import android.text.TextUtils
import androidx.appcompat.app.AppCompatActivity
import com.alibaba.ams.emas.demo.constant.KEY_SDNS_GLOBAL_PARAMS
import com.alibaba.ams.emas.demo.getAccountPreference
import com.aliyun.ams.httpdns.demo.R
import com.aliyun.ams.httpdns.demo.databinding.ActivitySdnsGlobalSettingBinding
import com.newsdk.ams.emas.demo.constant.KEY_SDNS_GLOBAL_PARAMS
import com.newsdk.ams.emas.demo.getAccountPreference
import com.newsdk.ams.httpdns.demo.R
import com.newsdk.ams.httpdns.demo.databinding.ActivitySdnsGlobalSettingBinding
import org.json.JSONException
import org.json.JSONObject

View File

@@ -1,4 +1,4 @@
package com.alibaba.ams.emas.demo.ui.info.list
package com.newsdk.ams.emas.demo.ui.info.list
import android.content.Context
import android.os.Bundle
@@ -16,8 +16,8 @@ import androidx.appcompat.widget.AppCompatEditText
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.aliyun.ams.httpdns.demo.R
import com.aliyun.ams.httpdns.demo.databinding.ActivityListBinding
import com.newsdk.ams.httpdns.demo.R
import com.newsdk.ams.httpdns.demo.databinding.ActivityListBinding
class ListActivity : AppCompatActivity(), ListAdapter.OnDeleteListener {

View File

@@ -1,12 +1,12 @@
package com.alibaba.ams.emas.demo.ui.info.list
package com.newsdk.ams.emas.demo.ui.info.list
import android.content.Context
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import com.aliyun.ams.httpdns.demo.R
import com.aliyun.ams.httpdns.demo.databinding.InfoListItemBinding;
import com.newsdk.ams.httpdns.demo.R
import com.newsdk.ams.httpdns.demo.databinding.InfoListItemBinding;
/**
* @author allen.wy

View File

@@ -1,4 +1,4 @@
package com.alibaba.ams.emas.demo.ui.info.list
package com.newsdk.ams.emas.demo.ui.info.list
/**
* @author allen.wy

View File

@@ -1,4 +1,4 @@
package com.alibaba.ams.emas.demo.ui.info.list
package com.newsdk.ams.emas.demo.ui.info.list
/**
* @author allen.wy

View File

@@ -1,21 +1,21 @@
package com.alibaba.ams.emas.demo.ui.info.list
package com.newsdk.ams.emas.demo.ui.info.list
import android.app.Application
import android.content.SharedPreferences
import android.widget.Toast
import androidx.lifecycle.AndroidViewModel
import androidx.lifecycle.viewModelScope
import com.alibaba.ams.emas.demo.*
import com.alibaba.ams.emas.demo.TtlCacheHolder.toJsonString
import com.alibaba.ams.emas.demo.constant.KEY_BATCH_RESOLVE_HOST_LIST
import com.alibaba.ams.emas.demo.constant.KEY_HOST_BLACK_LIST
import com.alibaba.ams.emas.demo.constant.KEY_HOST_WITH_FIXED_IP
import com.alibaba.ams.emas.demo.constant.KEY_IP_RANKING_ITEMS
import com.alibaba.ams.emas.demo.constant.KEY_PRE_RESOLVE_HOST_LIST
import com.alibaba.ams.emas.demo.constant.KEY_TAGS
import com.alibaba.ams.emas.demo.constant.KEY_TTL_CHANGER
import com.alibaba.sdk.android.httpdns.ranking.IPRankingBean
import com.aliyun.ams.httpdns.demo.R
import com.newsdk.ams.emas.demo.*
import com.newsdk.ams.emas.demo.TtlCacheHolder.toJsonString
import com.newsdk.ams.emas.demo.constant.KEY_BATCH_RESOLVE_HOST_LIST
import com.newsdk.ams.emas.demo.constant.KEY_HOST_BLACK_LIST
import com.newsdk.ams.emas.demo.constant.KEY_HOST_WITH_FIXED_IP
import com.newsdk.ams.emas.demo.constant.KEY_IP_RANKING_ITEMS
import com.newsdk.ams.emas.demo.constant.KEY_PRE_RESOLVE_HOST_LIST
import com.newsdk.ams.emas.demo.constant.KEY_TAGS
import com.newsdk.ams.emas.demo.constant.KEY_TTL_CHANGER
import com.newsdk.sdk.android.httpdns.ranking.IPRankingBean
import com.newsdk.ams.httpdns.demo.R
import kotlinx.coroutines.launch
import org.json.JSONArray
import org.json.JSONException

View File

@@ -1,4 +1,4 @@
package com.alibaba.ams.emas.demo.ui.practice
package com.newsdk.ams.emas.demo.ui.practice
import android.content.Intent
import android.os.Bundle
@@ -8,8 +8,8 @@ import android.view.ViewGroup
import androidx.appcompat.app.AlertDialog
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import com.aliyun.ams.httpdns.demo.R
import com.aliyun.ams.httpdns.demo.databinding.FragmentBestPracticeBinding
import com.newsdk.ams.httpdns.demo.R
import com.newsdk.ams.httpdns.demo.databinding.FragmentBestPracticeBinding
/**
* @author allen.wy

View File

@@ -1,16 +1,16 @@
package com.alibaba.ams.emas.demo.ui.practice
package com.newsdk.ams.emas.demo.ui.practice
import android.app.Application
import android.util.Log
import androidx.lifecycle.AndroidViewModel
import androidx.lifecycle.viewModelScope
import com.alibaba.ams.emas.demo.HttpDnsServiceHolder
import com.alibaba.ams.emas.demo.net.TLSSNISocketFactory
import com.alibaba.ams.emas.demo.readStringFrom
import com.alibaba.sdk.android.httpdns.NetType
import com.alibaba.sdk.android.httpdns.RequestIpType
import com.alibaba.sdk.android.httpdns.net.HttpDnsNetworkDetector
import com.Alibaba.sdk.android.tool.NetworkUtils
import com.newsdk.ams.emas.demo.HttpDnsServiceHolder
import com.newsdk.ams.emas.demo.net.TLSSNISocketFactory
import com.newsdk.ams.emas.demo.readStringFrom
import com.newsdk.sdk.android.httpdns.NetType
import com.newsdk.sdk.android.httpdns.RequestIpType
import com.newsdk.sdk.android.httpdns.net.HttpDnsNetworkDetector
import com.alibaba.sdk.android.tool.NetworkUtils
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext

View File

@@ -1,4 +1,4 @@
package com.alibaba.ams.emas.demo.ui.practice
package com.newsdk.ams.emas.demo.ui.practice
import android.os.Bundle
import android.text.TextUtils
@@ -6,9 +6,9 @@ import android.util.Log
import android.view.MenuItem
import android.webkit.*
import androidx.appcompat.app.AppCompatActivity
import com.alibaba.ams.emas.demo.HttpDnsServiceHolder
import com.aliyun.ams.httpdns.demo.R
import com.aliyun.ams.httpdns.demo.databinding.ActivityHttpDnsWebviewBinding
import com.newsdk.ams.emas.demo.HttpDnsServiceHolder
import com.newsdk.ams.httpdns.demo.R
import com.newsdk.ams.httpdns.demo.databinding.ActivityHttpDnsWebviewBinding
import java.io.IOException
import java.net.*
import javax.net.ssl.*

View File

@@ -1,4 +1,4 @@
package com.alibaba.ams.emas.demo.ui.practice
package com.newsdk.ams.emas.demo.ui.practice
import android.net.SSLCertificateSocketFactory
import java.net.InetAddress

View File

@@ -1,4 +1,4 @@
package com.alibaba.ams.emas.demo.ui.resolve
package com.newsdk.ams.emas.demo.ui.resolve
/**
* @author allen.wy

View File

@@ -1,4 +1,4 @@
package com.alibaba.ams.emas.demo.ui.resolve
package com.newsdk.ams.emas.demo.ui.resolve
/**
* @author allen.wy

View File

@@ -1,4 +1,4 @@
package com.alibaba.ams.emas.demo.ui.resolve
package com.newsdk.ams.emas.demo.ui.resolve
import android.os.Bundle
import android.text.TextUtils
@@ -8,11 +8,11 @@ import android.view.ViewGroup
import androidx.appcompat.app.AlertDialog
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import com.alibaba.ams.emas.demo.constant.KEY_RESOLVE_IP_TYPE
import com.alibaba.ams.emas.demo.constant.KEY_RESOLVE_METHOD
import com.alibaba.ams.emas.demo.getAccountPreference
import com.aliyun.ams.httpdns.demo.R
import com.aliyun.ams.httpdns.demo.databinding.FragmentResolveBinding
import com.newsdk.ams.emas.demo.constant.KEY_RESOLVE_IP_TYPE
import com.newsdk.ams.emas.demo.constant.KEY_RESOLVE_METHOD
import com.newsdk.ams.emas.demo.getAccountPreference
import com.newsdk.ams.httpdns.demo.R
import com.newsdk.ams.httpdns.demo.databinding.FragmentResolveBinding
import org.json.JSONException
import org.json.JSONObject
@@ -177,7 +177,7 @@ class ResolveFragment : Fragment(), IResolveShowDialog {
val builder = activity?.let { act -> AlertDialog.Builder(act) }
builder?.apply {
setTitle(R.string.select_resolve_method)
val items = arrayOf("鍚屾鏂规硶", "寮傛鏂规硶", "鍚屾闈為樆濉炴柟娉?)
val items = arrayOf("Sync", "Async", "Sync NonBlocking")
val preferences = activity?.let { getAccountPreference(it) }
var resolvedMethod = preferences?.getString(KEY_RESOLVE_METHOD, "getHttpDnsResultForHostSync(String host, RequestIpType type)").toString()

View File

@@ -1,20 +1,20 @@
package com.alibaba.ams.emas.demo.ui.resolve
package com.newsdk.ams.emas.demo.ui.resolve
import android.app.Application
import android.util.Log
import android.widget.RadioGroup
import androidx.lifecycle.AndroidViewModel
import androidx.lifecycle.viewModelScope
import com.alibaba.ams.emas.demo.HttpDnsApplication
import com.alibaba.ams.emas.demo.SingleLiveData
import com.alibaba.ams.emas.demo.constant.KEY_RESOLVE_IP_TYPE
import com.alibaba.ams.emas.demo.constant.KEY_RESOLVE_METHOD
import com.alibaba.ams.emas.demo.constant.KEY_SDNS_RESOLVE
import com.alibaba.ams.emas.demo.getAccountPreference
import com.alibaba.ams.emas.demo.net.HttpURLConnectionRequest
import com.alibaba.ams.emas.demo.net.OkHttpRequest
import com.alibaba.sdk.android.httpdns.RequestIpType
import com.aliyun.ams.httpdns.demo.R
import com.newsdk.ams.emas.demo.HttpDnsApplication
import com.newsdk.ams.emas.demo.SingleLiveData
import com.newsdk.ams.emas.demo.constant.KEY_RESOLVE_IP_TYPE
import com.newsdk.ams.emas.demo.constant.KEY_RESOLVE_METHOD
import com.newsdk.ams.emas.demo.constant.KEY_SDNS_RESOLVE
import com.newsdk.ams.emas.demo.getAccountPreference
import com.newsdk.ams.emas.demo.net.HttpURLConnectionRequest
import com.newsdk.ams.emas.demo.net.OkHttpRequest
import com.newsdk.sdk.android.httpdns.RequestIpType
import com.newsdk.ams.httpdns.demo.R
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext

View File

@@ -1,4 +1,4 @@
package com.alibaba.ams.emas.demo.ui.resolve
package com.newsdk.ams.emas.demo.ui.resolve
/**
* @author allen.wy

View File

@@ -1,4 +1,4 @@
package com.alibaba.ams.emas.demo.ui.resolve
package com.newsdk.ams.emas.demo.ui.resolve
/**
* @author allen.wy

View File

@@ -1,4 +1,4 @@
package com.alibaba.ams.emas.demo.widget
package com.newsdk.ams.emas.demo.widget
import android.content.Context
import android.graphics.PointF
@@ -9,7 +9,7 @@ import android.view.ViewConfiguration
import android.view.ViewGroup
import android.widget.FrameLayout
import android.widget.Scroller
import com.aliyun.ams.httpdns.demo.R
import com.newsdk.ams.httpdns.demo.R
import java.lang.ref.WeakReference
import kotlin.math.abs

View File

@@ -9,14 +9,14 @@
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/Theme.AlicloudHttpDnsDemo.AppBarOverlay">
android:theme="@style/Theme.NewHttpDnsDemo.AppBarOverlay">
<androidx.appcompat.widget.Toolbar
android:id="@+id/webview_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/Theme.AlicloudHttpDnsDemo.PopupOverlay"
app:popupTheme="@style/Theme.NewHttpDnsDemo.PopupOverlay"
app:titleTextColor="@color/white"
app:navigationIcon="@drawable/ic_back"/>

View File

@@ -4,19 +4,19 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.alibaba.ams.emas.demo.ui.info.list.ListActivity">
tools:context="com.newsdk.ams.emas.demo.ui.info.list.ListActivity">
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/Theme.AlicloudHttpDnsDemo.AppBarOverlay">
android:theme="@style/Theme.NewHttpDnsDemo.AppBarOverlay">
<androidx.appcompat.widget.Toolbar
android:id="@+id/info_list_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/Theme.AlicloudHttpDnsDemo.PopupOverlay"
app:popupTheme="@style/Theme.NewHttpDnsDemo.PopupOverlay"
app:titleTextColor="@color/white"
app:navigationIcon="@drawable/ic_back"/>

View File

@@ -9,7 +9,7 @@
android:id="@+id/app_bar_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/Theme.AlicloudHttpDnsDemo.AppBarOverlay"
android:theme="@style/Theme.NewHttpDnsDemo.AppBarOverlay"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent">
@@ -19,7 +19,7 @@
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/Theme.AlicloudHttpDnsDemo.PopupOverlay"
app:popupTheme="@style/Theme.NewHttpDnsDemo.PopupOverlay"
app:titleTextColor="@color/white"
app:navigationIcon="@drawable/ic_back"/>

View File

@@ -5,11 +5,11 @@
<data>
<import type="com.aliyun.ams.httpdns.demo.BuildConfig" />
<import type="com.newsdk.ams.httpdns.demo.BuildConfig" />
<variable
name="viewModel"
type="com.alibaba.ams.emas.demo.ui.basic.BasicSettingViewModel" />
type="com.newsdk.ams.emas.demo.ui.basic.BasicSettingViewModel" />
</data>
<androidx.coordinatorlayout.widget.CoordinatorLayout

View File

@@ -6,7 +6,7 @@
<variable
name="viewModel"
type="com.alibaba.ams.emas.demo.ui.practice.BestPracticeViewModel" />
type="com.newsdk.ams.emas.demo.ui.practice.BestPracticeViewModel" />
</data>
<LinearLayout

View File

@@ -5,11 +5,11 @@
<data>
<import type="com.aliyun.ams.httpdns.demo.BuildConfig" />
<import type="com.newsdk.ams.httpdns.demo.BuildConfig" />
<variable
name="viewModel"
type="com.alibaba.ams.emas.demo.ui.info.InfoViewModel" />
type="com.newsdk.ams.emas.demo.ui.info.InfoViewModel" />
</data>
<androidx.coordinatorlayout.widget.CoordinatorLayout
@@ -78,7 +78,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:textSize="15dp"
tools:text="com.aliyun.ams.httpdns.demo" />
tools:text="com.newsdk.ams.httpdns.demo" />
</LinearLayout>
</LinearLayout>

View File

@@ -7,7 +7,7 @@
<variable
name="viewModel"
type="com.alibaba.ams.emas.demo.ui.resolve.ResolveViewModel" />
type="com.newsdk.ams.emas.demo.ui.resolve.ResolveViewModel" />
</data>
<androidx.coordinatorlayout.widget.CoordinatorLayout

View File

@@ -6,7 +6,7 @@
android:layout_height="match_parent"
android:orientation="vertical">
<com.alibaba.ams.emas.demo.widget.SwipeLayout
<com.newsdk.ams.emas.demo.widget.SwipeLayout
android:id="@+id/host_and_port_or_ttl_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -106,9 +106,9 @@
android:textSize="17dp" />
</RelativeLayout>
</com.alibaba.ams.emas.demo.widget.SwipeLayout>
</com.newsdk.ams.emas.demo.widget.SwipeLayout>
<com.alibaba.ams.emas.demo.widget.SwipeLayout
<com.newsdk.ams.emas.demo.widget.SwipeLayout
android:id="@+id/host_fixed_ip_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -160,6 +160,6 @@
android:textSize="17dp" />
</RelativeLayout>
</com.alibaba.ams.emas.demo.widget.SwipeLayout>
</com.newsdk.ams.emas.demo.widget.SwipeLayout>
</LinearLayout>

View File

@@ -7,25 +7,25 @@
<fragment
android:id="@+id/navigation_basic"
android:name="com.alibaba.ams.emas.demo.ui.basic.BasicSettingFragment"
android:name="com.newsdk.ams.emas.demo.ui.basic.BasicSettingFragment"
android:label="@string/title_basic"
tools:layout="@layout/fragment_basic_setting" />
<fragment
android:id="@+id/navigation_resolve"
android:name="com.alibaba.ams.emas.demo.ui.resolve.ResolveFragment"
android:name="com.newsdk.ams.emas.demo.ui.resolve.ResolveFragment"
android:label="@string/title_resolve"
tools:layout="@layout/fragment_resolve" />
<fragment
android:id="@+id/navigation_best_practice"
android:name="com.alibaba.ams.emas.demo.ui.practice.BestPracticeFragment"
android:name="com.newsdk.ams.emas.demo.ui.practice.BestPracticeFragment"
android:label="@string/title_best_practice"
tools:layout="@layout/fragment_best_practice" />
<fragment
android:id="@+id/navigation_information"
android:name="com.alibaba.ams.emas.demo.ui.info.InfoFragment"
android:name="com.newsdk.ams.emas.demo.ui.info.InfoFragment"
android:label="@string/title_info"
tools:layout="@layout/fragment_info" />
</navigation>

View File

@@ -1,6 +1,6 @@
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Theme.Alicloudandroidsdkhttpdns_for_open_source" parent="Theme.AppCompat.Light.DarkActionBar">
<style name="Theme.Newandroidsdkhttpdns_for_open_source" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Primary brand color. -->
<item name="colorPrimary">@color/purple_200</item>
<item name="colorPrimaryDark">@color/purple_700</item>

View File

@@ -3,12 +3,12 @@
<string name="app_name">闃块噷浜慔ttpDNS瀹樻柟Demo</string>
<string name="title_basic">鍩虹璁剧疆</string>
<string name="title_resolve">HttpDNS瑙</string>
<string name="title_best_practice">鏈€浣冲疄璺?/string>
<string name="title_best_practice">鏈€浣冲疄璺</string>
<string name="title_info">淇℃伅</string>
<string name="enable_auth_mode">寮€鍚壌鏉冩ā寮?/string>
<string name="enable_auth_mode">寮€鍚壌鏉冩ā寮</string>
<string name="secret_key_location">SecretKey閫氳繃config閰嶇疆</string>
<string name="enable_encrypt_mode">寮€鍚姞瀵嗘ā寮?/string>
<string name="enable_encrypt_mode">寮€鍚姞瀵嗘ā寮</string>
<string name="enable_expired_ip">鍏佽杩囨湡IP</string>
<string name="enable_local_cache">寮€鍚寔涔呭寲缂撳瓨IP</string>
<string name="cache_expire_time">缂撳瓨杩囨湡鏃堕棿</string>
@@ -19,11 +19,11 @@
<string name="enable_httpdns_log">鍏佽SDK鎵撳嵃鏃ュ織</string>
<string name="timeout">瓒呮椂鏃堕棿</string>
<string name="init_tip">璇峰厛鍒濆鍖朒ttpDns</string>
<string name="inited_httpdns">宸茬粡鍒濆鍖?/string>
<string name="inited_httpdns">宸茬粡鍒濆鍖</string>
<string name="china">涓浗</string>
<string name="china_hk">涓浗棣欐腐</string>
<string name="singapore">鏂板姞鍧?/string>
<string name="singapore">鏂板姞鍧</string>
<string name="germany">寰峰浗</string>
<string name="america">缇庡浗</string>
<string name="pre">棰勫彂</string>
@@ -31,72 +31,72 @@
<string name="select_region">閫夋嫨Region</string>
<string name="confirm">纭</string>
<string name="cancel">鍙栨秷</string>
<string name="timeout_hint">璇疯緭鍏ヨ秴鏃舵椂闂达紝姣涓哄崟浣?/string>
<string name="timeout_hint">璇疯緭鍏ヨ秴鏃舵椂闂达紝姣涓哄崟浣</string>
<string name="set_timeout">璁剧疆瓒呮椂</string>
<string name="timeout_empty">瓒呮椂鏃堕棿涓虹┖</string>
<string name="ip_probe_list">鎺㈡祴IP鍒楄〃</string>
<string name="ttl_cache_list">鑷畾涔塗TL缂撳瓨鍒楄〃</string>
<string name="host_fixed_ip_list">涓荤珯鍩熷悕鍒楄〃</string>
<string name="host_black_list">鍩熷悕榛戝悕鍗曞垪琛?/string>
<string name="host_black_list">鍩熷悕榛戝悕鍗曞垪琛</string>
<string name="sdns_global_params">鑷畾涔夎В鏋愬叏灞€鍙傛暟</string>
<string name="batch_resolve">鎵归噺瑙f瀽鍩熷悕</string>
<string name="httpdns_sdk_version">HttpDNS鐗堟湰鍙?/string>
<string name="httpdns_sdk_version">HttpDNS鐗堟湰鍙</string>
<string name="unknown">鏈煡</string>
<string name="ip_stack">褰撳墠鎵€杩炴帴缃戠粶鐨勭綉缁滄爤绫诲瀷</string>
<string name="clear_host_cache">娓呯┖鎸囧畾鍩熷悕缂撳瓨</string>
<string name="clear_cache_hint">璇疯緭鍏ヨ娓呯┖缂撳瓨鐨勫煙鍚?/string>
<string name="clear_cache_hint">璇疯緭鍏ヨ娓呯┖缂撳瓨鐨勫煙鍚</string>
<string name="network_request_type">缃戠粶璇锋眰绫诲瀷</string>
<string name="async_resolve">寮傛瑙瀽鑾峰彇IP</string>
<string name="sdns_resolve">鑷畾涔夊煙鍚嶈В鏋?/string>
<string name="sdns_resolve">鑷畾涔夊煙鍚嶈В鏋</string>
<string name="ip_type">瑕佽В鏋愮殑IP绫诲瀷</string>
<string name="resolve_method">浣跨敤鐨勮В鏋愭柟娉?/string>
<string name="resolve_method">浣跨敤鐨勮В鏋愭柟娉</string>
<string name="request_num">骞跺彂璇锋眰娆℃暟</string>
<string name="select_resolve_ip_type">閫夋嫨IP绫诲瀷</string>
<string name="select_resolve_method">閫夋嫨瑙f瀽鏂规硶</string>
<string name="select_request_num">閫夋嫨骞跺彂璇锋眰娆℃暟</string>
<string name="auto_get_ip_type">鑷姩鍒ゆ柇IP绫诲瀷</string>
<string name="add_pre_resolve">娣诲姞棰勮В鏋愬煙鍚?/string>
<string name="add_pre_resolve">娣诲姞棰勮В鏋愬煙鍚</string>
<string name="add_pre_resolve_hint">璇疯緭鍏ヨ棰勮В鏋愮殑鍩熷悕</string>
<string name="pre_resolve_list">棰勮В鏋愬煙鍚嶅垪琛?/string>
<string name="pre_resolve_list">棰勮В鏋愬煙鍚嶅垪琛</string>
<string name="add_tag">娣诲姞Tag</string>
<string name="pre_resolve_host_duplicate">%s鍩熷悕宸茬粡琚坊鍔犺嚦棰勮В鏋愬垪琛紝璇峰嬁閲嶅娣诲姞</string>
<string name="init_httpdns">鍒濆鍖朒ttpDns</string>
<string name="batch_resolve_list">鎵归噺瑙f瀽鍩熷悕鍒楄〃</string>
<string name="add_batch_resolve_hint">璇疯緭鍏ヨ鎵归噺瑙f瀽鐨勫煙鍚?/string>
<string name="add_batch_resolve">璇疯緭鍏ヨ鎵归噺瑙f瀽鐨勫煙鍚?/string>
<string name="batch_resolve_host_duplicate">%s鍩熷悕宸茬粡琚坊鍔犺嚦鎵归噺瑙瀽鍒楄〃锛岃鍕块噸澶嶆坊鍔?/string>
<string name="add_batch_resolve_hint">璇疯緭鍏ヨ鎵归噺瑙f瀽鐨勫煙鍚</string>
<string name="add_batch_resolve">璇疯緭鍏ヨ鎵归噺瑙f瀽鐨勫煙鍚</string>
<string name="batch_resolve_host_duplicate">%s鍩熷悕宸茬粡琚坊鍔犺嚦鎵归噺瑙瀽鍒楄〃锛岃鍕块噸澶嶆坊鍔</string>
<string name="host">鍩熷悕锛?/string>
<string name="port">绔彛锛?/string>
<string name="host">鍩熷悕锛</string>
<string name="port">绔彛锛</string>
<string name="ttl">TTL鏃堕暱: </string>
<string name="add_host_fixed_ip_hint">璇疯緭鍏ヤ富绔欏煙鍚?/string>
<string name="add_host_fixed_ip_hint">璇疯緭鍏ヤ富绔欏煙鍚</string>
<string name="add_host_fixed_ip">娣诲姞涓荤珯鍩熷悕</string>
<string name="host_fixed_ip_empty">涓荤珯鍩熷悕涓虹┖</string>
<string name="host_fixed_ip_duplicate">%s涓荤珯鍩熷悕宸茬粡琚坊鍔狅紝璇峰嬁閲嶅娣诲姞</string>
<string name="add_tag_hint">璇疯緭鍏ユ爣绛?/string>
<string name="add_tag_hint">璇疯緭鍏ユ爣绛</string>
<string name="add_host_to_black_list_hint">璇疯緭鍏ヤ笉浣跨敤HttpDns瑙瀽鐨勫煙鍚?/string>
<string name="add_host_to_black_list">娣诲姞涓嶄娇鐢℉ttpDns鐨勫煙鍚?/string>
<string name="add_host_to_black_list_hint">璇疯緭鍏ヤ笉浣跨敤HttpDns瑙瀽鐨勫煙鍚</string>
<string name="add_host_to_black_list">娣诲姞涓嶄娇鐢℉ttpDns鐨勫煙鍚</string>
<string name="host_to_black_list_empty">鍩熷悕涓虹┖</string>
<string name="host_black_list_duplicate">%s鍩熷悕宸茬粡鍦ㄩ粦鍚嶅崟涓紝璇峰嬁閲嶅娣诲姞</string>
<string name="add_ip_probe_host_hint">璇疯緭鍏ユ帰娴婭P鐨勫煙鍚?/string>
<string name="add_ip_probe_port_hint">璇疯緭鍏ユ帰娴婭P鐨勭鍙?/string>
<string name="add_ip_probe_host_hint">璇疯緭鍏ユ帰娴婭P鐨勫煙鍚</string>
<string name="add_ip_probe_port_hint">璇疯緭鍏ユ帰娴婭P鐨勭鍙</string>
<string name="add_ip_probe">娣诲姞IP鎺㈡祴</string>
<string name="port_is_empty">绔彛鍙蜂负绌?/string>
<string name="ip_probe_item_duplicate">%s:%s宸茬粡琚坊鍔犺嚦IP鎺㈡祴鍒楄〃锛岃鍕块噸澶嶆坊鍔?/string>
<string name="port_is_empty">绔彛鍙蜂负绌</string>
<string name="ip_probe_item_duplicate">%s:%s宸茬粡琚坊鍔犺嚦IP鎺㈡祴鍒楄〃锛岃鍕块噸澶嶆坊鍔</string>
<string name="host_is_empty">鍩熷悕涓虹┖</string>
<string name="pre_resolve_host_is_empty">棰勮В鏋愮殑鍩熷悕涓虹┖</string>
<string name="batch_resolve_host_is_empty">鎵归噺瑙f瀽鐨勫煙鍚嶄负绌?/string>
<string name="batch_resolve_host_is_empty">鎵归噺瑙f瀽鐨勫煙鍚嶄负绌</string>
<string name="add_ttl_host_hint">璇疯緭鍏ョ紦瀛樼殑鍩熷悕</string>
<string name="add_ttl_ttl_hint">璇疯緭鍏ョ紦瀛樼殑ttl鏃堕棿锛屽崟浣嶏細绉?/string>
<string name="add_ttl_ttl_hint">璇疯緭鍏ョ紦瀛樼殑ttl鏃堕棿锛屽崟浣嶏細绉</string>
<string name="add_custom_ttl">娣诲姞鑷畾涔塗TL</string>
<string name="ttl_is_empty">TTL鏃堕棿涓虹┖</string>
<string name="ttl_is_not_number">璇疯緭鍏ユ纭牸寮忕殑TTL鏃堕暱</string>
@@ -118,13 +118,13 @@
<string name="input_the_request_api">瑕佽姹傜殑鎺ュ彛</string>
<string name="input_the_request_api_help_text">渚嬪: /document_detail/434554.html</string>
<string name="resolve_and_request">瑙f瀽骞惰姹?/string>
<string name="resolve_and_request">瑙f瀽骞惰姹</string>
<string name="resolve_host_empty">鍩熷悕涓嶈兘涓虹┖</string>
<string name="host_is_ip">鍩熷悕涓嶈兘鏄疘P鍦板潃</string>
<string name="host_illegal">璇疯緭鍏ユ纭牸寮忕殑鍩熷悕</string>
<string name="schema_type">Schema绫诲瀷</string>
<string name="httpdns_webview_best_practice">HttpDNS WebView 鎷︽埅GET璇锋眰</string>
<string name="httpdns_webview_post_best_practice">HttpDNS WebView POST璇锋眰閫氳繃Native鍙戦€?/string>
<string name="httpdns_webview_post_best_practice">HttpDNS WebView POST璇锋眰閫氳繃Native鍙戦€</string>
<string name="httpdns_sni">HttpDNS IP鐩磋繛鏂规</string>
<string name="ok">濂界殑</string>
@@ -133,6 +133,6 @@
<string name="sni_request">IP鐩磋繛鏂规</string>
<string name="tips">鎻愮ず</string>
<string name="network_not_connect">缃戠粶鏈繛鎺ワ紝璇锋鏌ョ綉缁?/string>
<string name="network_not_connect">缃戠粶鏈繛鎺ワ紝璇锋鏌ョ綉缁</string>
<string name="request_exception">璇锋眰寮傚父: %s</string>
</resources>

View File

@@ -1,5 +1,5 @@
<resources>
<string name="app_name">Alibaba Cloud HttpDNS Demo</string>
<string name="app_name">New Cloud HttpDNS Demo</string>
<string name="title_basic">Basic Settings</string>
<string name="title_resolve">HttpDNS Resolve</string>
<string name="title_best_practice">Best Practice</string>

View File

@@ -1,6 +1,6 @@
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Theme.AlicloudHttpDnsDemo" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
<style name="Theme.NewHttpDnsDemo" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
<!-- Primary brand color. -->
<item name="colorPrimary">@color/cloud_blue</item>
<item name="colorPrimaryDark">@color/cloud_blue</item>
@@ -9,12 +9,12 @@
<!-- Customize your theme here. -->
</style>
<style name="Theme.AlicloudHttpDnsDemo.NoActionBar">
<style name="Theme.NewHttpDnsDemo.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
<style name="Theme.AlicloudHttpDnsDemo.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
<style name="Theme.NewHttpDnsDemo.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
<style name="Theme.AlicloudHttpDnsDemo.PopupOverlay" parent="ThemeOverlay.AppCompat.Dark" />
<style name="Theme.NewHttpDnsDemo.PopupOverlay" parent="ThemeOverlay.AppCompat.Dark" />
</resources>

View File

@@ -1,4 +1,4 @@
package com.alibaba.ams.emas.demo
package com.newsdk.ams.emas.demo
import org.junit.Test

View File

@@ -12,7 +12,7 @@ android {
targetSdkVersion 33
versionCode 1
versionName httpdnsDebugVersion
setProperty("archivesBaseName", "alicloud-android-httpdns-$versionName")
setProperty("archivesBaseName", "new-android-httpdns-$versionName")
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
buildConfigField "String", "VERSION_NAME", "\"${httpdnsDebugVersion}\""
@@ -89,9 +89,9 @@ dependencies {
testEnd2endImplementation 'org.mockito:mockito-core:2.15.0'
testEnd2endImplementation 'com.squareup.okhttp3:mockwebserver:3.9.0'
implementation "com.aliyun.ams:alicloud-android-logger:${loggerVersion}"
implementation "com.aliyun.ams:alicloud-android-crashdefend:${crashDefendVersion}"
implementation "com.aliyun.ams:alicloud-android-ipdetector:${ipdetectorVersion}"
implementation "com.newsdk.ams:new-android-logger:${loggerVersion}"
implementation "com.newsdk.ams:new-android-crashdefend:${crashDefendVersion}"
implementation "com.newsdk.ams:new-android-ipdetector:${ipdetectorVersion}"
}
ext.getIntlVersion = { version ->
@@ -108,7 +108,7 @@ task copyDependencies {
if (config != null) {
config.resolvedConfiguration.resolvedArtifacts.each { artifact ->
def file = artifact.file
if (file.name.contains("alicloud-android")) {
if (file.name.contains("new-android")) {
copy {
from file
into 'build/outputs/dependencies'

View File

@@ -24,27 +24,27 @@
#-allowaccessmodification
-useuniqueclassmembernames
-keeppackagenames com.alibaba.sdk.android.httpdns
-keep class com.alibaba.sdk.android.httpdns.HttpDns{*;}
-keep class com.alibaba.sdk.android.httpdns.HttpDnsService{*;}
-keep class com.alibaba.sdk.android.httpdns.SyncService{*;}
-keep class com.alibaba.sdk.android.httpdns.RequestIpType{*;}
-keep class com.alibaba.sdk.android.httpdns.net64.Net64Service{*;}
-keep class com.alibaba.sdk.android.httpdns.DegradationFilter{*;}
-keep class com.alibaba.sdk.android.httpdns.ranking.IPRankingBean{*;}
-keep class com.alibaba.sdk.android.httpdns.ILogger{*;}
-keepclasseswithmembers class com.alibaba.sdk.android.httpdns.log.HttpDnsLog {
-keeppackagenames com.newsdk.sdk.android.httpdns
-keep class com.newsdk.sdk.android.httpdns.HttpDns{*;}
-keep class com.newsdk.sdk.android.httpdns.HttpDnsService{*;}
-keep class com.newsdk.sdk.android.httpdns.SyncService{*;}
-keep class com.newsdk.sdk.android.httpdns.RequestIpType{*;}
-keep class com.newsdk.sdk.android.httpdns.net64.Net64Service{*;}
-keep class com.newsdk.sdk.android.httpdns.DegradationFilter{*;}
-keep class com.newsdk.sdk.android.httpdns.ranking.IPRankingBean{*;}
-keep class com.newsdk.sdk.android.httpdns.ILogger{*;}
-keepclasseswithmembers class com.newsdk.sdk.android.httpdns.log.HttpDnsLog {
public static *** setLogger(***);
public static *** removeLogger(***);
public static *** enable(***);
}
-keep class com.alibaba.sdk.android.httpdns.HTTPDNSResult{*;}
-keep class com.alibaba.sdk.android.httpdns.ApiForTest{*;}
-keep class com.alibaba.sdk.android.httpdns.test.** {*;}
-keep class com.alibaba.sdk.android.httpdns.resolve.ResolveHostResponse{*;}
-keep class com.newsdk.sdk.android.httpdns.HTTPDNSResult{*;}
-keep class com.newsdk.sdk.android.httpdns.ApiForTest{*;}
-keep class com.newsdk.sdk.android.httpdns.test.** {*;}
-keep class com.newsdk.sdk.android.httpdns.resolve.ResolveHostResponse{*;}
-keep class com.alibaba.sdk.android.httpdns.utils.CommonUtil{
-keep class com.newsdk.sdk.android.httpdns.utils.CommonUtil{
public <methods>;
public <fields>;
}

View File

@@ -24,47 +24,47 @@
#-allowaccessmodification
-useuniqueclassmembernames
-dontwarn com.alibaba.sdk.android.httpdns.net.HttpDnsNetworkDetector
-dontwarn com.newsdk.sdk.android.httpdns.net.HttpDnsNetworkDetector
-keeppackagenames com.alibaba.sdk.android.httpdns
-flattenpackagehierarchy com.alibaba.sdk.android.httpdns
-keep class com.alibaba.sdk.android.httpdns.HttpDns{*;}
-keep interface com.alibaba.sdk.android.httpdns.HttpDnsService{*;}
-keep class com.alibaba.sdk.android.httpdns.impl.ErrorImpl{*;}
-keep interface com.alibaba.sdk.android.httpdns.SyncService{*;}
-keep class com.alibaba.sdk.android.httpdns.InitConfig{*;}
-keep class com.alibaba.sdk.android.httpdns.InitConfig$Builder{*;}
-keep class com.alibaba.sdk.android.httpdns.RequestIpType{*;}
-keep interface com.alibaba.sdk.android.httpdns.DegradationFilter{*;}
-keep interface com.alibaba.sdk.android.httpdns.NotUseHttpDnsFilter{*;}
-keep interface com.alibaba.sdk.android.httpdns.HttpDnsCallback{*;}
-keep class com.alibaba.sdk.android.httpdns.ranking.IPRankingBean{*;}
-keep interface com.alibaba.sdk.android.httpdns.ILogger{*;}
-keep interface com.alibaba.sdk.android.httpdns.CacheTtlChanger{*;}
-keep class com.alibaba.sdk.android.httpdns.NetType{*;}
-keepclasseswithmembers class com.alibaba.sdk.android.httpdns.log.HttpDnsLog {
-keeppackagenames com.newsdk.sdk.android.httpdns
-flattenpackagehierarchy com.newsdk.sdk.android.httpdns
-keep class com.newsdk.sdk.android.httpdns.HttpDns{*;}
-keep interface com.newsdk.sdk.android.httpdns.HttpDnsService{*;}
-keep class com.newsdk.sdk.android.httpdns.impl.ErrorImpl{*;}
-keep interface com.newsdk.sdk.android.httpdns.SyncService{*;}
-keep class com.newsdk.sdk.android.httpdns.InitConfig{*;}
-keep class com.newsdk.sdk.android.httpdns.InitConfig$Builder{*;}
-keep class com.newsdk.sdk.android.httpdns.RequestIpType{*;}
-keep interface com.newsdk.sdk.android.httpdns.DegradationFilter{*;}
-keep interface com.newsdk.sdk.android.httpdns.NotUseHttpDnsFilter{*;}
-keep interface com.newsdk.sdk.android.httpdns.HttpDnsCallback{*;}
-keep class com.newsdk.sdk.android.httpdns.ranking.IPRankingBean{*;}
-keep interface com.newsdk.sdk.android.httpdns.ILogger{*;}
-keep interface com.newsdk.sdk.android.httpdns.CacheTtlChanger{*;}
-keep class com.newsdk.sdk.android.httpdns.NetType{*;}
-keepclasseswithmembers class com.newsdk.sdk.android.httpdns.log.HttpDnsLog {
public static *** setLogger(***);
public static *** removeLogger(***);
public static *** enable(***);
}
-keep class com.alibaba.sdk.android.httpdns.HTTPDNSResult{*;}
-keepclasseswithmembers class com.alibaba.sdk.android.httpdns.HttpDnsSettings {
-keep class com.newsdk.sdk.android.httpdns.HTTPDNSResult{*;}
-keepclasseswithmembers class com.newsdk.sdk.android.httpdns.HttpDnsSettings {
public static *** setDailyReport(***);
public static *** setNetworkChecker(***);
}
-keep class com.alibaba.sdk.android.httpdns.net.HttpDnsNetworkDetector {
-keep class com.newsdk.sdk.android.httpdns.net.HttpDnsNetworkDetector {
public <methods>;
public <fields>;
}
-keep class com.alibaba.sdk.android.httpdns.network.**{*;}
-keep class com.newsdk.sdk.android.httpdns.network.**{*;}
-keep interface com.alibaba.sdk.android.httpdns.HttpDnsSettings$NetworkChecker{*;}
-keep interface com.alibaba.sdk.android.httpdns.HttpDnsSettings$NetworkDetector{*;}
-keep class com.alibaba.sdk.android.httpdns.utils.CommonUtil{
-keep interface com.newsdk.sdk.android.httpdns.HttpDnsSettings$NetworkChecker{*;}
-keep interface com.newsdk.sdk.android.httpdns.HttpDnsSettings$NetworkDetector{*;}
-keep class com.newsdk.sdk.android.httpdns.utils.CommonUtil{
public <methods>;
public <fields>;
}
-keep enum com.alibaba.sdk.android.httpdns.Region {*;}
-keep class com.alibaba.sdk.android.httpdns.exception.InitException{*;}
-keep enum com.newsdk.sdk.android.httpdns.Region {*;}
-keep class com.newsdk.sdk.android.httpdns.exception.InitException{*;}

View File

@@ -1,6 +1,6 @@
package com.alibaba.sdk.android.httpdns;
package com.newsdk.sdk.android.httpdns;
import com.alibaba.sdk.android.httpdns.ranking.IPRankingTask;
import com.newsdk.sdk.android.httpdns.ranking.IPRankingTask;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.ScheduledExecutorService;

View File

@@ -1,4 +1,4 @@
package com.alibaba.sdk.android.httpdns;
package com.newsdk.sdk.android.httpdns;
/**
* 娴嬭瘯鐢ㄧ殑鍒濆鍖栨帴鍙?

View File

@@ -1,13 +1,13 @@
package com.alibaba.sdk.android.httpdns;
package com.newsdk.sdk.android.httpdns;
import android.content.Context;
import com.alibaba.sdk.android.httpdns.impl.HttpDnsInstanceHolder;
import com.alibaba.sdk.android.httpdns.impl.InstanceCreator;
import com.alibaba.sdk.android.httpdns.net.NetworkStateManager;
import com.alibaba.sdk.android.httpdns.network.HttpDnsAdapterOptions;
import com.alibaba.sdk.android.httpdns.network.HttpDnsHttpAdapter;
import com.alibaba.sdk.android.httpdns.utils.CommonUtil;
import com.newsdk.sdk.android.httpdns.impl.HttpDnsInstanceHolder;
import com.newsdk.sdk.android.httpdns.impl.InstanceCreator;
import com.newsdk.sdk.android.httpdns.net.NetworkStateManager;
import com.newsdk.sdk.android.httpdns.network.HttpDnsAdapterOptions;
import com.newsdk.sdk.android.httpdns.network.HttpDnsHttpAdapter;
import com.newsdk.sdk.android.httpdns.utils.CommonUtil;
/**
* Httpdns瀹炰緥绠

View File

@@ -1,4 +1,4 @@
package com.alibaba.sdk.android.httpdns;
package com.newsdk.sdk.android.httpdns;
import java.util.HashMap;

View File

@@ -1,12 +1,12 @@
package com.alibaba.sdk.android.httpdns.impl;
package com.newsdk.sdk.android.httpdns.impl;
import android.content.Context;
import com.alibaba.sdk.android.httpdns.ApiForTest;
import com.alibaba.sdk.android.httpdns.BeforeHttpDnsServiceInit;
import com.alibaba.sdk.android.httpdns.HttpDnsSettings;
import com.alibaba.sdk.android.httpdns.InitManager;
import com.alibaba.sdk.android.httpdns.ranking.IPRankingTask;
import com.newsdk.sdk.android.httpdns.ApiForTest;
import com.newsdk.sdk.android.httpdns.BeforeHttpDnsServiceInit;
import com.newsdk.sdk.android.httpdns.HttpDnsSettings;
import com.newsdk.sdk.android.httpdns.InitManager;
import com.newsdk.sdk.android.httpdns.ranking.IPRankingTask;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.ScheduledExecutorService;

View File

@@ -1,8 +1,8 @@
package com.alibaba.sdk.android.httpdns.impl;
package com.newsdk.sdk.android.httpdns.impl;
import android.content.Context;
import com.alibaba.sdk.android.httpdns.HttpDnsService;
import com.newsdk.sdk.android.httpdns.HttpDnsService;
/**
* 鏀逛负浣跨敤娴嬭瘯瀹炰緥

View File

@@ -1,10 +1,10 @@
package com.alibaba.sdk.android.httpdns;
package com.newsdk.sdk.android.httpdns;
import com.alibaba.sdk.android.httpdns.impl.HttpDnsInstanceHolder;
import com.alibaba.sdk.android.httpdns.impl.InstanceCreator;
import com.alibaba.sdk.android.httpdns.network.HttpDnsAdapterOptions;
import com.alibaba.sdk.android.httpdns.network.HttpDnsHttpAdapter;
import com.alibaba.sdk.android.httpdns.utils.CommonUtil;
import com.newsdk.sdk.android.httpdns.impl.HttpDnsInstanceHolder;
import com.newsdk.sdk.android.httpdns.impl.InstanceCreator;
import com.newsdk.sdk.android.httpdns.network.HttpDnsAdapterOptions;
import com.newsdk.sdk.android.httpdns.network.HttpDnsHttpAdapter;
import com.newsdk.sdk.android.httpdns.utils.CommonUtil;
import android.content.Context;

View File

@@ -1,6 +1,6 @@
package com.alibaba.sdk.android.httpdns.impl;
package com.newsdk.sdk.android.httpdns.impl;
import com.alibaba.sdk.android.httpdns.HttpDnsService;
import com.newsdk.sdk.android.httpdns.HttpDnsService;
import android.content.Context;

View File

@@ -1,4 +1,4 @@
package com.alibaba.sdk.android.httpdns.impl;
package com.newsdk.sdk.android.httpdns.impl;
import android.content.Context;

View File

@@ -1,5 +1,5 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.alibaba.sdk.android.httpdns">
package="com.newsdk.sdk.android.httpdns">
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />

View File

@@ -1,99 +0,0 @@
package com.alibaba.sdk.android.httpdns.request;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import javax.net.ssl.HttpsURLConnection;
import com.alibaba.sdk.android.httpdns.log.HttpDnsLog;
/**
* HTTP request wrapper for resolve APIs.
*/
public class HttpRequest<T> {
private HttpRequestConfig requestConfig;
private ResponseParser<T> translator;
protected HttpRequest() {
}
public HttpRequest(HttpRequestConfig requestConfig, ResponseParser<T> translator) {
this.requestConfig = requestConfig;
this.translator = translator;
}
public HttpRequestConfig getRequestConfig() {
return requestConfig;
}
public T request() throws Throwable {
HttpURLConnection conn = null;
InputStream in = null;
BufferedReader streamReader = null;
long start = System.currentTimeMillis();
String serverIp = requestConfig.getIp();
String url = requestConfig.url();
if (HttpDnsLog.isPrint()) {
HttpDnsLog.d("request url " + url);
}
try {
conn = (HttpURLConnection) new URL(url).openConnection();
conn.setReadTimeout(requestConfig.getTimeout());
conn.setConnectTimeout(requestConfig.getTimeout());
conn.setRequestProperty("User-Agent", requestConfig.getUA());
if (conn instanceof HttpsURLConnection) {
HttpsURLConnection httpsURLConnection = (HttpsURLConnection) conn;
httpsURLConnection.setHostnameVerifier(HttpsURLConnection.getDefaultHostnameVerifier());
}
if (conn.getResponseCode() != HttpURLConnection.HTTP_OK) {
in = conn.getErrorStream();
if (in != null) {
streamReader = new BufferedReader(new InputStreamReader(in, "UTF-8"));
String errStr = readStringFrom(streamReader).toString();
throw HttpException.create(conn.getResponseCode(), errStr);
} else {
throw HttpException.create(conn.getResponseCode(), "");
}
} else {
in = conn.getInputStream();
streamReader = new BufferedReader(new InputStreamReader(in, "UTF-8"));
String responseStr = readStringFrom(streamReader).toString();
if (HttpDnsLog.isPrint()) {
HttpDnsLog.d("request success " + responseStr);
}
return translator.parse(serverIp, responseStr);
}
} catch (Throwable e) {
long cost = System.currentTimeMillis() - start;
HttpDnsLog.w("request " + url + " fail, cost " + cost, e);
throw e;
} finally {
if (conn != null) {
conn.disconnect();
}
try {
if (in != null) {
in.close();
}
if (streamReader != null) {
streamReader.close();
}
} catch (IOException ignored) {
}
}
}
public static StringBuilder readStringFrom(BufferedReader streamReader) throws IOException {
StringBuilder sb = new StringBuilder();
String line;
while ((line = streamReader.readLine()) != null) {
sb.append(line);
}
return sb;
}
}

View File

@@ -1,4 +1,4 @@
package com.alibaba.sdk.android.httpdns;
package com.newsdk.sdk.android.httpdns;
/**
* 敼ttl鏃堕暱鐨勬帴鍙?

View File

@@ -1,4 +1,4 @@
package com.alibaba.sdk.android.httpdns;
package com.newsdk.sdk.android.httpdns;
/**
* 闄嶇骇鍒ゆ柇寮鍏虫帴鍙?

View File

@@ -1,9 +1,9 @@
package com.alibaba.sdk.android.httpdns;
package com.newsdk.sdk.android.httpdns;
import android.text.TextUtils;
import com.alibaba.sdk.android.httpdns.cache.HostRecord;
import com.alibaba.sdk.android.httpdns.utils.Constants;
import com.newsdk.sdk.android.httpdns.cache.HostRecord;
import com.newsdk.sdk.android.httpdns.utils.Constants;
import java.util.Arrays;
import java.util.List;

View File

@@ -1,8 +1,8 @@
package com.alibaba.sdk.android.httpdns;
package com.newsdk.sdk.android.httpdns;
import android.text.TextUtils;
import com.alibaba.sdk.android.httpdns.cache.HostRecord;
import com.newsdk.sdk.android.httpdns.cache.HostRecord;
import java.util.List;

View File

@@ -1,4 +1,4 @@
package com.alibaba.sdk.android.httpdns;
package com.newsdk.sdk.android.httpdns;
public interface HttpDnsCallback {
void onHttpDnsCompleted(HTTPDNSResult result);

View File

@@ -1,4 +1,4 @@
package com.alibaba.sdk.android.httpdns;
package com.newsdk.sdk.android.httpdns;
import java.util.ArrayList;
import java.util.List;

View File

@@ -1,4 +1,4 @@
package com.alibaba.sdk.android.httpdns;
package com.newsdk.sdk.android.httpdns;
import android.content.Context;

View File

@@ -1,10 +1,10 @@
package com.alibaba.sdk.android.httpdns;
package com.newsdk.sdk.android.httpdns;
import android.content.Context;
import android.text.TextUtils;
import com.alibaba.sdk.android.httpdns.network.HttpDnsAdapterOptions;
import com.alibaba.sdk.android.httpdns.network.HttpDnsHttpAdapter;
import com.newsdk.sdk.android.httpdns.network.HttpDnsAdapterOptions;
import com.newsdk.sdk.android.httpdns.network.HttpDnsHttpAdapter;
import java.util.HashMap;
import java.util.Map;

View File

@@ -1,4 +1,4 @@
package com.alibaba.sdk.android.httpdns;
package com.newsdk.sdk.android.httpdns;
/**
* 鏃ュ織鎺ュ彛

Some files were not shown because too many files have changed in this diff Show More