[ https://issues.apache.org/jira/browse/WEEX-623?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16621491#comment-16621491 ]
ASF GitHub Bot commented on WEEX-623: ------------------------------------- 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: us...@infra.apache.org > [Android] pageName check and revert interaction time top10 logic > ---------------------------------------------------------------- > > Key: WEEX-623 > URL: https://issues.apache.org/jira/browse/WEEX-623 > Project: Weex > Issue Type: Improvement > Reporter: peihan > Assignee: Adam Feng > Priority: Major > -- This message was sent by Atlassian JIRA (v7.6.3#76005)