You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by zs...@apache.org on 2019/01/03 12:39:40 UTC

[incubator-weex] branch master updated: * [Android] feature :send performane info to js delay 8s

This is an automated email from the ASF dual-hosted git repository.

zshshr pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-weex.git


The following commit(s) were added to refs/heads/master by this push:
     new 20748f7  * [Android] feature :send performane info to js delay 8s
20748f7 is described below

commit 20748f7ba88cb891316d93b9b3a83210ef12d981
Author: zhongcang <qh...@gmail.com>
AuthorDate: Thu Jan 3 19:17:19 2019 +0800

    * [Android] feature :send performane info to js delay 8s
---
 .../java/com/taobao/weex/performance/WXInstanceApm.java  | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/android/sdk/src/main/java/com/taobao/weex/performance/WXInstanceApm.java b/android/sdk/src/main/java/com/taobao/weex/performance/WXInstanceApm.java
index 777374f..c1d8330 100644
--- a/android/sdk/src/main/java/com/taobao/weex/performance/WXInstanceApm.java
+++ b/android/sdk/src/main/java/com/taobao/weex/performance/WXInstanceApm.java
@@ -22,11 +22,14 @@ import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
 import android.graphics.Rect;
+import android.os.Handler;
+import android.os.Looper;
 import android.text.TextUtils;
 import android.util.Log;
 import com.taobao.weex.WXEnvironment;
 import com.taobao.weex.WXSDKInstance;
 import com.taobao.weex.WXSDKManager;
+import com.taobao.weex.bridge.WXBridgeManager;
 import com.taobao.weex.common.WXErrorCode;
 import com.taobao.weex.common.WXPerformance;
 import com.taobao.weex.common.WXRenderStrategy;
@@ -127,12 +130,14 @@ public class WXInstanceApm {
     public String reportPageName;
     public boolean hasReportLayerOverDraw = false;
     public boolean hasAddView;
+    private Handler mUIHandler;
 
     public WXInstanceApm(String instanceId) {
         mInstanceId = instanceId;
         extInfo = new ConcurrentHashMap<>();
         stageMap = new ConcurrentHashMap<>();
         IApmGenerator generator = WXSDKManager.getInstance().getApmGenerater();
+        mUIHandler = new Handler(Looper.getMainLooper());
         if (null != generator) {
             apmInstance = generator.generateApmInstance(WEEX_PAGE_TOPIC);
             recordStatsMap = new ConcurrentHashMap<>();
@@ -171,6 +176,10 @@ public class WXInstanceApm {
             WXAnalyzerDataTransfer.transferPerformance(mInstanceId,"stage",name,time);
         }
 
+        if (KEY_PAGE_STAGES_RENDER_ORGIGIN.equalsIgnoreCase(name)){
+          mUIHandler.postDelayed(jsPerformanceCallBack,8000);
+        }
+
         if (null == apmInstance) {
             return;
         }
@@ -178,6 +187,12 @@ public class WXInstanceApm {
         apmInstance.onStage(name, time);
     }
 
+    private Runnable jsPerformanceCallBack = new Runnable() {
+        @Override
+        public void run() {
+            sendPerformanceToJS();
+        }
+    };
 
     /**
      * record property
@@ -281,6 +296,7 @@ public class WXInstanceApm {
         if (null == apmInstance || mEnd) {
             return;
         }
+        mUIHandler.removeCallbacks(jsPerformanceCallBack);
         onStage(KEY_PAGE_STAGES_DESTROY);
         apmInstance.onEnd();
         mEnd = true;