You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by GitBox <gi...@apache.org> on 2018/12/28 08:34:36 UTC

[GitHub] lucky-chen closed pull request #1374: [WEEX-539][Android] report container info when report error or perfor…

lucky-chen closed pull request #1374: [WEEX-539][Android] report container info when report error or perfor…
URL: https://github.com/apache/incubator-weex/pull/1374
 
 
   

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/WXSDKEngine.java b/android/sdk/src/main/java/com/taobao/weex/WXSDKEngine.java
index c8c4d78a9d..8bc9f73281 100644
--- a/android/sdk/src/main/java/com/taobao/weex/WXSDKEngine.java
+++ b/android/sdk/src/main/java/com/taobao/weex/WXSDKEngine.java
@@ -168,7 +168,6 @@ public static void initialize(Application application,InitConfig config){
       registerApplicationOptions(application);
       WXEnvironment.sSDKInitInvokeTime = System.currentTimeMillis()-start;
       WXLogUtils.renderPerformanceLog("SDKInitInvokeTime", WXEnvironment.sSDKInitInvokeTime);
-      WXPerformance.init();
       mIsInit = true;
     }
   }
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 809f379d4a..ff7db0fb30 100644
--- a/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java
+++ b/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java
@@ -18,6 +18,7 @@
  */
 package com.taobao.weex;
 
+import android.app.Activity;
 import android.app.AlertDialog;
 import android.content.Context;
 import android.content.Intent;
@@ -134,6 +135,8 @@
   private @NonNull
   FlatGUIContext mFlatGUIContext =new FlatGUIContext();
 
+  private Map<String,String> mContainerInfo;
+
   /**
    * bundle type
    */
