You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@weex.apache.org by GitBox <gi...@apache.org> on 2018/09/20 04:14:13 UTC

[GitHub] YorkShen closed pull request #1543: [WEEX-623][Android] pageName check and revert interaction time top10 …

YorkShen closed pull request #1543: [WEEX-623][Android] pageName check and revert interaction time top10 …
URL: https://github.com/apache/incubator-weex/pull/1543
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java b/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java
index 77c2027aab..267db1798e 100644
--- a/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java
+++ b/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java
@@ -703,6 +703,7 @@ private void renderByUrlInternal(String pageName,
     }
 
     mApmForInstance.doInit();
+    mApmForInstance.setPageName(pageName);
 
     Uri uri = Uri.parse(url);
     if (uri != null && TextUtils.equals(uri.getScheme(), "file")) {
@@ -731,6 +732,7 @@ private void renderByUrlInternal(String pageName,
     WXHttpListener httpListener =
             new WXHttpListener(pageName, renderOptions, jsonInitData, flag, System.currentTimeMillis());
     httpListener.setSDKInstance(this);
+    mApmForInstance.onStage(WXInstanceApm.KEY_PAGE_STAGES_DOWN_BUNDLE_START);
     adapter.sendRequest(wxRequest, (IWXHttpAdapter.OnHttpListener) httpListener);
   }
 
@@ -1872,7 +1874,6 @@ public void onHttpStart() {
               && this.instance.getWXStatisticsListener() != null) {
         this.instance.getWXStatisticsListener().onHttpStart();
       }
-      mApmForInstance.onStage(WXInstanceApm.KEY_PAGE_STAGES_DOWN_BUNDLE_START);
     }
 
     @Override
diff --git a/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java b/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java
index f9d15f1d3d..9e564946ba 100644
--- a/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java
+++ b/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java
@@ -2053,6 +2053,7 @@ public void reportJSException(String instanceId, String function,
             + ", exception function:" + function + ", exception:"
             + exception);
     WXSDKInstance instance = null;
+    WXErrorCode reportErrorCode = WXErrorCode.WX_ERR_JS_EXECUTE;
     if (instanceId != null && (instance = WXSDKManager.getInstance().getSDKInstance(instanceId)) != null) {
       exception +=   "\n getTemplateInfo==" +instance.getTemplateInfo();//add network header info
       if (METHOD_CREATE_INSTANCE.equals(function) || !instance.isContentMd5Match()) {
@@ -2083,12 +2084,17 @@ public void reportJSException(String instanceId, String function,
           e.printStackTrace();
         }
       }
-      instance.onJSException(WXErrorCode.WX_ERR_JS_EXECUTE.getErrorCode(), function, exception);
+      if (METHOD_CREATE_INSTANCE.equals(function) && !instance.getExceptionRecorder().hasAddView.get()){
+        reportErrorCode = WXErrorCode.WX_RENDER_ERR_JS_CREATE_INSTANCE;
+      }else if ( METHOD_CREATE_INSTANCE_CONTEXT.equals(function) && !instance.getExceptionRecorder().hasAddView.get()){
+        reportErrorCode = WXErrorCode.WX_RENDER_ERR_JS_CREATE_INSTANCE_CONTEXT;
+      }
+      instance.onJSException(reportErrorCode.getErrorCode(), function, exception);
     }
-    doReportJSException(instanceId,function,exception);
+    doReportJSException(instanceId,function,reportErrorCode,exception);
   }
 
