From: snickersun Date: Wed, 12 Feb 2020 17:09:11 +0000 (+0800) Subject: 1、添加dNSCache库,并实现sina DNSCache 功能,优化服务器连接DNS搜索。 X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=7907e9b98aa5302d3964ac7a6181f3c25b3f371d;p=protocol_srv.git 1、添加dNSCache库,并实现sina DNSCache 功能,优化服务器连接DNS搜索。 2、实现SMS 命令行,可以重新配置服务器地址,IMEI地址以及获取手表状态。 支持的命令有: #deviceinfo# #status# #imei:reset #imei:123456789012345 #ip#=reset# #ip#=192.168.1.1,8089# #ip#=192.168.1.1:8089# --- diff --git a/app/app.iml b/app/app.iml index 325d8851..e9dfcaaf 100644 --- a/app/app.iml +++ b/app/app.iml @@ -4,8 +4,8 @@ @@ -120,5 +120,11 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index d1a2093b..bbc4d72d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -25,12 +25,7 @@ android { testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } - buildTypes { - release { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' - } - } + signingConfigs { key { storeFile file("EQC_G5.jks") @@ -89,13 +84,14 @@ android { // } } dependencies { - compile fileTree(include: ['*.jar'], dir: 'libs') + compile fileTree(include: ['*.jar', '*.aar'], dir: 'libs') androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:25.1.0' compile 'com.github.ChestnutPlus:TestModules:v1.0.16' testCompile 'junit:junit:4.12' + implementation project(path: ':dNSCache') } def getVersionCode() { @@ -119,6 +115,6 @@ def getVersionCode() { def releaseTime() { - return new Date().format("yyyyMMddHHmm", TimeZone.getTimeZone("GMT+08:00")) + return new Date().format("yyMMddHHmm", TimeZone.getTimeZone("GMT+08:00")) } \ No newline at end of file diff --git a/app/src/main/java/com/enqualcomm/support/Config.java b/app/src/main/java/com/enqualcomm/support/Config.java index 351b79f1..c0c75d8f 100644 --- a/app/src/main/java/com/enqualcomm/support/Config.java +++ b/app/src/main/java/com/enqualcomm/support/Config.java @@ -5,6 +5,7 @@ import android.content.SharedPreferences; import android.text.TextUtils; import com.enqualcomm.support.bean.ICLocation; +import com.enqualcomm.support.bean.Runtime; import com.enqualcomm.support.utils.SharPreferenceUtil; import org.json.JSONException; @@ -273,6 +274,7 @@ public class Config { } final static String KeyProtocolServerIP="ProtocolServerIP"; + final static String KeyProtocolServerHOST="ProtocolServerHOST"; final static String KeyProtocolServerPort="ProtoclServerPort";; final static String KeyFotaServerIP="FotaServerIP"; final static String KeyFotaServerPort="FotaServerPort"; @@ -285,8 +287,9 @@ public class Config { final static String KeyContactsList="ContactsList"; final static String KeySOSNumbersList="SOSNumbersList"; + final static String KeyIMEI="IMEI"; - + final static String KeyHeartBeatCycle="ServerHeartBeatCycle"; public static void setAlarmCycle(Context context, int cycle){ SharPreferenceUtil.setPrefInt(context,KeyAlarmCycle,cycle); @@ -306,6 +309,34 @@ public class Config { return SharPreferenceUtil.getPrefString(context,KeyProtocolServerIP,"118.178.155.223"); } + public static void loadModCycleSettings(Runtime runtime){ + runtime.setPpgTestCycle(Config.getPPGTestCycle(runtime.getContextProxy().context)); + runtime.getLocationInstance().setLocation_cycle(Config.getLocationCycle(runtime.getContextProxy().context)); + runtime.getLocationInstance().setWorkingMod(Config.getLocationMode(runtime.getContextProxy().context)); + } + + public static void loadHearBeatSetting(Runtime runtime){ + runtime.setHeartBeatCycle(Config.getHeartBeatCycle(runtime.getContextProxy().context)); + } + public static void loadServerSettings(Runtime runtime){ + runtime.setHostAndPort(Config.getProtocolServerHost(runtime.getContextProxy().context),Config.getProtocolServerPort(runtime.getContextProxy().context)); + } + + public static void setIMEI(Context context, String imei){ + SharPreferenceUtil.setPrefString(context,KeyIMEI,imei); + } + + public static String getIMEI(Context context){ + return SharPreferenceUtil.getPrefString(context,KeyIMEI,""); + } + + public static String getProtocolServerHost(Context context){ + return SharPreferenceUtil.getPrefString(context,KeyProtocolServerHOST,"watch.jiai.pro"); + } + + public static void setProtocolServerHost(Context context,String host){ + SharPreferenceUtil.setPrefString(context,KeyProtocolServerHOST,host); + } public static int getProtocolServerPort(Context context){ return SharPreferenceUtil.getPrefInt(context,KeyProtocolServerPort,8090); } @@ -333,6 +364,14 @@ public class Config { return SharPreferenceUtil.getPrefInt(context,KeyPpgTestCycle,30); } + + public static int getHeartBeatCycle(Context context){ + return SharPreferenceUtil.getPrefInt(context,KeyHeartBeatCycle,6); + } + + public static void setHeartBeatCycle(Context context,int cycle){ + SharPreferenceUtil.setPrefInt(context,KeyHeartBeatCycle,cycle); + } public static void setLocationCycle(Context context,int cycle){ SharPreferenceUtil.setPrefInt(context,KeyLocationCycle,cycle); } diff --git a/app/src/main/java/com/enqualcomm/support/Constants.java b/app/src/main/java/com/enqualcomm/support/Constants.java index f50b5927..42cb2af8 100644 --- a/app/src/main/java/com/enqualcomm/support/Constants.java +++ b/app/src/main/java/com/enqualcomm/support/Constants.java @@ -3,6 +3,8 @@ package com.enqualcomm.support; import android.net.Uri; public interface Constants { + + public static final String ACTION_BROADCAST_PPG = "com.enqualcomm.support.ACTION_BROADCAST_PPG"; public static final String ACTION_ADDTEST_CONTACTS = "com.enqualcomm.imessage.ACTION_ADDTEST_CONTACTS"; public static final String ACTION_ALARM_ADD_DATAPOINTS = "com.enqualcomm.support.ADD_DATAPOINTS"; diff --git a/app/src/main/java/com/enqualcomm/support/CoreService.java b/app/src/main/java/com/enqualcomm/support/CoreService.java index 6c294fc9..eba3437c 100644 --- a/app/src/main/java/com/enqualcomm/support/CoreService.java +++ b/app/src/main/java/com/enqualcomm/support/CoreService.java @@ -236,12 +236,6 @@ public class CoreService extends Service { if (coreService == null) return; Logger.i("onConnectionClose++ retry to connect again!"); -// startConnectionRetryTimer(); - String ip=Util.parseHostGetIPAddress(coreService.runtime.getHost()); - if ( ip !=null && ! ip.equals(coreService.runtime.getSrvIP())){ - Logger.i("HostName "+coreService.runtime.getHost()+ " IP changed from "+coreService.runtime.getSrvIP()+" to "+ip); - coreService.runtime.setSrvIP(ip); - } coreService.connectionServiceChain.processConnectionClose(coreService.connection, coreService.runtime); } @@ -327,14 +321,14 @@ public class CoreService extends Service { private AbstractConnectionService getConnectionServiceChain() { - Initialize initialize = new Initialize(); +// Initialize initialize = new Initialize(); CheckSIM checkSIM = new CheckSIM(); this.mKeepAlive = new KeepAlive(); this.mDeliver = new Deliver(this.connection,this.runtime); - initialize.setNext(checkSIM); +// initialize.setNext(checkSIM); checkSIM.setNext(this.mKeepAlive); this.mKeepAlive.setNext(this.mDeliver); - return initialize; + return checkSIM; } private void getDBFile() { @@ -354,12 +348,6 @@ public class CoreService extends Service { return sendChatMessage; } - private void loadSettings(){ - this.runtime.setPpgTestCycle(Config.getPPGTestCycle(this)); - this.runtime.getLocationInstance().setLocation_cycle(Config.getLocationCycle(this)); - this.runtime.getLocationInstance().setWorkingMod(Config.getLocationMode(this)); - } - private void loadStepCount() { int i = SharPreferenceUtil.getPrefInt(this, KEY_STEP_COUNT, 0); int j = SharPreferenceUtil.getPrefInt(this, KEY_SAVE_STEP_COUNT, 0); @@ -463,9 +451,16 @@ public class CoreService extends Service { this.runtime.setDBHelper(new DBHelper(getContentResolver(), this)); this.runtime.setContextProxy(new ContextProxy(this)); this.runtime.setLbsHelper(new LBSHelper(this,this.runtime.getContextProxy().getWifiManager(), this.runtime)); - this.runtime.setImeiAndCid(PhoneUtils.getIMEI(this),""); + + if (Config.getIMEI(runtime.getContextProxy().context).isEmpty()){ + //如果配置里有IMEI,优先选配置里的,没有则选择系统的 + runtime.setImeiAndCid(PhoneUtils.getIMEI(this),""); + } else{ + runtime.setImeiAndCid(Config.getIMEI(runtime.getContextProxy().context),""); + } this.runtime.setHRS(new heartRateStatus()); this.runtime.setUseQueue(true); + this.runtime.initDnsUtil(this.getApplicationContext()); this.connectionServiceChain = getConnectionServiceChain(); this.invokeHandlerServiceChain = getInvokeHandlerServiceChain(); if (cmcm_call_eiot_into_powersave_mode() == 1) { @@ -478,7 +473,13 @@ public class CoreService extends Service { //保证获取正确的计步数据及其他参数初始化 loadStepCount(); - loadSettings(); + //初始化ServerHeartBeat Cycle + Config.loadHearBeatSetting(runtime); + //初始化PPG,LocationMod,LocationCycle + Config.loadModCycleSettings(runtime); + //初始化IP + Config.loadServerSettings(runtime); + this.connectionServiceChain.processAttach(this.connection, this.runtime); this.invokeHandlerServiceChain.processAttach(this.connection, this.runtime); @@ -486,12 +487,13 @@ public class CoreService extends Service { if (Config.LOG_TOFILE) FileOutputUtil.fileOutput(runtime.getCacheDir(), "alarmCycle", "设置闹钟服务 alarmCycle"); this.locationClient = new LocationClient(this.connection, this.runtime); this.connection.open(); - this.connection.connect(this.runtime.getSrvIP(), this.runtime.getPort()); - this.locationClient.start(); //启动inner Service startService(new Intent(this, InnerService.class)); + ReConnectToServer(); + this.locationClient.start(); + //设置本service为前台运行,不被会被清理 Notification notification = new Notification(); @@ -500,7 +502,6 @@ public class CoreService extends Service { notification.flags |= Notification.FLAG_FOREGROUND_SERVICE; startForeground(GRAY_SERVICE_ID, notification); - //注册接收 时间和tiimezone 变更消息 IntentFilter intentFilter = new IntentFilter(); // intentFilter.addAction("android.intent.action.TIME_SET"); @@ -690,7 +691,7 @@ public class CoreService extends Service { }else if(ACTION_SEND_EMEGENCY_LOCATION_STOP.equals(paramIntent.getAction())){ //stop Emegency location Stop - loadSettings(); //回复之前的 工作模式即可 + Config.loadModCycleSettings(runtime); //回复之前的 工作模式即可 }else if (ACTION_BATTERY_LOW_MSG.equals(paramIntent.getAction())){ runtime.setAlarmType(false,runtime.getBatteryLow(),false,false); @@ -778,19 +779,9 @@ public class CoreService extends Service { public void setHeartAlarm(){ // int mod=runtime.getLocationInstance().getWorkingMod(); StringBuilder sb=new StringBuilder(); - int cycle=3; -// switch(mod){ -// case EMERGNECY_MOD: -// case REALTIME_MOD: -// cycle=1; -// break; -// case NORMAL_MOD: -// cycle=15; -// break; -// case LOWPOWER_MOD: -// cycle=60; -// break; -// } + int cycle=runtime.getHeartBeatCycle(); + + //心跳指令默认设置为3分钟 AlarmHelper.setRealTimeAlarm(runtime.getContextProxy().context,cycle, HEART_ALARM); sb.append(" setHeartAlarm "+HEART_ALARM+", cycle "+cycle); @@ -873,33 +864,45 @@ public class CoreService extends Service { } public void startConnectionRetryTimer(){ - if (mTimer_retry_connect == null) { - mTimer_retry_connect = new Timer(); - } - - //如果开始进行连接重试,证明网络断开的,那么KeepAlive也需要重连(心跳包) - - KeepAlive.isConnected=false; - if (mTimer_retry_connect !=null){ - mTimer_retry_connect.schedule(new TimerTask() { - @Override - public void run() { - do_timer_task(); - } - },0,5000); //每5秒重试一次 + //联网再重试连接服务器 + if (SimSignalUtil.checkNet(runtime.getContextProxy().context) ) { + stopConnectionRetryTimer(); + if (mTimer_retry_connect == null) { + mTimer_retry_connect = new Timer(); + } + //如果开始进行连接重 + // { + // 试,证明网络断开的,那么KeepAlive也需要重连(心跳包) + + KeepAlive.isConnected = false; + if (mTimer_retry_connect != null) { + mTimer_retry_connect.schedule(new TimerTask() { + @Override + public void run() { + ReConnectToServer(); + } + }, 0, 5000); //每5秒重试一次 + } } } - public void do_timer_task(){ - + public void ReConnectToServer(){ - this.connection.connect(this.runtime.getSrvIP(), this.runtime.getPort()); + if (SimSignalUtil.checkNet(runtime.getContextProxy().context) ) { + String ip=runtime.getDnsUtil().getServerIP_ByDNSCache(runtime.getHost()); + if (null != ip && !ip.equals(runtime.getSrvIP())) { + runtime.setSrvIP(ip); + } + this.connection.connect(this.runtime.getSrvIP(), this.runtime.getPort()); - //里面如果连接成功 connectionOpen 会先发送 AP00 登录包 和发送AP03 心跳包 ,都成功则停止重试 - if (connection.isServerConnected() && KeepAlive.isConnected) - { - stopConnectionRetryTimer(); - } + //里面如果连接成功 connectionOpen 会先发送 AP00 登录包 和发送AP03 心跳包 ,都成功则停止重试 + if (connection.isServerConnected() && KeepAlive.isConnected) { + stopConnectionRetryTimer(); + } + }else{ + //没有网络就不用重新尝试连接网络了。网络连接后再重新尝试联网 + stopConnectionRetryTimer(); + } } public void stopConnectionRetryTimer(){ @@ -940,6 +943,10 @@ public class CoreService extends Service { } + public void disconnect_server(){ + this.connection.close(); + } + private final BroadcastReceiver mIntentReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { diff --git a/app/src/main/java/com/enqualcomm/support/ICApplication.java b/app/src/main/java/com/enqualcomm/support/ICApplication.java index d78344d7..8d453241 100644 --- a/app/src/main/java/com/enqualcomm/support/ICApplication.java +++ b/app/src/main/java/com/enqualcomm/support/ICApplication.java @@ -10,6 +10,7 @@ import android.util.SparseArray; import com.enqualcomm.support.BuildConfig; +import com.sina.util.dnscache.DNSCache; import java.util.HashMap; diff --git a/app/src/main/java/com/enqualcomm/support/ICSmsManager.java b/app/src/main/java/com/enqualcomm/support/ICSmsManager.java index fb5a3769..a4224503 100644 --- a/app/src/main/java/com/enqualcomm/support/ICSmsManager.java +++ b/app/src/main/java/com/enqualcomm/support/ICSmsManager.java @@ -17,10 +17,13 @@ import android.widget.Toast; import com.enqualcomm.support.bean.Runtime; import com.enqualcomm.support.utils.DeviceInfoUtil; import com.enqualcomm.support.utils.Logger; +import com.enqualcomm.support.utils.ServiceUtil; import java.util.ArrayList; import java.util.Iterator; +import chestnut.utils.PhoneUtils; + public class ICSmsManager { private static String mNumber; @@ -41,50 +44,6 @@ public class ICSmsManager { intentFilter.addAction("android.provider.Telephony.SMS_RECEIVED"); intentFilter.setPriority(2147483647); this.mContext.registerReceiver(this.smsReceiver, intentFilter); - - - //处理返回的发送状态 - String SENT_SMS_ACTION = "SENT_SMS_ACTION"; - Intent sentIntent = new Intent(SENT_SMS_ACTION); - PendingIntent sentPI = PendingIntent.getBroadcast(mContext, 0, sentIntent, - 0); -// register the Broadcast Receivers - mContext.registerReceiver(new BroadcastReceiver() { - @Override - public void onReceive(Context _context, Intent _intent) { - switch (getResultCode()) { - case Activity.RESULT_OK: - Toast.makeText(mContext, - "短信发送成功", Toast.LENGTH_SHORT) - .show(); - break; - case SmsManager.RESULT_ERROR_GENERIC_FAILURE: - break; - case SmsManager.RESULT_ERROR_RADIO_OFF: - break; - case SmsManager.RESULT_ERROR_NULL_PDU: - break; - } - } - }, new IntentFilter(SENT_SMS_ACTION)); - - - //处理返回的接收状态 - String DELIVERED_SMS_ACTION = "DELIVERED_SMS_ACTION"; -// create the deilverIntent parameter - Intent deliverIntent = new Intent(DELIVERED_SMS_ACTION); - PendingIntent deliverPI = PendingIntent.getBroadcast(mContext, 0, - deliverIntent, 0); - mContext.registerReceiver(new BroadcastReceiver() { - @Override - public void onReceive(Context _context, Intent _intent) { - Toast.makeText(mContext, - "收信人已经成功接收", Toast.LENGTH_SHORT) - .show(); - } - }, new IntentFilter(DELIVERED_SMS_ACTION)); - - } public void sendSMS(String phonenumber, String msg) { @@ -102,12 +61,104 @@ public class ICSmsManager { return true; } + + //1:短信设置服务器 + //#ip#=198.11.183.28,5088# + //回复 ip set ok + // + //2:短信写IMEI + //#imei:108111804000475 + //回复 imri write ok + // + //3: 短信增加APN + //#apn#=MCC,MNC,apn name,apn name,user name,password# + //回复 APN set ok + // + //4:远程查询软件版本和IMEI号码 + //#status# + //回复 + //IMEI: 353503535035350 + //SW: L02_20200208_V1 public void handleSMS_CMD(String phonenumber, String sms){ if (isAdminNumber(phonenumber)) { - if (sms.startsWith("GetDeviceInfo")) { - sendSMS(phonenumber,DeviceInfoUtil.getDeviceInfo(runtime)); + if (sms.startsWith("#deviceinfo#")) { + Logger.i("SMS "+sms+" reply "+DeviceInfoUtil.getShortDeviceInfo(runtime)); + sendSMS(phonenumber,DeviceInfoUtil.getShortDeviceInfo(runtime)); + }else if (sms.startsWith("#status#")) { + String reply="IMEI="+runtime.IMEI()+"\nSW:"+DeviceInfoUtil.getVersionCode(runtime.getContextProxy().context)+" "+DeviceInfoUtil.getSWVersionDisplayName(); + Logger.i("SMS "+sms+" reply \n"+reply); + sendSMS(phonenumber,reply); + }else if (sms.startsWith("#imei:")) { + String imei=sms.substring(6); + Logger.i("SMS "+sms+" imei="+imei); + if (imei.length()==15 ) { + Config.setIMEI(runtime.getContextProxy().context, imei); + runtime.setImeiAndCid(imei, ""); + sendSMS(phonenumber, "set IMEI " + imei + " sucess !"); + CoreService.getInstance().disconnect_server(); + CoreService.getInstance().ReConnectToServer(); + }else if (imei.equals("reset")) { + Config.setIMEI(runtime.getContextProxy().context, ""); + runtime.setImeiAndCid(PhoneUtils.getIMEI(runtime.getContextProxy().context), ""); + sendSMS(phonenumber, "reset IMEI to " + PhoneUtils.getIMEI(runtime.getContextProxy().context) + " sucess !"); + CoreService.getInstance().disconnect_server(); + CoreService.getInstance().ReConnectToServer(); + }else{ + sendSMS(phonenumber, "set IMEI " + imei + " failed ! len!=15"); + } + }else if (sms.startsWith("#ip#=") && sms.endsWith("#")) { + String tmp[]=sms.split("="); + String reply=""; + Logger.i(sms+" len "+tmp.length); + if (tmp.length==2) + { + //分析 以 , 为分界的格式 + String[] ipstr = tmp[1].split(","); + if (ipstr[0].equals("reset#")) { + Config.setProtocolServerHost(runtime.getContextProxy().context, Runtime.DefaultHost); + Config.setProtocolServerAddr(runtime.getContextProxy().context, "", Runtime.DefaultPort); + reply = "reset ServerIP to " + Runtime.DefaultHost + ":" + Runtime.DefaultPort + " success! "; + Config.loadServerSettings(runtime); + CoreService.getInstance().disconnect_server(); + CoreService.getInstance().ReConnectToServer(); + }else if (ipstr.length==2){ + String ip=ipstr[0]; + int port=Integer.valueOf(ipstr[1].replace("#","")); + Config.setProtocolServerHost(runtime.getContextProxy().context,ip); + Config.setProtocolServerAddr(runtime.getContextProxy().context,"",port); + reply = sms+" success! "; + Config.loadServerSettings(runtime); + CoreService.getInstance().disconnect_server(); + CoreService.getInstance().ReConnectToServer(); + }else{ + //分析以 : 为分界的格式 + ipstr = tmp[1].split(":"); + + if (ipstr[0].equals("reset#")) { + Config.setProtocolServerHost(runtime.getContextProxy().context, Runtime.DefaultHost); + Config.setProtocolServerAddr(runtime.getContextProxy().context, "", Runtime.DefaultPort); + reply = "reset ServerIP to " + Runtime.DefaultHost + ":" + Runtime.DefaultPort + " success! "; + Config.loadServerSettings(runtime); + CoreService.getInstance().disconnect_server(); + CoreService.getInstance().ReConnectToServer(); + } else if (ipstr.length == 2) { + String ip = ipstr[0]; + int port = Integer.valueOf(ipstr[1].replace("#", "")); + Config.setProtocolServerHost(runtime.getContextProxy().context, ip); + Config.setProtocolServerAddr(runtime.getContextProxy().context, "", port); + reply = sms + " success! "; + Config.loadServerSettings(runtime); + CoreService.getInstance().disconnect_server(); + CoreService.getInstance().ReConnectToServer(); + } else { + reply = sms + " falied! "; + } + } + }else{ + reply = sms + " falied! "; + } + sendSMS(phonenumber, reply); } - } } diff --git a/app/src/main/java/com/enqualcomm/support/MainActivity.java b/app/src/main/java/com/enqualcomm/support/MainActivity.java index 33e6466a..0237d3e2 100644 --- a/app/src/main/java/com/enqualcomm/support/MainActivity.java +++ b/app/src/main/java/com/enqualcomm/support/MainActivity.java @@ -15,6 +15,7 @@ import android.widget.TextView; import android.widget.ToggleButton; import com.enqualcomm.support.R; +import com.enqualcomm.support.utils.DeviceInfoUtil; import com.ic.jni.ICJniUtils; import com.enqualcomm.support.CoreService; import com.enqualcomm.support.utils.Logger; @@ -93,7 +94,7 @@ public class MainActivity extends AppCompatActivity { TextView tv_version=(TextView)findViewById(R.id.textViewVersion); - tv_version.setText( getVersionName(this)); + tv_version.setText(DeviceInfoUtil.getVersionName(this)); } @@ -123,30 +124,6 @@ public class MainActivity extends AppCompatActivity { } - /** - * 得到当前应用版本名称的方法 - * - * @param context - * :上下文 - * @throws Exception - */ - public static String getVersionName(Context context) { - // 获取packagemanager的实例 - PackageManager packageManager = context.getPackageManager(); - // getPackageName()是你当前类的包名 - PackageInfo packInfo = null; - String version="V001"; - try { - packInfo = packageManager.getPackageInfo(context.getPackageName(), 0); - version = packInfo.versionName; - } catch (PackageManager.NameNotFoundException e) { - e.printStackTrace(); - } - return version; - } - - - private View.OnClickListener clickListener = new View.OnClickListener() { @Override diff --git a/app/src/main/java/com/enqualcomm/support/bean/DNSTaskModel.java b/app/src/main/java/com/enqualcomm/support/bean/DNSTaskModel.java new file mode 100644 index 00000000..e14c5a66 --- /dev/null +++ b/app/src/main/java/com/enqualcomm/support/bean/DNSTaskModel.java @@ -0,0 +1,76 @@ +package com.enqualcomm.support.bean; + +import com.sina.util.dnscache.DomainInfo; + +public class DNSTaskModel { + + + //---------------任务--------------- + + public long taskID = 0 ; + + public int status = 0 ; //状态:(完成\错误) + + public long taskStartTime = 0 ; //开始时间: + + public long taskStopTime = 0 ;//结束时间: + + public long taskExpendTime = 0 ;//消耗时间: + + public String url = "" ; //任务传入URL + + //-------------HTTPDNS库------------- + + public String httpDnsResult = "" ; //返回结果: + + public long httpDnsExpendTime = 0 ; //响应耗时: + + + + //------------IP+HOST请求------------ + + public String hostUrl = "" ; //访问URL: + + public String hostIp = "" ; //访问服务器IP: + + public int hostCode = 0 ; //服务器返回CODE: + + public byte[] hostInputStreamResult = null ; + + public String hostResult = "" ; //服务器返回结果:(可点击看详情) + + public long hostExpendTime = 0 ; //请求耗时: + + + + //------------域名直接请求------------ + + public String domainUrl = "" ; //访问URL: + + public String domainIp = "" ; //访问服务器IP: + + public int domainCode = 0 ; //服务器返回CODE: + + public byte[] domainInputStreamResult = null ; + + public String domainResult = "" ; //服务器返回结果:(可点击看详情) + + public long domainExpendTime = 0 ; //请求耗时: + + + + //------------设备环境信息------------ + + public String netType = ""; //网络环境(WIFI\2G\3G\4G\未知) + + public String spName = "" ; //运营商:(WIFI名字\手机卡运营商\未知) + + + + + //------------HttpDns返回相关信息------------ + + public DomainInfo[] domainInfo = null ; + + +} diff --git a/app/src/main/java/com/enqualcomm/support/bean/Runtime.java b/app/src/main/java/com/enqualcomm/support/bean/Runtime.java index e6dfe08f..8d0743e6 100644 --- a/app/src/main/java/com/enqualcomm/support/bean/Runtime.java +++ b/app/src/main/java/com/enqualcomm/support/bean/Runtime.java @@ -1,9 +1,12 @@ package com.enqualcomm.support.bean; +import android.content.Context; + import com.enqualcomm.support.adapter.LBSHelper; import com.enqualcomm.support.utils.ContextProxy; import com.enqualcomm.support.utils.DBHelper; +import com.enqualcomm.support.utils.DnsUtil; import com.enqualcomm.support.utils.Logger; import java.io.File; @@ -54,7 +57,10 @@ public class Runtime { private String haveBuy; private String haveTry; - + + public static final String DefaultHost="watch.jiai.pro"; + public static final int DefaultPort=8090; + private String host = "watch.jiai.pro"; //118.178.155.223 private String srvIP = "118.178.155.223";//"39.98.94.164"; @@ -63,6 +69,7 @@ public class Runtime { private int port = 8090;//20048;//8888;//8090; + private boolean testServerProp=false; private String imei_cid = ""; @@ -155,12 +162,31 @@ public class Runtime { private boolean shutdown; + + private DnsUtil dnsUtil=null; + + public void initDnsUtil(Context context){ + if (dnsUtil==null) + dnsUtil=new DnsUtil(5,context); + } + public DnsUtil getDnsUtil(){ + return dnsUtil; + } private int lastStepCount=0; private long timestamp; public int totalStepCount; + private int heartbeatCycle; + + public int getHeartBeatCycle() + { + return heartbeatCycle; + } + public void setHeartBeatCycle(int cycle){ + heartbeatCycle=cycle; + } public heartRateStatus getHRS(){ return HRS; } @@ -278,11 +304,16 @@ public class Runtime { public void setHaveBatteryChange(boolean paramBoolean) { this.haveBatteryChange = paramBoolean; } + public void setHost(String _host){ + host=_host; + } public void setHostAndPort(String paramString, int paramInt) { this.host = paramString; this.port = paramInt; } - + public void setPort(int _port){ + port=_port; + } public void setImeiAndCid(String paramString1, String paramString2) { this.imei = paramString1; this.cid = paramString2; diff --git a/app/src/main/java/com/enqualcomm/support/service/HeartRateManager.java b/app/src/main/java/com/enqualcomm/support/service/HeartRateManager.java index a4e4aaf0..81b13b5b 100644 --- a/app/src/main/java/com/enqualcomm/support/service/HeartRateManager.java +++ b/app/src/main/java/com/enqualcomm/support/service/HeartRateManager.java @@ -30,6 +30,7 @@ import com.enqualcomm.support.utils.TimeUtil; import java.util.Timer; import java.util.TimerTask; +import static com.enqualcomm.support.Constants.ACTION_BROADCAST_PPG; import static com.enqualcomm.support.Constants.ACTION_HEATR_RATE_START; import static com.enqualcomm.support.Constants.MSG_WHAT_PPG; import static com.enqualcomm.support.Constants.key_bph; @@ -62,8 +63,10 @@ public class HeartRateManager extends AbstractInvokeHandlerService { case 100: { //只有检测PPG成功,且网络连接中才发送数据 if (runtime.getHRS().getHeartrateWorkingStat() == heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_TEST_SUCCESS) { - runtime.getHRS().setLastTestTime(TimeUtil.getLocalTime()); + runtime.getHRS().setLastTestTime(TimeUtil.getSystemTime3()); String PPGDATA = protocolAPIHelper.APHT(runtime); + sendBroadcastPPGResult(); + //因为协议中没有时间变量,所以只能实时传输,如果恰巧没有网络也只能丢弃,有时间变量的话,可以考虑通过deliver的buffer来进行缓存发送 if (connection.isServerConnected()) { connection.send(protocolAPIHelper.genStringMessage("APHT", PPGDATA)); Logger.i("Send PPG " + PPGDATA); @@ -112,6 +115,14 @@ public class HeartRateManager extends AbstractInvokeHandlerService { } }; + private void sendBroadcastPPGResult(){ + Intent intent=new Intent(ACTION_BROADCAST_PPG); + intent.putExtra("ppg",runtime.getHRS().getPPG()); + intent.putExtra("bph",runtime.getHRS().getBPH()); + intent.putExtra("bpl",runtime.getHRS().getBPL()); + intent.putExtra("time",runtime.getHRS().getTestTime()); + runtime.getContextProxy().context.sendBroadcast(intent); + } public void regReceiver(){ //注册“网络变化”的广播接收器 IntentFilter intentFilter = new IntentFilter(); diff --git a/app/src/main/java/com/enqualcomm/support/service/Initialize.java b/app/src/main/java/com/enqualcomm/support/service/Initialize.java index ec9b80bd..d29e6306 100644 --- a/app/src/main/java/com/enqualcomm/support/service/Initialize.java +++ b/app/src/main/java/com/enqualcomm/support/service/Initialize.java @@ -60,8 +60,8 @@ public class Initialize extends AbstractConnectionService { if (this.initOK) return false; - if (paramRuntime.IMSI() != null && !paramRuntime.IMSI().startsWith("46001")) - paramRuntime.IMSI().startsWith("46006"); +// if (paramRuntime.IMSI() != null && !paramRuntime.IMSI().startsWith("46001")) +// paramRuntime.IMSI().startsWith("46006"); //区分联通、移动、电信 号码的策略 //1 通过IMSI号前5位判断 @@ -76,25 +76,16 @@ public class Initialize extends AbstractConnectionService { //ICCID前六位运营商代码:中国移动的为:898600;898602 ,中国联通的为:898601,中国电信898603 - int i = SharPreferenceUtil.getPrefInt((paramRuntime.getContextProxy()).context, "location_mode", 2); - int j = SharPreferenceUtil.getPrefInt((paramRuntime.getContextProxy()).context, "location_cycle", 3); - StringBuilder stringBuilder = new StringBuilder(); - stringBuilder.append(i); - stringBuilder.append("@"); - stringBuilder.append(j); - Config.work_mode = stringBuilder.toString(); - stringBuilder = new StringBuilder(); - stringBuilder.append(" antioff ="); - stringBuilder.append(Config.antioff); - Logger.i(stringBuilder.toString()); - Config.sw_release_no = DeviceInfoUtil.getCustomId(); + Config.loadServerSettings(paramRuntime); + //发送登录包 paramConnection.send(new StringMessage(protocolAPIHelper.AP00(paramRuntime))); -// paramConnection.send(new StringMessage(protocolAPIHelper.AP00(paramRuntime))); -// paramConnection.send(new StringMessage(protocolAPIHelper.AP00(paramRuntime))); + + return false; } - + + public void onDetach(Connection paramConnection, Runtime paramRuntime) { this.initOK = false; } diff --git a/app/src/main/java/com/enqualcomm/support/service/KeepAlive.java b/app/src/main/java/com/enqualcomm/support/service/KeepAlive.java index c61eb8a0..205707b3 100644 --- a/app/src/main/java/com/enqualcomm/support/service/KeepAlive.java +++ b/app/src/main/java/com/enqualcomm/support/service/KeepAlive.java @@ -97,11 +97,11 @@ public class KeepAlive extends AbstractConnectionService { this.reConnectionNumber++; this.firstReConnected = false; } - if (paramRuntime.getLockSimInfo()) { - paramConnection.disconnect(); - return; - } - paramConnection.connect(paramRuntime.getSrvIP(), paramRuntime.getPort()); +// if (paramRuntime.getLockSimInfo()) { +// paramConnection.disconnect(); +// return; +// } + CoreService.getInstance().ReConnectToServer(); } } @@ -124,8 +124,8 @@ public class KeepAlive extends AbstractConnectionService { if (this.first) { this.first = false; return; - } - connection.connect(runtime.getSrvIP(), runtime.getPort()); + } + CoreService.getInstance().ReConnectToServer(); } } }); @@ -162,16 +162,12 @@ public class KeepAlive extends AbstractConnectionService { stringBuilder.append(",set KeepAlive isConnected = true"); Logger.i(stringBuilder.toString()); // if (!connectionError) { - connectionError = false; -// connection.send(protocolAPIHelper.genStringMessage("AP00",protocolAPIHelper.AP00(paramRuntime))); + connectionError = false; + + //发送登录包 + connection.send(protocolAPIHelper.genStringMessage("AP00",protocolAPIHelper.AP00(paramRuntime))); + //发送心跳包 connection.send(protocolAPIHelper.genStringMessage("heart",protocolAPIHelper.AP03(paramRuntime))); -// connection.send(protocolAPIHelper.genStringMessage("heart",protocolAPIHelper.AP03(paramRuntime))); -// connection.send(protocolAPIHelper.genStringMessage("heart",protocolAPIHelper.AP03(paramRuntime))); -// if (Deliver.haveSendH42) { -// ServiceUtil.offerQueue(new StringMessage(protocolAPIHelper.AP03(paramRuntime))); -// Deliver.haveSendH42 = false; -// } -// } isConnected = true; this.firstReConnected = true; diff --git a/app/src/main/java/com/enqualcomm/support/utils/DeviceInfoUtil.java b/app/src/main/java/com/enqualcomm/support/utils/DeviceInfoUtil.java index a87035a1..2614006c 100644 --- a/app/src/main/java/com/enqualcomm/support/utils/DeviceInfoUtil.java +++ b/app/src/main/java/com/enqualcomm/support/utils/DeviceInfoUtil.java @@ -2,6 +2,8 @@ package com.enqualcomm.support.utils; import android.app.ActivityManager; import android.content.Context; +import android.content.pm.PackageInfo; +import android.content.pm.PackageManager; import android.database.Cursor; import android.net.Uri; import android.os.Build; @@ -32,7 +34,43 @@ public class DeviceInfoUtil { str2 = "0"; return str2; } - + + /** + * 得到当前应用版本名称的方法 + * + * @param context + * :上下文 + * @throws Exception + */ + public static String getVersionName(Context context) { + // 获取packagemanager的实例 + PackageManager packageManager = context.getPackageManager(); + // getPackageName()是你当前类的包名 + try { + PackageInfo packInfo = packageManager.getPackageInfo(context.getPackageName(), 0); + String version = packInfo.versionName; + return version; + + }catch (Exception e){ + e.printStackTrace(); + } + return ""; + } + + public static String getVersionCode(Context context) { + // 获取packagemanager的实例 + PackageManager packageManager = context.getPackageManager(); + // getPackageName()是你当前类的包名 + try { + PackageInfo packInfo = packageManager.getPackageInfo(context.getPackageName(), 0); + String version = "V"+packInfo.versionCode; + return version; + + }catch (Exception e){ + e.printStackTrace(); + } + return ""; + } public static int getCustomId() { int i = -1; try { @@ -143,14 +181,13 @@ public class DeviceInfoUtil { public static String getDeviceInfo(Runtime runtime){ - int ppg= ICJniUtils.getPPG(); SimSignalUtil sim=SimSignalUtil.getInstance(runtime.getContextProxy().context); return new StringBuilder() - .append(TimeUtil.getSystemTime3()) - .append(SimSignalUtil.hasSimCard(runtime.getContextProxy().context)?" SIM ":" NoSIM ") + .append(TimeUtil.getLocalTime2()).append(" ").append(DeviceInfoUtil.getVersionCode(runtime.getContextProxy().context)) + .append(SimSignalUtil.hasSimCard(runtime.getContextProxy().context)?"\n SIM ":" NoSIM ") .append(sim.getNetworkType()==SimSignalUtil.IS_2G?"2G":(sim.getNetworkType()==SimSignalUtil.IS_3G)?"3G":(sim.getNetworkType()==SimSignalUtil.IS_4G?"4G":"unknown")) - .append(" [").append(runtime.getSignalStrength()+100).append(",Mini:").append(SimSignalUtil.getMinSignalStrength(sim.getNetworkType())).append("]") - .append("\n KeepAlive ").append(KeepAlive.isConnected) + .append(" [").append(runtime.getSignalStrength()).append(",Mini:").append(SimSignalUtil.getMinSignalStrength(sim.getNetworkType())).append("]") + .append("\n KeepAlive ").append(KeepAlive.isConnected).append(" , HBcycle ").append(runtime.getHeartBeatCycle()) .append("\n ServerConnected is ").append(runtime.isServerProtocolConnected()) .append(" \n Bat ").append(runtime.getBattery()) .append(" StepCount ").append(runtime.getTotalStepCount()) @@ -159,11 +196,32 @@ public class DeviceInfoUtil { .append(" \n LocationType ").append(runtime.getLocationInstance().getLocationType()) .append(" at ").append(runtime.getLocationInstance().getLocationTime()) .append(" \n PPGTestCycle ").append(runtime.getPpgTestCycle()) - .append("\n PPGStarted ").append(ICJniUtils.isPPGStarted()) - .append(",weared ").append(ICJniUtils.isWeared()) - .append(",ppg ").append(ppg) - .append(",bph ").append(ICJniUtils.getHighBloodPressure()) - .append(",bpl ").append(ICJniUtils.getLowBloodPressure()) + .append("\n LastPPG ").append(runtime.getHRS().getPPG()) + .append(",bph ").append(runtime.getHRS().getBPH()) + .append(",bpl ").append(runtime.getHRS().getBPL()) + .append(" at ").append(runtime.getHRS().getTestTime()) + .toString(); + } + public static String getShortDeviceInfo(Runtime runtime){ + + SimSignalUtil sim=SimSignalUtil.getInstance(runtime.getContextProxy().context); + return new StringBuilder() + .append(DeviceInfoUtil.getVersionCode(runtime.getContextProxy().context)) + .append(SimSignalUtil.hasSimCard(runtime.getContextProxy().context)?" ":" NoSIM ") + .append(sim.getNetworkType()==SimSignalUtil.IS_2G?"2G":(sim.getNetworkType()==SimSignalUtil.IS_3G)?"3G":(sim.getNetworkType()==SimSignalUtil.IS_4G?"4G":"unknown")) + .append("[").append(runtime.getSignalStrength()).append("]") + .append("\nHeartbeat[").append(runtime.getSrvIP()).append(":").append(runtime.getPort()).append(",").append(runtime.isServerProtocolConnected()).append(",").append(runtime.getHeartBeatCycle()) + .append("]\nBat").append(runtime.getBattery()) + .append(",Step").append(runtime.getTotalStepCount()) + .append( "\nLocation[M").append(runtime.getLocationInstance().getWorkingMod()) + .append(",C").append(runtime.getLocationInstance().getLocation_cycle()) + .append(",T").append(runtime.getLocationInstance().getLocationType()) + .append(",").append(runtime.getLocationInstance().getLocationTime()) + .append("]\nPPG[C").append(runtime.getPpgTestCycle()) + .append(",P").append(runtime.getHRS().getPPG()) + .append(",H").append(runtime.getHRS().getBPH()) + .append(",L").append(runtime.getHRS().getBPL()) + .append(",").append(runtime.getHRS().getTestTime()).append("]") .toString(); } diff --git a/app/src/main/java/com/enqualcomm/support/utils/DnsUtil.java b/app/src/main/java/com/enqualcomm/support/utils/DnsUtil.java new file mode 100644 index 00000000..90214afc --- /dev/null +++ b/app/src/main/java/com/enqualcomm/support/utils/DnsUtil.java @@ -0,0 +1,205 @@ +package com.enqualcomm.support.utils; + + +import android.content.Context; +import android.os.Handler; +import android.os.Message; + +import com.enqualcomm.support.Config; +import com.enqualcomm.support.bean.DNSTaskModel; +import com.sina.util.dnscache.DNSCache; +import com.sina.util.dnscache.DomainInfo; +import com.sina.util.dnscache.Tools; +import com.sina.util.dnscache.net.ApacheHttpClientNetworkRequests; +import com.sina.util.dnscache.net.INetworkRequests; +import com.sina.util.dnscache.net.networktype.NetworkManager; + +import java.util.HashMap; +import java.util.concurrent.Callable; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +import static com.sina.util.dnscache.AppConfigUtil.getApplicationContext; + +public class DnsUtil { + + public long ID_NUMBER = 0 ; + + + public final ExecutorService fixedThreadPool; + + public DnsUtil(int size, Context context){ + + DNSCache.Init(context); + DNSCache.getInstance().preLoadDomains(new String[]{Config.getProtocolServerHost(context)}); + + fixedThreadPool = Executors.newFixedThreadPool(size); + } + + public void runTask(final DNSTaskModel model, final Callable call){ + + fixedThreadPool.execute( new Runnable() { + @Override + public void run() { + + try { + + Thread.currentThread().setName("Task Pool"); + + Logger.log("TAG", "任务开始"); + + model.taskStartTime = System.currentTimeMillis(); + model.taskID = ++ID_NUMBER; + + + model.domainUrl = model.url ; + model.domainIp = java.net.InetAddress.getByName(Tools.getHostName(model.domainUrl)).getHostAddress(); + INetworkRequests domainNetRequests = new ApacheHttpClientNetworkRequests() ; + HashMap lmapKey = null ; + lmapKey = new HashMap(); + lmapKey.put("Connection", "keep-alive"); + +// long startDomainRequests = System.currentTimeMillis(); +// model.domainInputStreamResult = domainNetRequests.requestsByteArr(model.domainUrl,lmapKey) ; +// model.domainResult = byteToString(model.domainInputStreamResult) ; +// model.domainExpendTime = System.currentTimeMillis() - startDomainRequests ; +// model.domainCode = model.domainResult == null ? 500 : 200 ; + + try { + long startHttpDns = System.currentTimeMillis(); + DomainInfo[] infoList = DNSCache.getInstance().getDomainServerIp(model.url) ; +// model.httpDnsExpendTime = System.currentTimeMillis() - startHttpDns ; + if( infoList == null || infoList.length == 0 ){ + model.httpDnsResult = "null" ; + }else{ + model.domainInfo = infoList; +// for( DomainInfo info : infoList ) model.httpDnsResult += Tools.getHostName(info.url) + "、" ; +// +// HashMap hmapKey = null ; +// hmapKey = new HashMap(); +// hmapKey.put("host", infoList[0].host); + + + model.hostUrl = infoList[0].url ; + model.hostIp = Tools.getHostName(infoList[0].url) ; +// INetworkRequests hostNetRequests = new ApacheHttpClientNetworkRequests() ; +// long startHostRequests = System.currentTimeMillis(); +// +// model.hostInputStreamResult = hostNetRequests.requestsByteArr(infoList[0].url, hmapKey) ; +// model.hostResult = byteToString(model.hostInputStreamResult) ; +// +// model.hostExpendTime = System.currentTimeMillis() - startHostRequests ; +// model.hostCode = model.hostResult == null ? 0 : 200 ; + + } + } catch (Exception e) { + e.printStackTrace(); + } + + + try { + + // 反馈任务 +// model.domainInfo[0].code = String.valueOf(model.domainCode) ; +// model.domainInfo[0].data = model.domainResult ; +// model.domainInfo[0].startTime = String.valueOf(startDomainRequests) ; +//// DNSCache.getInstance().setDomainServerIpInfo( model.domainInfo[0] ); +// +// model.netType = NetworkManager.getInstance().NETWORK_TYPE_STR ; +// model.spName = NetworkManager.getInstance().SP_TYPE_STR ; +// +// model.status = 1 ; +// model.taskStopTime = System.currentTimeMillis(); +// model.taskExpendTime = model.taskStopTime - model.taskStartTime ; + + Logger.log("TAG", "任务结束"); + call.call(); + + } catch (Exception e) { + // TODO: handle exception + e.printStackTrace(); + } + + + } catch (Exception e) { + Logger.log("TAG", "任务失败"); + e.printStackTrace(); + } + +// try { +// Thread.sleep( (int) (Math.random() * 1000) ); +// } catch (InterruptedException e) { +// e.printStackTrace(); +// } + } + } ); + } + + + private String byteToString(byte[] data){ + return new String(data) ; + } + + public void reset(){ + ID_NUMBER = 0; + } + + public boolean isShutdown() { + return fixedThreadPool.isShutdown(); + } + + public void shutdownNow() { + fixedThreadPool.shutdownNow(); + } + + public void shutdown() { + fixedThreadPool.shutdown(); + } + + + + + // /////////////////////////////////////////////////////////////// + + int finishTag = 0; + + public String getServerIP_ByDNSCache(String host) { + + + DNSTaskModel temp=new DNSTaskModel(); + if (host.toLowerCase().startsWith("http://")) { + temp.url = host; + }else{ + temp.url = "http://"+host; + } + temp.hostIp=null; + temp.domainIp=null; + + Callable call = new Callable() { + @Override + public DNSTaskModel call() throws Exception { + Logger.i("get "+temp.url+" "+temp.domainIp+" , DnsCacheIP "+temp.hostIp); + + return temp; + } + }; + runTask(temp, call); + String ip; +// Logger.i(temp.toString()); + if (temp.domainIp!=null){ + if (temp.hostIp!=null){ + ip=temp.hostIp.toString(); + }else{ + ip=temp.domainIp.toString(); + } + }else{ + if(temp.hostIp!=null){ + ip=temp.hostIp.toString(); + }else { + ip=null; + } + } + return ip; + } + +} diff --git a/app/src/main/java/com/enqualcomm/support/utils/HttpDnsRecordUtil.java b/app/src/main/java/com/enqualcomm/support/utils/HttpDnsRecordUtil.java new file mode 100644 index 00000000..cdc1462d --- /dev/null +++ b/app/src/main/java/com/enqualcomm/support/utils/HttpDnsRecordUtil.java @@ -0,0 +1,146 @@ +package com.enqualcomm.support.utils; + + + +import com.enqualcomm.support.ICApplication; +import com.enqualcomm.support.bean.DNSTaskModel; + +import org.json.JSONException; +import org.json.JSONStringer; + +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; + +/** + * httpdns请求数据对比的缓存文件 + * @author xingyu10 + * + */ +public class HttpDnsRecordUtil { + + private static final String DNS_LOG_FOLDER = "/Android/data/.log/com.sina.util.dnscache/cache/"; + + /** + * 将任务数缓存至本地 + * @param model + */ + public static void record(DNSTaskModel model) { + File logFolder = getLogFolder(); + if (null == logFolder) { + return; + } + File writtingFile = getWrittingFile(logFolder); + if (null == writtingFile) { + return; + } + FileWriter writer = null; + String content = generateLogContent(model); + try { + writer = new FileWriter(writtingFile, true); + String lineSeparator = System.getProperty("line.separator"); + writer.write(content + lineSeparator); + } catch (IOException e) { + e.printStackTrace(); + } finally { + try { + if (writer != null) { + writer.close(); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + } + /** + * 获得最近使用的缓存文件 + * @return + */ + public static File getRecentlyRecordFile(){ + File logFolder = getLogFolder(); + if (null == logFolder) { + return null; + } + return getWrittingFile(logFolder); + } + /** + * 获取所有的缓存文件 + * @return + */ + public static File[] getRecordFiles(){ + File logFolder = getLogFolder(); + if (null == logFolder) { + return null; + } + return logFolder.listFiles(); + } + /** + * 删除缓存文件 + * @return + */ + public static boolean removeFiles(){ + File logFolder = getLogFolder(); + if (null == logFolder) { + return false; + } + boolean succ = true; + File[] files = logFolder.listFiles(); + if (null != files) { + for (File dstFile : files) { + succ &= dstFile.delete(); + } + } + return succ; + } + private static String generateLogContent(DNSTaskModel model) { + String result = null; + JSONStringer jsonStringer = new JSONStringer(); + try { + jsonStringer.object().key("taskID").value(model.taskID).key("taskExpendTime").value(model.taskExpendTime).key("hostExpendTime") + .value(model.hostExpendTime).key("domainExpendTime").value(model.domainExpendTime).endObject(); + result = jsonStringer.toString(); + } catch (JSONException e) { + e.printStackTrace(); + } + return result; + } + + /** + * eg: httpdns.0.log httpdns.1.log + * + * @param folder + * @return + */ + static File getWrittingFile(File folder) { + File file = null; + if (null != folder) { + String[] list = folder.list(); + if (null == list || list.length == 0) { + file = new File(folder, "httpdns." + 0 + ".log"); + return file; + } else { + int lastIndex = list.length - 1; + file = new File(folder, "httpdns." + lastIndex + ".log"); + // 10MB则继续新建 + if (file.length() > 10 * 1024 * 1024) { + file = new File(folder, "httpdns." + (lastIndex + 1) + ".log"); + } + return file; + } + } + return file; + } + + static File getLogFolder() { + return createLogFolderIfNecessary(); + } + + static File createLogFolderIfNecessary() { + File cacheDir = StorageUtils.getCacheDirectory(ICApplication.getInstance()); + File logdir = new File(cacheDir, ".log"); + if (!logdir.exists()) { + logdir.mkdirs(); + } + return logdir; + } +} diff --git a/app/src/main/java/com/enqualcomm/support/utils/IPtoAddress.java b/app/src/main/java/com/enqualcomm/support/utils/IPtoAddress.java new file mode 100644 index 00000000..7e718b94 --- /dev/null +++ b/app/src/main/java/com/enqualcomm/support/utils/IPtoAddress.java @@ -0,0 +1,133 @@ +package com.enqualcomm.support.utils; + +import android.os.Handler; +import android.os.Message; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.net.HttpURLConnection; +import java.net.URL; +import java.util.concurrent.ConcurrentHashMap; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class IPtoAddress { + + ///////////////////////////////////////////////////////////////// + + private static IPtoAddress Instance = null; + + private IPtoAddress() { } + + public static IPtoAddress getInstance() { + + if( Instance == null ){ + Instance = new IPtoAddress(); + } + return IPtoAddress.Instance; + } + + ///////////////////////////////////////////////////////////////// + + /** + * 缓存初始容量值 + */ + private final int INIT_SIZE = 8; + + /** + * 缓存最大容量值 + */ + private final int MAX_CACHE_SIZE = 32; + + /** + * 缓存链表 + */ + private ConcurrentHashMap data = new ConcurrentHashMap(INIT_SIZE, MAX_CACHE_SIZE); + + private final String API_URL = "http://ip138.com/ips1388.asp?ip="; + + ///////////////////////////////////////////////////////////////// + + public void toAddress( final int id, final String ip, final Handler handler){ + + String add = data.get(ip) ; + + if( add != null ){ + + Message message = new Message(); + message.what = id; + message.obj = add; + handler.sendMessage(message); + + }else{ + + // 请求服务器 查询ip 对应的地址 + new Thread( new Runnable() { + + @Override + public void run() { + // TODO Auto-generated method stub + Thread.currentThread().setName("IP to AddressAndSp"); + + String result = executeHttpGet(ip) ; + result = regularAddress(result) ; + data.put(ip, result) ; + + Message message = new Message(); + message.what = id; + message.obj = result; + handler.sendMessage(message); + + } + } ).start(); + + } + + } + + private String regularAddress( String result ){ + String str = "" ; + Pattern p = Pattern.compile("来自:(.*)

