release ICProtocol8.1_V911_2018142000_release.apk
authorSnickerSun <scy@incartech.cn>
Sat, 14 Aug 2021 12:05:15 +0000 (20:05 +0800)
committerSnickerSun <scy@incartech.cn>
Sat, 14 Aug 2021 12:05:15 +0000 (20:05 +0800)
修复重试连接的retrytimer出现的crash
去掉过多的fzd parserCmd 日志
添加android8.1 release key

app/build.gradle
app/platform.jks [new file with mode: 0644]
app/release/ICProtocol8.1_V911_2108142000_release.apk [moved from app/release/ICProtocol8.1_V908_2108061814_release.apk with 75% similarity]
app/release/output.json
app/src/main/java/com/enqualcomm/support/CoreService.java
app/src/main/java/com/enqualcomm/support/service/KeepAlive.java
app/src/main/java/com/ic/protocols/protocol_fzd.java

index 6e116f0..4de1314 100644 (file)
@@ -30,24 +30,28 @@ android {
         abortOnError false
     }
     signingConfigs {
-        key {
+        debug {
             storeFile file("EQC_G5.jks")
             storePassword "123456"
             keyAlias "watch_g5"
             keyPassword "123456"
         }
-        debug {
-            storeFile file('EQC_G5.jks')
-            storePassword '123456'
-            keyAlias = 'watch_g5'
-            keyPassword '123456'
+        release {
+//            storeFile file('EQC_G5.jks')
+//            storePassword '123456'
+//            keyAlias = 'watch_g5'
+//            keyPassword '123456'
+            storeFile file("platform.jks")
+            storePassword "123456"
+            keyAlias "android"
+            keyPassword "123456"
         }
     }
     buildTypes {
         release {
             zipAlignEnabled true     // zip 对齐优化
             shrinkResources true       // 移除未使用的资源文件
-            signingConfig signingConfigs.key
+            signingConfig signingConfigs.release
             minifyEnabled true
             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
             renderscriptDebuggable = false
@@ -57,7 +61,7 @@ android {
         }
 
         debug {
-            signingConfig signingConfigs.key
+            signingConfig signingConfigs.debug
             // 启用 Android 插件压缩器
 //            minifyEnabled true
 //            useProguard false
diff --git a/app/platform.jks b/app/platform.jks
new file mode 100644 (file)
index 0000000..79a6e06
Binary files /dev/null and b/app/platform.jks differ
similarity index 75%
rename from app/release/ICProtocol8.1_V908_2108061814_release.apk
rename to app/release/ICProtocol8.1_V911_2108142000_release.apk
index 6635eeb..644e5c4 100644 (file)
Binary files a/app/release/ICProtocol8.1_V908_2108061814_release.apk and b/app/release/ICProtocol8.1_V911_2108142000_release.apk differ
index 16848de..c0a6e7e 100644 (file)
@@ -1 +1 @@
-[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":909,"versionName":"2108140014","enabled":true,"outputFile":"ICProtocol8.1_V909_2108140014_release.apk","fullName":"release","baseName":"release"},"path":"ICProtocol8.1_V909_2108140014_release.apk","properties":{}}]
\ No newline at end of file
+[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":911,"versionName":"2108142000","enabled":true,"outputFile":"ICProtocol8.1_V911_2108142000_release.apk","fullName":"release","baseName":"release"},"path":"ICProtocol8.1_V911_2108142000_release.apk","properties":{}}]
\ No newline at end of file
index 706c602..5cf3389 100644 (file)
@@ -1749,6 +1749,7 @@ public class CoreService extends Service {
 
     private ScheduledThreadPoolExecutor mTimer_retry_connect = null;
 
+
     private static int retry_connect_count = 0;  //当前重试次数
     private static int retry_connect_max_times = 6; //最大重试次数 6次 , 即只重试2分钟,下一次重试将在下一个心跳包时进行。
     private static int retry_cocnnect_cycle = 20; //重试间隔20秒
@@ -1765,21 +1766,13 @@ public class CoreService extends Service {
         //联网再重试连接服务器, 不能够联网的情况下不管是不是有sim卡,以及是否联网,都进行重试,以便处理下面情况:
         //1、sim卡接触不良,掉卡,可以尝试用此法恢复
         //2、网络信号不好,造成临时掉线,但是恢复慢或不恢复,可以用此法尝试恢复
-//        if (SimSignalUtil.checkNet(runtime.getContextProxy().context) ) {
-        stopConnectionRetryTimer();
-        if (mTimer_retry_connect == null) {
-            mTimer_retry_connect = new ScheduledThreadPoolExecutor(10);
-        }
+
         //如果开始进行连接重
         // {
         // 试,证明网络断开的,那么KeepAlive也需要重连(心跳包)
         retry_connect_count = 0;
         KeepAlive.isConnected = false;
-        if (mTimer_retry_connect != null) {
-            mTimer_retry_connect.remove(mReConnectSrvThread);
-            mTimer_retry_connect.scheduleAtFixedRate(mReConnectSrvThread, 5000, 20000, TimeUnit.MILLISECONDS); //每次都是断网才需要重连,delay 5秒重连,并且每20秒重试一次
-        }
-//        }
+        mHandler.postDelayed(mReConnectSrvThread,5000);
     }
 
     private final ReConnectSrvThread mReConnectSrvThread = new ReConnectSrvThread();
@@ -1805,12 +1798,12 @@ public class CoreService extends Service {
             if (connection.isServerConnected()) {
                 ICLogger.i("retry  如果连接成功则停止重试!");
                 no_network_Heartbeats_Count = 0;
-                stopConnectionRetryTimer();
+                return;
             } else {
                 if (retry_connect_count >= retry_connect_max_times) {
                     no_network_Heartbeats_Count++;
                     ICLogger.i("retry " + retry_connect_count + " 次 >= " + retry_connect_max_times + " ,停止重试!等待下一次心跳再重试! 已经第" + no_network_Heartbeats_Count + "次心跳都没有连接服务器成功!");
-                    stopConnectionRetryTimer();
+                    return;
                 } else {
                     retry_connect_count++;
                     String ip = runtime.getDnsUtil().getServerIP_ByDNSCache(runtime.getHost());
@@ -1825,30 +1818,14 @@ public class CoreService extends Service {
             //没有网络就不用重新尝试连接网络了。网络连接后再重新尝试联网
             ICLogger.i("retry " + no_network_Heartbeats_Count + " 没有网络就不用重新尝试连接网络了。网络连接后再重新尝试联网!");
             no_network_Heartbeats_Count++;
-            stopConnectionRetryTimer();
+            return;
         }
         if (no_network_Heartbeats_Count > 12) {
             ICLogger.i("当前第" + no_network_Heartbeats_Count + "次心跳都没有连接服务器成功 > 10 ,重置SIM卡尝试重新注册网络!");
             SimSignalUtil.send_at_to_reset_simcard(runtime); //直接下此命令不能实现断网重连,所以干脆采用关闭网络再打开的方式。
             no_network_Heartbeats_Count = 0;//重置Sim卡后重置计数。防止后面多次重置Sim卡。
         }
-    }
-
-    public void stopConnectionRetryTimer() {
-        if (mTimer_retry_connect != null) {
-            mTimer_retry_connect.shutdownNow();
-//            while(!mTimer_retry_connect.isTerminated())
-//            {
-//                ICLogger.i("Wait for thread pool terminated");
-//                try {
-//                    Thread.sleep(500);
-//                } catch (InterruptedException e) {
-//                    e.printStackTrace();
-//                }
-//            }
-            mTimer_retry_connect.purge();
-            mTimer_retry_connect = null;
-        }
+        mHandler.postDelayed(mReConnectSrvThread,20000);
     }
 
     @Override
index 4d6dda9..98b396e 100644 (file)
@@ -85,19 +85,13 @@ public class KeepAlive extends AbstractConnectionService {
     public void startResponseCheckTimer() {
         //联网再重试连接服务器
         if (SimSignalUtil.checkNet(mRuntime.getContextProxy().context)) {
-            stopResponseCheckTimer();
-            if (scheduled == null) {
-                scheduled = new ScheduledThreadPoolExecutor(10);
-            }
             //开始检测重新计数
             hearBeatResendCount = 0;
             //如果开始进行连接重
             // {
             // 试,证明网络断开的,那么KeepAlive也需要重连(心跳包)
-            scheduled.scheduleAtFixedRate(CheckSrvResponseTimerTask,
-                    heartBeatRetryTimeout * 1000,
-                    heartBeatRetryTimeout * 1000,
-                    TimeUnit.MILLISECONDS); //delay 3秒先检查一次,然后每5秒重试一次
+            mHandler.postDelayed(CheckSrvResponseTimerTask,heartBeatRetryTimeout * 1000);
+            //delay 3秒先检查一次,然后每5秒重试一次
         }
     }
 
@@ -124,14 +118,14 @@ public class KeepAlive extends AbstractConnectionService {
             //如果收到服务器响应BP03,则停止重试,否则 继续发送AP03 心跳包,且继续检查响应
             if (this.is_heartBeat_send_success) {
                 ICLogger.i("checkSrvResponse 成功,停止检测!");
-                stopResponseCheckTimer();
+                return ;
             } else {
                 //心跳发送失败,则认为已经和服务器断开
                 mRuntime.setServerProtocolConnected(false);
                 //如果重试次数大于等于 最大重试次数,则停止重试,等下次心跳时间再行尝试。
                 if (hearBeatResendCount >= MaxHeartbeatResendTime) {
                     ICLogger.i("checkSrvResponse " + hearBeatResendCount + "次 >= " + MaxHeartbeatResendTime + " , 则停止重试,等下次心跳时间再行尝试!");
-                    stopResponseCheckTimer();
+                    return;
                 } else {
                     //重新发送AP03心跳包
                     ICLogger.i("checkSrvResponse 失败,第" + hearBeatResendCount + "次,重新发送AP03心跳包!");
@@ -168,43 +162,14 @@ public class KeepAlive extends AbstractConnectionService {
             //没有网络就不用重新尝试连接网络了。网络连接后再重新尝试联网
             ICLogger.i("checkSrvResponse stop , 没有网络就不用重新尝试检测服务器响应和重新发送心跳包了!");
 
-            stopResponseCheckTimer();
+            return ;
         }
+
+        mHandler.postDelayed(CheckSrvResponseTimerTask,heartBeatRetryTimeout * 1000);
     }
 
 
-    public void stopResponseCheckTimer() {
-        if (scheduled != null) {
-            scheduled.shutdownNow();
-//      Runnable tmp= scheduled.getQueue().poll();
-//      while (tmp!=null){
-//        scheduled.remove(tmp);
-//      }
-            scheduled.setContinueExistingPeriodicTasksAfterShutdownPolicy(true);
-            scheduled.setExecuteExistingDelayedTasksAfterShutdownPolicy(false);
-//      scheduled.setRemoveOnCancelPolicy(true);
-            ICLogger.i("Wait for thread pool getContinueExistingPeriodicTasksAfterShutdownPolicy " + scheduled.getContinueExistingPeriodicTasksAfterShutdownPolicy() +
-                    "\ngetExecuteExistingDelayedTasksAfterShutdownPolicy " + scheduled.getExecuteExistingDelayedTasksAfterShutdownPolicy());//+
-//              "\ngetRemoveOnCancelPolicy "+scheduled.getRemoveOnCancelPolicy());
-//      while(!scheduled.isTerminated())
-//      {
-//        StringBuilder sb=new StringBuilder();
-//        if (scheduled.isTerminated()) sb.append("+");
-//        if (scheduled.isShutdown()) sb.append("*");
-//        if (scheduled.isTerminating()) sb.append("-");
-//        ICLogger.i(sb.toString());
-//        try {
-//          Thread.sleep(500);
-//        } catch (InterruptedException e) {
-//          e.printStackTrace();
-//        }
-//      }
-            scheduled.purge();
-            scheduled = null;
-        }
 
-        ICLogger.i(" stopResponseCheckTimer Done ");
-    }
 
 
     public void onAlarmClock(Connection paramConnection, Runtime paramRuntime) {
@@ -251,7 +216,6 @@ public class KeepAlive extends AbstractConnectionService {
 
 //    if (isConnected)
         //如果KeepAlive被关闭说明网络有问题,因此开启重试联网机制
-        stopResponseCheckTimer();
 
         if (false) {
             if (ErrorMsg.equals("DIS_CONNECT_BY_SERVERSIDE")) {
@@ -328,7 +292,7 @@ public class KeepAlive extends AbstractConnectionService {
     public void onHeartAlarm(Connection paramNettyConnection, Runtime paramRuntime) {
         ICLogger.i("onHeartAlarm");
 
-        stopResponseCheckTimer();
+
         //心跳开始发送的时候,先重置response检测标志
         is_heartBeat_send_success = false;
 
@@ -377,7 +341,7 @@ public class KeepAlive extends AbstractConnectionService {
             //login成功后,上传当前版本号
             paramConnection.send(protocolAPIHelper.getDeviceVersion(paramRuntime));
             //登录包收到就停止重链接服务器
-            CoreService.getInstance().stopConnectionRetryTimer();
+//            CoreService.getInstance().stopConnectionRetryTimer();
             is_login_send_success = true;
             //收到登录包反馈后再发送心跳
 
index 0350377..56bc894 100644 (file)
@@ -574,7 +574,7 @@ public class protocol_fzd {
         if (regexUtil.isFZDCompanyCMD(CMD_COMPANY,cmd_msgbuf)) {
             for (CMD_TYPE key : cmdMap.keySet()) {
                 if (regexUtil.isFZDCompanyCMD(CMD_COMPANY,cmdMap.get(key), cmd_msgbuf)) { //如果是FZD命令,则进行处理,否则保留数据动
-                    ICLogger.i("found cmd keyid=" + key + " ,keyname=" + cmdMap.get(key));
+//                    ICLogger.i("found cmd keyid=" + key + " ,keyname=" + cmdMap.get(key));
                     return cmdMap.get(key);
                 }
             }
@@ -634,7 +634,7 @@ public class protocol_fzd {
 //                ICLogger.d("key " + cmdMap.get(key) +" "+cmdname+" cmdbuf " + cmd_msgbuf);
                 if (cmdMap.get(key).equals(cmdname)) { //如果是FZD命令,则进行处理,否则保留数据动
 
-                    ICLogger.d("key is == > " + key);
+//                    ICLogger.d("key is == > " + key);
 //                    if (key == CMD_TYPE.TK) {
 //                        handlerGroupChatVoiceContent(totalByte);
 //                    } else if (key == CMD_TYPE.TKOne) {