-  private void doReportJSException(String instanceId, String function, String exception){
+  private void doReportJSException(String instanceId, String function,WXErrorCode reportCode, String exception){
     WXSDKInstance instance = WXSDKManager.getInstance().getAllInstanceMap().get(instanceId);
     IWXJSExceptionAdapter adapter = WXSDKManager.getInstance().getIWXJSExceptionAdapter();
     if (adapter != null) {
@@ -2138,18 +2144,9 @@ private void doReportJSException(String instanceId, String function, String exce
       }
 
 
-      WXErrorCode errorCode;
-      if (METHOD_CREATE_INSTANCE.equals(function)){
-        errorCode = WXErrorCode.WX_RENDER_ERR_JS_CREATE_INSTANCE;
-      }else if ( METHOD_CREATE_INSTANCE_CONTEXT.equals(function)){
-        errorCode = WXErrorCode.WX_RENDER_ERR_JS_CREATE_INSTANCE_CONTEXT;
-      }else {
-        errorCode = WXErrorCode.WX_KEY_EXCEPTION_WXBRIDGE;
-      }
-
-      WXExceptionUtils.commitCriticalExceptionRT(exceptionId, errorCode,
+      WXExceptionUtils.commitCriticalExceptionRT(exceptionId, reportCode,
             function,
-          errorCode.getErrorMsg() + exception,
+          reportCode.getErrorMsg() + exception,
             null);
 
     }
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 875e3d789d..b868dc265d 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
@@ -18,8 +18,6 @@
  */
 package com.taobao.weex.performance;
 
-import java.util.ArrayList;
-import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
@@ -116,12 +114,10 @@
     private boolean mEnd = false;
     private boolean hasRecordFistInteractionView =false;
     public final Map<String,Object> extInfo;
-    private List<WXComponent> mCountDownInteractionComponentList;
 
     public WXInstanceApm(String instanceId) {
         mInstanceId = instanceId;
         extInfo = new ConcurrentHashMap<>();
-        mCountDownInteractionComponentList = new ArrayList<>(10);
         IApmGenerator generator = WXSDKManager.getInstance().getApmGenerater();
         if (null != generator) {
             apmInstance = generator.generateApmInstance(WEEX_PAGE_TOPIC);
@@ -262,6 +258,7 @@ public void arriveFSRenderTime() {
         if (null == apmInstance){
             return;
         }
+        isFSEnd = true;
         onStage(WXInstanceApm.KEY_PAGE_STAGES_FSRENDER);
     }
 
@@ -269,39 +266,27 @@ public void arriveInteraction(WXComponent targetComponent) {
         if (null == apmInstance || null == targetComponent || targetComponent.getInstance() == null ) {
             return;
         }
-        targetComponent.interactionTime = WXUtils.getFixUnixTime();
         WXPerformance performanceRecord = targetComponent.getInstance().getWXPerformance();
         if (null == performanceRecord){
             return;
         }
 
-        if (BuildConfig.DEBUG){
-            Log.d("wxapm", "screenComponent ["+targetComponent.getComponentType()+","+targetComponent.getRef()
-                +"], renderTime:"+ (targetComponent.interactionTime -performanceRecord.renderTimeOrigin)
-                +",style:"+targetComponent.getStyles()
-                +",attrs:"+targetComponent.getAttrs());
-        }
-
         if (!hasRecordFistInteractionView){
             onStage(KEY_PAGE_STAGES_FIRST_INTERACTION_VIEW);
             hasRecordFistInteractionView = true;
         }
-        if (mCountDownInteractionComponentList.size() <10){
-            mCountDownInteractionComponentList.add(targetComponent);
-            return;
-        }
-        mCountDownInteractionComponentList.add(targetComponent);
-        WXComponent preComponent = mCountDownInteractionComponentList.remove(0);
-        if (null == preComponent){
-            return;
-        }
+
+        long curTIme = WXUtils.getFixUnixTime();
 
         if (BuildConfig.DEBUG){
-            Log.d("wxapm", "interaction record component ["+preComponent.getComponentType()+","+preComponent.getRef());
+            Log.d("wxapm", "screenComponent ["+targetComponent.getComponentType()+","+targetComponent.getRef()
+                +"], renderTime:"+ (curTIme -performanceRecord.renderTimeOrigin)
+                +",style:"+targetComponent.getStyles()
+                +",attrs:"+targetComponent.getAttrs());
         }
 
-        performanceRecord.interactionTime = preComponent.interactionTime - performanceRecord.renderTimeOrigin;
-        onStageWithTime(KEY_PAGE_STAGES_INTERACTION,preComponent.interactionTime);
+        performanceRecord.interactionTime = curTIme - performanceRecord.renderTimeOrigin;
+        onStageWithTime(KEY_PAGE_STAGES_INTERACTION,curTIme);
 
         updateDiffStats(KEY_PAGE_STATS_I_SCREEN_VIEW_COUNT, 1);
         updateMaxStats(KEY_PAGE_STATS_I_ALL_VIEW_COUNT, performanceRecord.localInteractionViewAddCount);
diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
index 91f6fd7612..7840b9a394 100644
--- a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
@@ -170,7 +170,6 @@
   private String mLastBoxShadowId;
   public int mDeepInComponentTree = 0;
   public boolean mIsAddElementToTree = false;
-  public long interactionTime;
 
   public WXTracing.TraceInfo mTraceInfo = new WXTracing.TraceInfo();
 


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services