"); + Matcher m = p.matcher(result); + while(m.find()){ + str += m.group(1) ; + } + return str ; + } + + private String executeHttpGet( final String ip ) { + String result = null; + URL url = null; + HttpURLConnection connection = null; + InputStreamReader in = null; + try { + url = new URL(API_URL + ip); + connection = (HttpURLConnection) url.openConnection(); + in = new InputStreamReader(connection.getInputStream(),"gb2312"); + BufferedReader bufferedReader = new BufferedReader(in); + StringBuffer strBuffer = new StringBuffer(); + String line = null; + while ((line = bufferedReader.readLine()) != null) { + strBuffer.append(line); + } + result = strBuffer.toString(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (connection != null) { + connection.disconnect(); + } + if (in != null) { + try { + in.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + } + return result; + } + +} diff --git a/app/src/main/java/com/enqualcomm/support/utils/NettyConnection.java b/app/src/main/java/com/enqualcomm/support/utils/NettyConnection.java index f731b966..e1162ed9 100644 --- a/app/src/main/java/com/enqualcomm/support/utils/NettyConnection.java +++ b/app/src/main/java/com/enqualcomm/support/utils/NettyConnection.java @@ -206,8 +206,14 @@ public class NettyConnection implements Connection { public void connect(final String host, final int port) { long l = SystemClock.elapsedRealtime(); - if (l - realtime_old < 3000L) - return; + if (host.isEmpty()||host ==null){ + Logger.i("host name error "+host); + return ; + } + if (l - realtime_old < 3000L ) { + Logger.i("3秒内skip 重连!"); + return; + } realtime_old = l; Logger.i("connect1 "+host+":"+port); // disconnect(); diff --git a/app/src/main/java/com/enqualcomm/support/utils/NetworkObservable.java b/app/src/main/java/com/enqualcomm/support/utils/NetworkObservable.java index 11104186..fc250d8f 100644 --- a/app/src/main/java/com/enqualcomm/support/utils/NetworkObservable.java +++ b/app/src/main/java/com/enqualcomm/support/utils/NetworkObservable.java @@ -13,8 +13,8 @@ package com.enqualcomm.support.utils; public class NetworkObservable { BroadcastReceiver mNetStateBroadcastReceiver = new BroadcastReceiver() { public void onReceive(Context var1, Intent var2) { - NetworkInfo var3 = ((ConnectivityManager)var1.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo(); - if (var3 != null && var3.isAvailable()) { + NetworkInfo networkInfo = ((ConnectivityManager)var1.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo(); + if (networkInfo != null && networkInfo.isAvailable()) { StringBuilder var4 = new StringBuilder(); var4.append("BroadcastReceiver---reConnection++ KeepAlive.isConnected="); var4.append(KeepAlive.isConnected); @@ -25,6 +25,7 @@ public class NetworkObservable { Logger.i(var4.toString()); if (!KeepAlive.isConnected && !NetworkObservable.this.network_is_from_no_to_yes) { if (NetworkObservable.this.network_is_down) { + NetworkObservable.this.objectPublishSubject.onNext(3); NetworkObservable.this.network_is_down = false; } else { @@ -36,7 +37,6 @@ public class NetworkObservable { } else if (KeepAlive.isConnected) { NetworkObservable.this.network_is_down = false; } - NetworkObservable.this.network_is_from_no_to_yes = false; } else { Logger.i("网络断开"); diff --git a/app/src/main/java/com/enqualcomm/support/utils/SimSignalUtil.java b/app/src/main/java/com/enqualcomm/support/utils/SimSignalUtil.java index 888c3598..5c9bb109 100644 --- a/app/src/main/java/com/enqualcomm/support/utils/SimSignalUtil.java +++ b/app/src/main/java/com/enqualcomm/support/utils/SimSignalUtil.java @@ -4,6 +4,8 @@ import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.hardware.display.DisplayManager; +import android.net.ConnectivityManager; +import android.net.NetworkInfo; import android.os.Build; import android.os.PowerManager; import android.provider.Settings; @@ -101,7 +103,51 @@ public class SimSignalUtil { stringBuilder.append(paramString); Logger.i(stringBuilder.toString()); } - + + /** + * 检查用户的网络:是否有网络,所需权限: + */ + public static boolean checkNet(Context context) { + // 判断:WIFI链接 + boolean isWIFI = isWIFIConnection(context); + // 判断:Mobile链接 + boolean isMOBILE = isMOBILEConnection(context); + if (!isWIFI && !isMOBILE) { + return false;//既不是手机连接,也不是wifi连接 + } + return true; + }/** + * 判断:是否是手机链接 + * @param context + * @return + */ + private static boolean isMOBILEConnection(Context context) { + ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); + //获取连接的信息 + NetworkInfo networkInfo = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); + if (networkInfo != null) { + return networkInfo.isConnected(); + } + return false; + } + + /** + * 判断:WIFI链接 + * + * @param context + * @return + */ + private static boolean isWIFIConnection(Context context) { + ConnectivityManager manager = (ConnectivityManager) context + .getSystemService(Context.CONNECTIVITY_SERVICE); + + NetworkInfo networkInfo = manager + .getNetworkInfo(ConnectivityManager.TYPE_WIFI); + if (networkInfo != null) { + return networkInfo.isConnected(); + } + return false; + } public int getNetworkType() { init(); int networktype=IS_UNKNOWN; diff --git a/app/src/main/java/com/enqualcomm/support/utils/StorageUtils.java b/app/src/main/java/com/enqualcomm/support/utils/StorageUtils.java new file mode 100644 index 00000000..b19e0867 --- /dev/null +++ b/app/src/main/java/com/enqualcomm/support/utils/StorageUtils.java @@ -0,0 +1,154 @@ +/******************************************************************************* + * Copyright 2011-2013 Sergey Tarasevich + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *******************************************************************************/ +package com.enqualcomm.support.utils; + +import android.content.Context; +import android.content.pm.PackageManager; +import android.os.Environment; +import android.os.StatFs; + +import java.io.File; +import java.io.IOException; + +import static android.os.Environment.MEDIA_MOUNTED; + +/** + * Provides application storage paths + * + * @author Sergey Tarasevich (nostra13[at]gmail[dot]com) + * @since 1.0.0 + */ +public final class StorageUtils { + + private static final String EXTERNAL_STORAGE_PERMISSION = "android.permission.WRITE_EXTERNAL_STORAGE"; + private static final String INDIVIDUAL_DIR_NAME = "uil-images"; + + private StorageUtils() { + } + + /** + * Returns application cache directory. Cache directory will be created on SD card + * ("/Android/data/[app_package_name]/cache") if card is mounted and app has appropriate permission. Else - + * Android defines cache directory on device's file system. + * + * @param context Application context + * @return Cache {@link File directory}.
+ * NOTE: Can be null in some unpredictable cases (if SD card is unmounted and + * {@link Context#getCacheDir() Context.getCacheDir()} returns null). + */ + public static File getCacheDirectory(Context context) { + return getCacheDirectory(context, true); + } + + /** + * Returns application cache directory. Cache directory will be created on SD card + * ("/Android/data/[app_package_name]/cache") (if card is mounted and app has appropriate permission) or + * on device's file system depending incoming parameters. + * + * @param context Application context + * @param preferExternal Whether prefer external location for cache + * @return Cache {@link File directory}.
+ * NOTE: Can be null in some unpredictable cases (if SD card is unmounted and + * {@link Context#getCacheDir() Context.getCacheDir()} returns null). + */ + public static File getCacheDirectory(Context context, boolean preferExternal) { + File appCacheDir = null; + if (preferExternal && MEDIA_MOUNTED + .equals(Environment.getExternalStorageState()) && hasExternalStoragePermission(context) && haveFreeSpace()) { + appCacheDir = getExternalCacheDir(context); + } + if (appCacheDir == null) { + appCacheDir = context.getCacheDir(); + } + if (appCacheDir == null) { + String cacheDirPath = "/data/data/" + context.getPackageName() + "/cache/"; + appCacheDir = new File(cacheDirPath); + } + return appCacheDir; + } + + /** + * Returns individual application cache directory (for only image caching from ImageLoader). Cache directory will be + * created on SD card ("/Android/data/[app_package_name]/cache/uil-images") if card is mounted and app has + * appropriate permission. Else - Android defines cache directory on device's file system. + * + * @param context Application context + * @return Cache {@link File directory} + */ + public static File getIndividualCacheDirectory(Context context) { + File cacheDir = getCacheDirectory(context); + File individualCacheDir = new File(cacheDir, INDIVIDUAL_DIR_NAME); + if (!individualCacheDir.exists()) { + if (!individualCacheDir.mkdir()) { + individualCacheDir = cacheDir; + } + } + return individualCacheDir; + } + + /** + * Returns specified application cache directory. Cache directory will be created on SD card by defined path if card + * is mounted and app has appropriate permission. Else - Android defines cache directory on device's file system. + * + * @param context Application context + * @param cacheDir Cache directory path (e.g.: "AppCacheDir", "AppDir/cache/images") + * @return Cache {@link File directory} + */ + public static File getOwnCacheDirectory(Context context, String cacheDir) { + File appCacheDir = null; + if (MEDIA_MOUNTED.equals(Environment.getExternalStorageState()) && hasExternalStoragePermission(context)) { + appCacheDir = new File(Environment.getExternalStorageDirectory(), cacheDir); + } + if (appCacheDir == null || (!appCacheDir.exists() && !appCacheDir.mkdirs())) { + appCacheDir = context.getCacheDir(); + } + return appCacheDir; + } + + private static File getExternalCacheDir(Context context) { + File dataDir = new File(new File(Environment.getExternalStorageDirectory(), "Android"), "data"); + File appCacheDir = new File(new File(dataDir, context.getPackageName()), "cache"); + if (!appCacheDir.exists()) { + if (!appCacheDir.mkdirs()) { + return null; + } + try { + new File(appCacheDir, ".nomedia").createNewFile(); + } catch (IOException e) { + } + } + return appCacheDir; + } + + private static boolean hasExternalStoragePermission(Context context) { + int perm = context.checkCallingOrSelfPermission(EXTERNAL_STORAGE_PERMISSION); + return perm == PackageManager.PERMISSION_GRANTED; + } + + private static boolean haveFreeSpace() { + if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { + StatFs st = new StatFs(Environment.getExternalStorageDirectory().getPath()); + int blockSize = st.getBlockSize(); + long available = st.getAvailableBlocks(); + long availableSize = (blockSize * available); + if (availableSize < 1024 * 1024 * 10) {// //sd卡空间如果小于10M,就认为sd卡空间不足 + return false; + } + return true; + } + return false; + } +} diff --git a/app/src/main/java/com/enqualcomm/support/utils/TimeUtil.java b/app/src/main/java/com/enqualcomm/support/utils/TimeUtil.java index b30642b7..5c6afb14 100644 --- a/app/src/main/java/com/enqualcomm/support/utils/TimeUtil.java +++ b/app/src/main/java/com/enqualcomm/support/utils/TimeUtil.java @@ -10,7 +10,10 @@ public class TimeUtil { public static String getLocalTime() { return getLocalTime(System.currentTimeMillis()); } public static String getLocalTime(long paramLong) { return (new SimpleDateFormat("yyyy/MM/dd,HH:mm:ss")).format(new Date(paramLong)); } - + public static String getLocalTime2() { return getLocalTime2(System.currentTimeMillis()); } + + public static String getLocalTime2(long paramLong) { return (new SimpleDateFormat("MMddHHmmss")).format(new Date(paramLong)); } + public static String getSystemTime() { return getSystemTime(System.currentTimeMillis()); } public static String getSystemTime(long paramLong) { return (new SimpleDateFormat("yyyy-MM-dd;HH:mm:ss")).format(new Date(paramLong)); } diff --git a/app/src/main/java/com/enqualcomm/support/utils/Util.java b/app/src/main/java/com/enqualcomm/support/utils/Util.java index a539735a..88560fc0 100644 --- a/app/src/main/java/com/enqualcomm/support/utils/Util.java +++ b/app/src/main/java/com/enqualcomm/support/utils/Util.java @@ -42,6 +42,7 @@ public class Util { public static Charset UTF_8 = Charset.forName("UTF-8"); + /** * 解析域名获取IP数组 * @param host @@ -50,6 +51,8 @@ public class Util { public static String parseHostGetIPAddress(String host) { StringBuilder serverip=new StringBuilder(""); try { + + InetAddress[] inetAddressArr = InetAddress.getAllByName(host); if (inetAddressArr != null && inetAddressArr.length > 0) { String[] ipAddressArr = new String[inetAddressArr.length]; diff --git a/app/version_code.properties b/app/version_code.properties index c9bc6a94..0bb413ab 100644 --- a/app/version_code.properties +++ b/app/version_code.properties @@ -1,2 +1,2 @@ -#Mon Feb 10 23:47:07 CST 2020 -VERSION_CODE=348 +#Wed Feb 12 23:18:01 CST 2020 +VERSION_CODE=351 diff --git a/dNSCache/build.gradle b/dNSCache/build.gradle new file mode 100644 index 00000000..f62c8889 --- /dev/null +++ b/dNSCache/build.gradle @@ -0,0 +1,38 @@ +apply plugin: 'com.android.library' + +android { + compileSdkVersion 18 + buildToolsVersion "28.0.3" + + defaultConfig { + } + + buildTypes { + release { + zipAlignEnabled true // zip 对齐优化 +// shrinkResources true // 移除未使用的资源文件 +// signingConfig signingConfigs.key + minifyEnabled true + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + renderscriptDebuggable = false + debuggable = false + jniDebuggable = false + manifestPlaceholders = [:] + } + + debug { +// signingConfig signingConfigs.key + // 启用 Android 插件压缩器 +// minifyEnabled true +// useProguard false + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + } +} + +dependencies { + compile 'com.android.support:support-v4:18.0.0' +} diff --git a/dNSCache/build/.transforms/7c72370c09d54379f48fb03517858be0.bin b/dNSCache/build/.transforms/7c72370c09d54379f48fb03517858be0.bin new file mode 100644 index 00000000..47444ead --- /dev/null +++ b/dNSCache/build/.transforms/7c72370c09d54379f48fb03517858be0.bin @@ -0,0 +1 @@ +o/classes diff --git a/dNSCache/build/.transforms/7c72370c09d54379f48fb03517858be0/classes/classes.dex b/dNSCache/build/.transforms/7c72370c09d54379f48fb03517858be0/classes/classes.dex new file mode 100644 index 00000000..eace6926 Binary files /dev/null and b/dNSCache/build/.transforms/7c72370c09d54379f48fb03517858be0/classes/classes.dex differ diff --git a/dNSCache/build/generated/source/buildConfig/debug/com/sina/util/dnscache/BuildConfig.java b/dNSCache/build/generated/source/buildConfig/debug/com/sina/util/dnscache/BuildConfig.java new file mode 100644 index 00000000..be892cb5 --- /dev/null +++ b/dNSCache/build/generated/source/buildConfig/debug/com/sina/util/dnscache/BuildConfig.java @@ -0,0 +1,18 @@ +/** + * Automatically generated file. DO NOT MODIFY + */ +package com.sina.util.dnscache; + +public final class BuildConfig { + public static final boolean DEBUG = Boolean.parseBoolean("true"); + public static final String LIBRARY_PACKAGE_NAME = "com.sina.util.dnscache"; + /** + * @deprecated APPLICATION_ID is misleading in libraries. For the library package name use LIBRARY_PACKAGE_NAME + */ + @Deprecated + public static final String APPLICATION_ID = "com.sina.util.dnscache"; + public static final String BUILD_TYPE = "debug"; + public static final String FLAVOR = ""; + public static final int VERSION_CODE = -1; + public static final String VERSION_NAME = ""; +} diff --git a/dNSCache/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/AndroidManifest.xml b/dNSCache/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/AndroidManifest.xml new file mode 100644 index 00000000..8e11f7b2 --- /dev/null +++ b/dNSCache/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/AndroidManifest.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dNSCache/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/output.json b/dNSCache/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/output.json new file mode 100644 index 00000000..6cfc8556 --- /dev/null +++ b/dNSCache/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/output.json @@ -0,0 +1 @@ +[{"outputType":{"type":"AAPT_FRIENDLY_MERGED_MANIFESTS"},"apkData":{"type":"MAIN","splits":[],"versionCode":-1,"enabled":true,"outputFile":"dNSCache-debug.aar","fullName":"debug","baseName":"debug"},"path":"AndroidManifest.xml","properties":{"packageId":"com.sina.util.dnscache","split":""}}] \ No newline at end of file diff --git a/dNSCache/build/intermediates/annotation_processor_list/debug/annotationProcessors.json b/dNSCache/build/intermediates/annotation_processor_list/debug/annotationProcessors.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/dNSCache/build/intermediates/annotation_processor_list/debug/annotationProcessors.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/dNSCache/build/intermediates/annotations_typedef_file/debug/extractDebugAnnotations/typedefs.txt b/dNSCache/build/intermediates/annotations_typedef_file/debug/extractDebugAnnotations/typedefs.txt new file mode 100644 index 00000000..e69de29b diff --git a/dNSCache/build/intermediates/compile_library_classes/debug/classes.jar b/dNSCache/build/intermediates/compile_library_classes/debug/classes.jar new file mode 100644 index 00000000..8a891a62 Binary files /dev/null and b/dNSCache/build/intermediates/compile_library_classes/debug/classes.jar differ diff --git a/dNSCache/build/intermediates/compile_only_not_namespaced_r_class_jar/debug/R.jar b/dNSCache/build/intermediates/compile_only_not_namespaced_r_class_jar/debug/R.jar new file mode 100644 index 00000000..80118d51 Binary files /dev/null and b/dNSCache/build/intermediates/compile_only_not_namespaced_r_class_jar/debug/R.jar differ diff --git a/dNSCache/build/intermediates/incremental/debug-mergeJavaRes/merge-state b/dNSCache/build/intermediates/incremental/debug-mergeJavaRes/merge-state new file mode 100644 index 00000000..89cd6546 Binary files /dev/null and b/dNSCache/build/intermediates/incremental/debug-mergeJavaRes/merge-state differ diff --git a/dNSCache/build/intermediates/incremental/debug-mergeNativeLibs/merge-state b/dNSCache/build/intermediates/incremental/debug-mergeNativeLibs/merge-state new file mode 100644 index 00000000..099787d1 Binary files /dev/null and b/dNSCache/build/intermediates/incremental/debug-mergeNativeLibs/merge-state differ diff --git a/dNSCache/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml b/dNSCache/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml new file mode 100644 index 00000000..006fe5d6 --- /dev/null +++ b/dNSCache/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/dNSCache/build/intermediates/incremental/mergeDebugShaders/merger.xml b/dNSCache/build/intermediates/incremental/mergeDebugShaders/merger.xml new file mode 100644 index 00000000..df373080 --- /dev/null +++ b/dNSCache/build/intermediates/incremental/mergeDebugShaders/merger.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/dNSCache/build/intermediates/incremental/packageDebugAssets/merger.xml b/dNSCache/build/intermediates/incremental/packageDebugAssets/merger.xml new file mode 100644 index 00000000..09739c71 --- /dev/null +++ b/dNSCache/build/intermediates/incremental/packageDebugAssets/merger.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/dNSCache/build/intermediates/incremental/packageDebugResources/compile-file-map.properties b/dNSCache/build/intermediates/incremental/packageDebugResources/compile-file-map.properties new file mode 100644 index 00000000..1eaa4d58 --- /dev/null +++ b/dNSCache/build/intermediates/incremental/packageDebugResources/compile-file-map.properties @@ -0,0 +1,7 @@ +#Thu Feb 13 00:47:58 CST 2020 +D\:\\Snicker\\icsupport\\dNSCache\\src\\main\\res\\layout\\activity_main.xml=D\:\\Snicker\\icsupport\\dNSCache\\build\\intermediates\\packaged_res\\debug\\layout\\activity_main.xml +D\:\\Snicker\\icsupport\\dNSCache\\src\\main\\res\\drawable-hdpi\\ic_launcher.png=D\:\\Snicker\\icsupport\\dNSCache\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\ic_launcher.png +D\:\\Snicker\\icsupport\\dNSCache\\src\\main\\res\\drawable-mdpi\\ic_launcher.png=D\:\\Snicker\\icsupport\\dNSCache\\build\\intermediates\\packaged_res\\debug\\drawable-mdpi-v4\\ic_launcher.png +D\:\\Snicker\\icsupport\\dNSCache\\src\\main\\res\\drawable-xhdpi\\ic_launcher.png=D\:\\Snicker\\icsupport\\dNSCache\\build\\intermediates\\packaged_res\\debug\\drawable-xhdpi-v4\\ic_launcher.png +D\:\\Snicker\\icsupport\\dNSCache\\src\\main\\res\\menu\\menu_main.xml=D\:\\Snicker\\icsupport\\dNSCache\\build\\intermediates\\packaged_res\\debug\\menu\\menu_main.xml +D\:\\Snicker\\icsupport\\dNSCache\\src\\main\\res\\drawable-xxhdpi\\ic_launcher.png=D\:\\Snicker\\icsupport\\dNSCache\\build\\intermediates\\packaged_res\\debug\\drawable-xxhdpi-v4\\ic_launcher.png diff --git a/dNSCache/build/intermediates/incremental/packageDebugResources/merged.dir/values/values.xml b/dNSCache/build/intermediates/incremental/packageDebugResources/merged.dir/values/values.xml new file mode 100644 index 00000000..8b673cf5 --- /dev/null +++ b/dNSCache/build/intermediates/incremental/packageDebugResources/merged.dir/values/values.xml @@ -0,0 +1,9 @@ + + + 清除缓存 + 打印域名表 + 打印IP表 + 参数设置 + DNSCache + Hello world! + \ No newline at end of file diff --git a/dNSCache/build/intermediates/incremental/packageDebugResources/merger.xml b/dNSCache/build/intermediates/incremental/packageDebugResources/merger.xml new file mode 100644 index 00000000..27187488 --- /dev/null +++ b/dNSCache/build/intermediates/incremental/packageDebugResources/merger.xml @@ -0,0 +1,2 @@ + +DNSCacheHello world!打印域名表打印IP表清除缓存参数设置 \ No newline at end of file diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/AppConfigUtil.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/AppConfigUtil.class new file mode 100644 index 00000000..a673e407 Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/AppConfigUtil.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/BuildConfig.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/BuildConfig.class new file mode 100644 index 00000000..c2e1a4b9 Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/BuildConfig.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/DNSCache$1.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/DNSCache$1.class new file mode 100644 index 00000000..df2d8279 Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/DNSCache$1.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/DNSCache$2.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/DNSCache$2.class new file mode 100644 index 00000000..8ef1b4d6 Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/DNSCache$2.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/DNSCache$LogUpLoadTask.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/DNSCache$LogUpLoadTask.class new file mode 100644 index 00000000..1dfeae49 Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/DNSCache$LogUpLoadTask.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/DNSCache$SpeedTestTask.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/DNSCache$SpeedTestTask.class new file mode 100644 index 00000000..087b1bd8 Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/DNSCache$SpeedTestTask.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/DNSCache$UpdateTask.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/DNSCache$UpdateTask.class new file mode 100644 index 00000000..a58e0f78 Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/DNSCache$UpdateTask.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/DNSCache.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/DNSCache.class new file mode 100644 index 00000000..1160fb7a Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/DNSCache.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/DNSCacheConfig$1.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/DNSCacheConfig$1.class new file mode 100644 index 00000000..2bfa8f17 Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/DNSCacheConfig$1.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/DNSCacheConfig$Data.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/DNSCacheConfig$Data.class new file mode 100644 index 00000000..b58d62a0 Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/DNSCacheConfig$Data.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/DNSCacheConfig.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/DNSCacheConfig.class new file mode 100644 index 00000000..359354ab Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/DNSCacheConfig.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/DomainInfo.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/DomainInfo.class new file mode 100644 index 00000000..11d1ccaf Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/DomainInfo.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/Tools.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/Tools.class new file mode 100644 index 00000000..5c236d89 Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/Tools.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/cache/DBConstants.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/cache/DBConstants.class new file mode 100644 index 00000000..83a8fa78 Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/cache/DBConstants.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/cache/DNSCacheDatabaseHelper.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/cache/DNSCacheDatabaseHelper.class new file mode 100644 index 00000000..f2a2ae96 Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/cache/DNSCacheDatabaseHelper.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/cache/DnsCacheManager.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/cache/DnsCacheManager.class new file mode 100644 index 00000000..03432013 Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/cache/DnsCacheManager.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/cache/IDnsCache.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/cache/IDnsCache.class new file mode 100644 index 00000000..359ae317 Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/cache/IDnsCache.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/dnsp/DnsConfig.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/dnsp/DnsConfig.class new file mode 100644 index 00000000..a7531f26 Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/dnsp/DnsConfig.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/dnsp/DnsManager$1.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/dnsp/DnsManager$1.class new file mode 100644 index 00000000..2493578d Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/dnsp/DnsManager$1.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/dnsp/DnsManager.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/dnsp/DnsManager.class new file mode 100644 index 00000000..a8829b9a Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/dnsp/DnsManager.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/dnsp/IDns.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/dnsp/IDns.class new file mode 100644 index 00000000..cd808d73 Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/dnsp/IDns.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/dnsp/IDnsProvider.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/dnsp/IDnsProvider.class new file mode 100644 index 00000000..52fc1355 Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/dnsp/IDnsProvider.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/dnsp/IJsonParser$JavaJSON_SINAHTTPDNS.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/dnsp/IJsonParser$JavaJSON_SINAHTTPDNS.class new file mode 100644 index 00000000..c4e376e6 Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/dnsp/IJsonParser$JavaJSON_SINAHTTPDNS.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/dnsp/IJsonParser.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/dnsp/IJsonParser.class new file mode 100644 index 00000000..6e3ba5b7 Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/dnsp/IJsonParser.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/dnsp/impl/HttpPodDns$DNSPodCipher.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/dnsp/impl/HttpPodDns$DNSPodCipher.class new file mode 100644 index 00000000..2f55c336 Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/dnsp/impl/HttpPodDns$DNSPodCipher.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/dnsp/impl/HttpPodDns.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/dnsp/impl/HttpPodDns.class new file mode 100644 index 00000000..ae90f19c Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/dnsp/impl/HttpPodDns.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/dnsp/impl/LocalDns.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/dnsp/impl/LocalDns.class new file mode 100644 index 00000000..cedb31d9 Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/dnsp/impl/LocalDns.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/dnsp/impl/SinaHttpDns.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/dnsp/impl/SinaHttpDns.class new file mode 100644 index 00000000..47348965 Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/dnsp/impl/SinaHttpDns.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/dnsp/impl/UdpDns$UdnDnsClient$UdpDnsInfo.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/dnsp/impl/UdpDns$UdnDnsClient$UdpDnsInfo.class new file mode 100644 index 00000000..fa83237d Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/dnsp/impl/UdpDns$UdnDnsClient$UdpDnsInfo.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/dnsp/impl/UdpDns$UdnDnsClient.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/dnsp/impl/UdpDns$UdnDnsClient.class new file mode 100644 index 00000000..8bbbd681 Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/dnsp/impl/UdpDns$UdnDnsClient.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/dnsp/impl/UdpDns.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/dnsp/impl/UdpDns.class new file mode 100644 index 00000000..c61dc68d Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/dnsp/impl/UdpDns.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/log/FileUtil.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/log/FileUtil.class new file mode 100644 index 00000000..f7e39c6d Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/log/FileUtil.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/log/HttpDnsLogManager$1.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/log/HttpDnsLogManager$1.class new file mode 100644 index 00000000..b0081f3c Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/log/HttpDnsLogManager$1.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/log/HttpDnsLogManager.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/log/HttpDnsLogManager.class new file mode 100644 index 00000000..640fbf77 Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/log/HttpDnsLogManager.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/log/IDnsLog.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/log/IDnsLog.class new file mode 100644 index 00000000..cb70c997 Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/log/IDnsLog.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/model/ConnectFailModel.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/model/ConnectFailModel.class new file mode 100644 index 00000000..971caccb Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/model/ConnectFailModel.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/model/DomainModel.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/model/DomainModel.class new file mode 100644 index 00000000..9613b012 Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/model/DomainModel.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/model/HttpDnsPack$IP.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/model/HttpDnsPack$IP.class new file mode 100644 index 00000000..d283d6d5 Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/model/HttpDnsPack$IP.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/model/HttpDnsPack.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/model/HttpDnsPack.class new file mode 100644 index 00000000..48e16011 Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/model/HttpDnsPack.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/model/IpModel.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/model/IpModel.class new file mode 100644 index 00000000..497e0075 Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/model/IpModel.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/net/ApacheHttpClientNetworkRequests.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/net/ApacheHttpClientNetworkRequests.class new file mode 100644 index 00000000..76850946 Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/net/ApacheHttpClientNetworkRequests.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/net/INetworkRequests.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/net/INetworkRequests.class new file mode 100644 index 00000000..cd2bda64 Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/net/INetworkRequests.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/net/networktype/Constants.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/net/networktype/Constants.class new file mode 100644 index 00000000..58bdb2eb Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/net/networktype/Constants.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/net/networktype/NetworkManager$1.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/net/networktype/NetworkManager$1.class new file mode 100644 index 00000000..945d049b Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/net/networktype/NetworkManager$1.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/net/networktype/NetworkManager$Util.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/net/networktype/NetworkManager$Util.class new file mode 100644 index 00000000..e120d6b2 Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/net/networktype/NetworkManager$Util.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/net/networktype/NetworkManager.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/net/networktype/NetworkManager.class new file mode 100644 index 00000000..00f25841 Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/net/networktype/NetworkManager.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/net/networktype/NetworkStateReceiver.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/net/networktype/NetworkStateReceiver.class new file mode 100644 index 00000000..c865a5f3 Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/net/networktype/NetworkStateReceiver.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/query/IQuery.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/query/IQuery.class new file mode 100644 index 00000000..f93f428d Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/query/IQuery.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/query/QueryManager.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/query/QueryManager.class new file mode 100644 index 00000000..11690c15 Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/query/QueryManager.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/score/IPlugIn.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/score/IPlugIn.class new file mode 100644 index 00000000..468be48a Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/score/IPlugIn.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/score/IScore.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/score/IScore.class new file mode 100644 index 00000000..1fda0648 Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/score/IScore.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/score/PlugInManager$IpModelSort.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/score/PlugInManager$IpModelSort.class new file mode 100644 index 00000000..3b3d313a Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/score/PlugInManager$IpModelSort.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/score/PlugInManager.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/score/PlugInManager.class new file mode 100644 index 00000000..7176ff49 Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/score/PlugInManager.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/score/ScoreManager.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/score/ScoreManager.class new file mode 100644 index 00000000..4108138d Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/score/ScoreManager.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/score/plugin/ErrNumPlugin.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/score/plugin/ErrNumPlugin.class new file mode 100644 index 00000000..094c2ecd Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/score/plugin/ErrNumPlugin.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/score/plugin/PriorityPlugin.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/score/plugin/PriorityPlugin.class new file mode 100644 index 00000000..e1790243 Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/score/plugin/PriorityPlugin.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/score/plugin/SpeedTestPlugin.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/score/plugin/SpeedTestPlugin.class new file mode 100644 index 00000000..eaaee41d Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/score/plugin/SpeedTestPlugin.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/score/plugin/SuccessNumPlugin.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/score/plugin/SuccessNumPlugin.class new file mode 100644 index 00000000..2eba85b5 Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/score/plugin/SuccessNumPlugin.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/score/plugin/SuccessTimePlugin.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/score/plugin/SuccessTimePlugin.class new file mode 100644 index 00000000..74393403 Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/score/plugin/SuccessTimePlugin.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/speedtest/BaseSpeedTest.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/speedtest/BaseSpeedTest.class new file mode 100644 index 00000000..27fe6c64 Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/speedtest/BaseSpeedTest.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/speedtest/ISpeedtest.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/speedtest/ISpeedtest.class new file mode 100644 index 00000000..698c92c2 Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/speedtest/ISpeedtest.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/speedtest/SpeedtestManager$1.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/speedtest/SpeedtestManager$1.class new file mode 100644 index 00000000..1a6a62c5 Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/speedtest/SpeedtestManager$1.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/speedtest/SpeedtestManager.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/speedtest/SpeedtestManager.class new file mode 100644 index 00000000..c295a391 Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/speedtest/SpeedtestManager.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/speedtest/impl/PingTest$Ping.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/speedtest/impl/PingTest$Ping.class new file mode 100644 index 00000000..bc404ae5 Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/speedtest/impl/PingTest$Ping.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/speedtest/impl/PingTest.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/speedtest/impl/PingTest.class new file mode 100644 index 00000000..bcfa8d8b Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/speedtest/impl/PingTest.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/speedtest/impl/Socket80Test.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/speedtest/impl/Socket80Test.class new file mode 100644 index 00000000..1deb3296 Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/speedtest/impl/Socket80Test.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/thread/RealTimeThreadPool$DefaultThreadFactory.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/thread/RealTimeThreadPool$DefaultThreadFactory.class new file mode 100644 index 00000000..9ea5f4bc Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/thread/RealTimeThreadPool$DefaultThreadFactory.class differ diff --git a/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/thread/RealTimeThreadPool.class b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/thread/RealTimeThreadPool.class new file mode 100644 index 00000000..94a320e4 Binary files /dev/null and b/dNSCache/build/intermediates/javac/debug/classes/com/sina/util/dnscache/thread/RealTimeThreadPool.class differ diff --git a/dNSCache/build/intermediates/library_java_res/debug/res.jar b/dNSCache/build/intermediates/library_java_res/debug/res.jar new file mode 100644 index 00000000..15cb0ecb Binary files /dev/null and b/dNSCache/build/intermediates/library_java_res/debug/res.jar differ diff --git a/dNSCache/build/intermediates/library_manifest/debug/AndroidManifest.xml b/dNSCache/build/intermediates/library_manifest/debug/AndroidManifest.xml new file mode 100644 index 00000000..8e11f7b2 --- /dev/null +++ b/dNSCache/build/intermediates/library_manifest/debug/AndroidManifest.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dNSCache/build/intermediates/local_only_symbol_list/debug/parseDebugLibraryResources/R-def.txt b/dNSCache/build/intermediates/local_only_symbol_list/debug/parseDebugLibraryResources/R-def.txt new file mode 100644 index 00000000..029dadcb --- /dev/null +++ b/dNSCache/build/intermediates/local_only_symbol_list/debug/parseDebugLibraryResources/R-def.txt @@ -0,0 +1,18 @@ +R_DEF: Internal format may change without notice +local +drawable ic_launcher +id action_clear +id action_printf_domain +id action_printf_ip +id action_settings +id button +id editText +id textView +layout activity_main +menu menu_main +string action_clear +string action_printf_domain +string action_printf_ip +string action_settings +string app_name +string hello_world diff --git a/dNSCache/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt b/dNSCache/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt new file mode 100644 index 00000000..6c0736a0 --- /dev/null +++ b/dNSCache/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt @@ -0,0 +1,38 @@ +1 +2 +4 +5 +6 +6-->D:\Snicker\icsupport\dNSCache\src\main\AndroidManifest.xml:24:5-67 +6-->D:\Snicker\icsupport\dNSCache\src\main\AndroidManifest.xml:24:22-64 +7 +7-->D:\Snicker\icsupport\dNSCache\src\main\AndroidManifest.xml:25:5-79 +7-->D:\Snicker\icsupport\dNSCache\src\main\AndroidManifest.xml:25:22-76 +8 +8-->D:\Snicker\icsupport\dNSCache\src\main\AndroidManifest.xml:26:5-76 +8-->D:\Snicker\icsupport\dNSCache\src\main\AndroidManifest.xml:26:22-73 +9 +9-->D:\Snicker\icsupport\dNSCache\src\main\AndroidManifest.xml:27:5-68 +9-->D:\Snicker\icsupport\dNSCache\src\main\AndroidManifest.xml:27:22-65 +10 +10-->D:\Snicker\icsupport\dNSCache\src\main\AndroidManifest.xml:28:5-81 +10-->D:\Snicker\icsupport\dNSCache\src\main\AndroidManifest.xml:28:22-78 +11 +12 +12-->D:\Snicker\icsupport\dNSCache\src\main\AndroidManifest.xml:5:5-21:19 +12-->D:\Snicker\icsupport\dNSCache\src\main\AndroidManifest.xml:8:9-41 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 diff --git a/dNSCache/build/intermediates/merged_java_res/debug/out.jar b/dNSCache/build/intermediates/merged_java_res/debug/out.jar new file mode 100644 index 00000000..15cb0ecb Binary files /dev/null and b/dNSCache/build/intermediates/merged_java_res/debug/out.jar differ diff --git a/dNSCache/build/intermediates/merged_manifests/debug/output.json b/dNSCache/build/intermediates/merged_manifests/debug/output.json new file mode 100644 index 00000000..ce58c9fb --- /dev/null +++ b/dNSCache/build/intermediates/merged_manifests/debug/output.json @@ -0,0 +1 @@ +[{"outputType":{"type":"MERGED_MANIFESTS"},"apkData":{"type":"MAIN","splits":[],"versionCode":-1,"enabled":true,"outputFile":"dNSCache-debug.aar","fullName":"debug","baseName":"debug"},"path":"..\\..\\library_manifest\\debug\\AndroidManifest.xml","properties":{"packageId":"com.sina.util.dnscache","split":""}}] \ No newline at end of file diff --git a/dNSCache/build/intermediates/packaged-classes/debug/classes.jar b/dNSCache/build/intermediates/packaged-classes/debug/classes.jar new file mode 100644 index 00000000..8a891a62 Binary files /dev/null and b/dNSCache/build/intermediates/packaged-classes/debug/classes.jar differ diff --git a/dNSCache/build/intermediates/packaged_res/debug/drawable-hdpi-v4/ic_launcher.png b/dNSCache/build/intermediates/packaged_res/debug/drawable-hdpi-v4/ic_launcher.png new file mode 100644 index 00000000..288b6655 Binary files /dev/null and b/dNSCache/build/intermediates/packaged_res/debug/drawable-hdpi-v4/ic_launcher.png differ diff --git a/dNSCache/build/intermediates/packaged_res/debug/drawable-mdpi-v4/ic_launcher.png b/dNSCache/build/intermediates/packaged_res/debug/drawable-mdpi-v4/ic_launcher.png new file mode 100644 index 00000000..6ae570b4 Binary files /dev/null and b/dNSCache/build/intermediates/packaged_res/debug/drawable-mdpi-v4/ic_launcher.png differ diff --git a/dNSCache/build/intermediates/packaged_res/debug/drawable-xhdpi-v4/ic_launcher.png b/dNSCache/build/intermediates/packaged_res/debug/drawable-xhdpi-v4/ic_launcher.png new file mode 100644 index 00000000..d4fb7cd9 Binary files /dev/null and b/dNSCache/build/intermediates/packaged_res/debug/drawable-xhdpi-v4/ic_launcher.png differ diff --git a/dNSCache/build/intermediates/packaged_res/debug/drawable-xxhdpi-v4/ic_launcher.png b/dNSCache/build/intermediates/packaged_res/debug/drawable-xxhdpi-v4/ic_launcher.png new file mode 100644 index 00000000..85a60815 Binary files /dev/null and b/dNSCache/build/intermediates/packaged_res/debug/drawable-xxhdpi-v4/ic_launcher.png differ diff --git a/dNSCache/build/intermediates/packaged_res/debug/layout/activity_main.xml b/dNSCache/build/intermediates/packaged_res/debug/layout/activity_main.xml new file mode 100644 index 00000000..26e19b84 --- /dev/null +++ b/dNSCache/build/intermediates/packaged_res/debug/layout/activity_main.xml @@ -0,0 +1,27 @@ + + + + + + +