@@ -385,15 +388,22 @@ public void removeOnInstanceVisibleListener(OnInstanceVisibleListener l){
 
   public void init(Context context) {
     mContext = context;
+    mContainerInfo = new HashMap<>(4);
     mNativeInvokeHelper = new NativeInvokeHelper(mInstanceId);
 
-    mWXPerformance = new WXPerformance();
+    mWXPerformance = new WXPerformance(mInstanceId);
     mWXPerformance.WXSDKVersion = WXEnvironment.WXSDK_VERSION;
     mWXPerformance.JSLibInitTime = WXEnvironment.sJSLibInitTime;
 
     mUserTrackAdapter=WXSDKManager.getInstance().getIWXUserTrackAdapter();
 
     WXSDKManager.getInstance().getAllInstanceMap().put(mInstanceId,this);
+
+    mContainerInfo.put(Dimension.activity.toString(), context instanceof Activity
+            ? context.getClass().getSimpleName()
+            :"unKnowContainer"
+    );
+    mContainerInfo.put(Dimension.instanceType.toString(),"page");
   }
 
   /**
@@ -447,6 +457,14 @@ public void registerScrollViewListener(WXScrollView.WXScrollViewListener scrollV
   public void setIWXUserTrackAdapter(IWXUserTrackAdapter adapter) {
   }
 
+  public void setContainerInfo(String key,String val){
+    mContainerInfo.put(key,val);
+  }
+
+  public Map<String, String> getContainerInfo() {
+    return mContainerInfo;
+  }
+
   /**
    * Render template asynchronously, use {@link WXRenderStrategy#APPEND_ASYNC} as render strategy
    * @param template bundle js
@@ -928,6 +946,7 @@ public void onActivityPause() {
       mWXPerformance.maxDeepViewLayer=getMaxDeepLayer();
       mWXPerformance.wxDims = mwxDims;
       mWXPerformance.measureTimes = measureTimes;
+      WXExceptionUtils.commitCriticalExceptionRT(mInstanceId,WXErrorCode.WX_ERR_BAD_SO,"TEST","ss",null);
       if (mUserTrackAdapter != null) {
         mUserTrackAdapter.commit(mContext, null, IWXUserTrackAdapter.LOAD, mWXPerformance, getUserTrackParams());
       }
@@ -1163,7 +1182,7 @@ public void run() {
           if (mRenderListener != null && mContext != null) {
             mRenderListener.onRenderSuccess(WXSDKInstance.this, width, height);
             if (mUserTrackAdapter != null) {
-              WXPerformance performance=new WXPerformance();
+              WXPerformance performance=new WXPerformance(mInstanceId);
               performance.errCode=WXErrorCode.WX_SUCCESS.getErrorCode();
               performance.args=getBundleUrl();
               mUserTrackAdapter.commit(mContext,null,IWXUserTrackAdapter.JS_BRIDGE,performance,getUserTrackParams());
@@ -1837,7 +1856,7 @@ public void onHttpFinish(WXResponse response) {
         mWXPerformance.zCacheInfo = zCacheInfo instanceof String?(String)zCacheInfo:"";
 
         if(isNet(mWXPerformance.requestType) && mUserTrackAdapter!=null){
-          WXPerformance performance=new WXPerformance();
+          WXPerformance performance=new WXPerformance(mInstanceId);
           if(!TextUtils.isEmpty(mBundleUrl)){
             try {
               performance.args= Uri.parse(mBundleUrl).buildUpon().clearQuery().toString();
diff --git a/android/sdk/src/main/java/com/taobao/weex/common/WXPerformance.java b/android/sdk/src/main/java/com/taobao/weex/common/WXPerformance.java
index bab11f4fd3..bd478373a4 100644
--- a/android/sdk/src/main/java/com/taobao/weex/common/WXPerformance.java
+++ b/android/sdk/src/main/java/com/taobao/weex/common/WXPerformance.java
@@ -21,6 +21,8 @@
 import android.support.annotation.RestrictTo;
 
 import com.taobao.weex.WXEnvironment;
+import com.taobao.weex.WXSDKInstance;
+import com.taobao.weex.WXSDKManager;
 import com.taobao.weex.utils.WXViewUtils;
 
 import java.util.HashMap;
@@ -42,6 +44,8 @@
     networkType,
     connectionType,
     zcacheInfo,
+    activity,
+    instanceType,
     wxdim1,
     wxdim2,
     wxdim3,
@@ -363,11 +367,11 @@ public double getMaxRange() {
   public int mActionAddElementCount = 0;
   public int mActionAddElementSumTime = 0;
 
-  public WXPerformance(){
-    mErrMsgBuilder=new StringBuilder();
-  }
+  private String mInstanceId;
 
-  public static void init() {
+  public WXPerformance(String instanceId){
+    mErrMsgBuilder=new StringBuilder();
+    mInstanceId = instanceId;
   }
 
   public Map<String, Double> getMeasureMap() {
@@ -455,6 +459,12 @@ public static void init() {
     quotas.put(Dimension.cacheType.toString(), cacheType);
     quotas.put(Dimension.useScroller.toString(), String.valueOf(useScroller));
 
+    WXSDKInstance sdkInstance = WXSDKManager.getInstance().getSDKInstance(mInstanceId);
+    String keyActivity = Dimension.activity.toString();
+    quotas.put(keyActivity, null == sdkInstance? "unKnow" : sdkInstance.getContainerInfo().get(keyActivity));
+    String keyType = Dimension.instanceType.toString();
+    quotas.put(keyType,sdkInstance == null ?"unKnow": sdkInstance.getContainerInfo().get(keyType));
+
     // TODO These attribute will be moved to elsewhere
     // Extra Dimension for 3rd developers.
     quotas.put(Dimension.wxdim1.toString(), wxDims[0]);
diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXEmbed.java b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXEmbed.java
index 3160172bbc..7b113079de 100644
--- a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXEmbed.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXEmbed.java
@@ -35,6 +35,7 @@
 import com.taobao.weex.common.Constants;
 import com.taobao.weex.common.WXErrorCode;
 import com.taobao.weex.common.WXPerformance;
+import com.taobao.weex.common.WXPerformance.Dimension;
 import com.taobao.weex.common.WXRenderStrategy;
 import com.taobao.weex.ui.action.BasicComponentData;
 import com.taobao.weex.utils.WXLogUtils;
@@ -288,6 +289,8 @@ public void setPriority(String priority) {
    */
   protected void loadContent(){
     mNestedInstance = createInstance();
+    mNestedInstance.setContainerInfo(Dimension.instanceType.toString(),"embed");
+    mNestedInstance.setContainerInfo("parentPage",getInstance().getBundleUrl());
     if(mListener != null && mListener.mEventListener != null){
       if(!mListener.mEventListener.onPreCreate(this,src)){
         //cancel render
diff --git a/android/sdk/src/main/java/com/taobao/weex/utils/WXExceptionUtils.java b/android/sdk/src/main/java/com/taobao/weex/utils/WXExceptionUtils.java
index c0eccb6b9c..b039c18c63 100644
--- a/android/sdk/src/main/java/com/taobao/weex/utils/WXExceptionUtils.java
+++ b/android/sdk/src/main/java/com/taobao/weex/utils/WXExceptionUtils.java
@@ -77,13 +77,6 @@ public static void commitCriticalExceptionRT(@Nullable final String instanceId,
 			instanceIdCommit = instanceId;
 			instance = WXSDKManager.getInstance().getAllInstanceMap().get(instanceId);
 
-			if (null != instance && instance.getContainerView() != null){
-				Context c = instance.getContainerView().getContext();
-				if (c instanceof Activity){
-					commitMap.put("activity",c.getClass().getSimpleName());
-				}
-			}
-
 			if (null != instance) {
 				bundleUrlCommit = instance.getBundleUrl();
 				commitMap.put("templateInfo",instance.getTemplateInfo());
@@ -93,6 +86,9 @@ public static void commitCriticalExceptionRT(@Nullable final String instanceId,
 					} else
 						bundleUrlCommit = WXSDKInstance.requestUrl;
 				}
+				for (Map.Entry<String,String> entry: instance.getContainerInfo().entrySet()){
+					commitMap.put(entry.getKey(),entry.getValue());
+				}
 			}
 		} else {//instance is null for instance id is null
 			if (!TextUtils.isEmpty(WXSDKInstance.requestUrl)) {


 

----------------------------------------------------------------
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