You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by gu...@apache.org on 2017/10/19 04:33:14 UTC
[11/50] [abbrv] incubator-weex git commit: * [android] modify log
print
* [android] modify log print
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/b5126471
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/b5126471
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/b5126471
Branch: refs/heads/release
Commit: b5126471d1b3d9ab04e1c1e39cc636079c47cf58
Parents: 8cebed4
Author: zshshr <zh...@gmail.com>
Authored: Tue Oct 10 12:06:33 2017 +0800
Committer: zshshr <zh...@gmail.com>
Committed: Tue Oct 17 10:56:05 2017 +0800
----------------------------------------------------------------------
.../main/java/com/taobao/weex/WXSDKEngine.java | 6 +
.../com/taobao/weex/bridge/WXBridgeManager.java | 993 +++++++++----------
.../java/com/taobao/weex/dom/WXDomObject.java | 4 +-
.../dom/action/AbstractAddElementAction.java | 4 +-
.../weex/ui/component/WXComponentFactory.java | 2 -
.../java/com/taobao/weex/utils/WXLogUtils.java | 24 +-
6 files changed, 513 insertions(+), 520 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b5126471/android/sdk/src/main/java/com/taobao/weex/WXSDKEngine.java
----------------------------------------------------------------------
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 3a287cc..0296379 100644
--- a/android/sdk/src/main/java/com/taobao/weex/WXSDKEngine.java
+++ b/android/sdk/src/main/java/com/taobao/weex/WXSDKEngine.java
@@ -93,6 +93,7 @@ import com.taobao.weex.ui.module.WXMetaModule;
import com.taobao.weex.ui.module.WXModalUIModule;
import com.taobao.weex.ui.module.WXTimerModule;
import com.taobao.weex.ui.module.WXWebViewModule;
+import com.taobao.weex.utils.LogLevel;
import com.taobao.weex.utils.WXLogUtils;
import com.taobao.weex.utils.WXSoInstallMgrSdk;
import com.taobao.weex.utils.batch.BatchOperationHelper;
@@ -158,6 +159,11 @@ public class WXSDKEngine {
}
long start = System.currentTimeMillis();
WXEnvironment.sSDKInitStart = start;
+ if(WXEnvironment.isApkDebugable()){
+ WXEnvironment.sLogLevel = LogLevel.DEBUG;
+ }else{
+ WXEnvironment.sLogLevel = LogLevel.WARN;
+ }
doInitInternal(application,config);
WXEnvironment.sSDKInitInvokeTime = System.currentTimeMillis()-start;
WXLogUtils.renderPerformanceLog("SDKInitInvokeTime", WXEnvironment.sSDKInitInvokeTime);
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b5126471/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java
----------------------------------------------------------------------
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 713c4c2..c44d7af 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
@@ -84,26 +84,26 @@ import static com.taobao.weex.bridge.WXModuleManager.getDomModule;
/**
* Manager class for communication between JavaScript and Android.
* <ol>
- * <li>
- * Handle Android to JavaScript call, can be one of the following
- * <ul>
- * <li>{@link #createInstance(String, String, Map, String)}</li>
- * <li>{@link #destroyInstance(String)}</li>
- * <li>{@link #refreshInstance(String, WXRefreshData)}</li>
- * <li>{@link #registerModules(Map)}</li>
- * <li>{@link #registerComponents(List)}</li>
- * <li>{@link #invokeCallJSBatch(Message)}</li>
- * </ul>
- * </li>
- * <li>
- * Handle JavaScript to Android call
- * </li>
- * <li>
- * Handle next tick of message.
- * </li>
+ * <li>
+ * Handle Android to JavaScript call, can be one of the following
+ * <ul>
+ * <li>{@link #createInstance(String, String, Map, String)}</li>
+ * <li>{@link #destroyInstance(String)}</li>
+ * <li>{@link #refreshInstance(String, WXRefreshData)}</li>
+ * <li>{@link #registerModules(Map)}</li>
+ * <li>{@link #registerComponents(List)}</li>
+ * <li>{@link #invokeCallJSBatch(Message)}</li>
+ * </ul>
+ * </li>
+ * <li>
+ * Handle JavaScript to Android call
+ * </li>
+ * <li>
+ * Handle next tick of message.
+ * </li>
* </ol>
*/
-public class WXBridgeManager implements Callback,BactchExecutor {
+public class WXBridgeManager implements Callback, BactchExecutor {
public static final String METHOD_CREATE_INSTANCE = "createInstance";
public static final String METHOD_DESTROY_INSTANCE = "destroyInstance";
@@ -129,33 +129,28 @@ public class WXBridgeManager implements Callback,BactchExecutor {
public static final String KEY_PARAMS = "params";
public static final String ARGS = "args";
public static final String OPTIONS = "options";
+ public static final String INITLOGFILE = "/jsserver_start.log";
private static final String NON_CALLBACK = "-1";
private static final String UNDEFINED = "undefined";
-
private static final int INIT_FRAMEWORK_OK = 1;
-
- private static long LOW_MEM_VALUE = 120;
-
- static volatile WXBridgeManager mBridgeManager;
-
private static final int CRASHREINIT = 50;
+ static volatile WXBridgeManager mBridgeManager;
+ private static long LOW_MEM_VALUE = 120;
private static int reInitCount = 1;
-
private static String crashUrl = null;
private static long lastCrashTime = 0;
- public static final String INITLOGFILE = "/jsserver_start.log";
-
-
+ /**
+ * package
+ **/
+ Handler mJSHandler;
/**
* next tick tasks, can set priority
*/
private WXHashMap<String, ArrayList<WXHashMap<String, Object>>> mNextTickTasks = new WXHashMap<>();
-
/**
* JSThread
*/
private WXThread mJSThread;
- /** package **/ Handler mJSHandler;
private IWXBridge mWXBridge;
private IWXDebugProxy mWxDebugProxy;
@@ -163,22 +158,13 @@ public class WXBridgeManager implements Callback,BactchExecutor {
/**
* Whether JS Framework(main.js) has been initialized.
*/
- private boolean mInit =false;
-
- private boolean isJSFrameworkInit(){
- return mInit;
- }
-
+ private boolean mInit = false;
private List<Map<String, Object>> mRegisterComponentFailList = new ArrayList<>(8);
private List<Map<String, Object>> mRegisterModuleFailList = new ArrayList<>(8);
private List<String> mRegisterServiceFailList = new ArrayList<>(8);
-
private List<String> mDestroyedInstanceId = new ArrayList<>();
-
private StringBuilder mLodBuilder = new StringBuilder(50);
-
private Interceptor mInterceptor;
-
private WXParams mInitParams;
private WXBridgeManager() {
@@ -198,6 +184,10 @@ public class WXBridgeManager implements Callback,BactchExecutor {
return mBridgeManager;
}
+ private boolean isJSFrameworkInit() {
+ return mInit;
+ }
+
private void initWXBridge(boolean remoteDebug) {
if (remoteDebug && WXEnvironment.isApkDebugable()) {
WXEnvironment.sDebugServerConnectable = true;
@@ -214,7 +204,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
Constructor constructor = clazz.getConstructor(Context.class, WXBridgeManager.class);
if (constructor != null) {
mWxDebugProxy = (IWXDebugProxy) constructor.newInstance(
- WXEnvironment.getApplication(), WXBridgeManager.this);
+ WXEnvironment.getApplication(), WXBridgeManager.this);
if (mWxDebugProxy != null) {
mWxDebugProxy.start();
}
@@ -242,36 +232,36 @@ public class WXBridgeManager implements Callback,BactchExecutor {
}
}
- public Object callModuleMethod(String instanceId, String moduleStr, String methodStr, JSONArray args) {
- return callModuleMethod(instanceId, moduleStr, methodStr, args, null);
+ public Object callModuleMethod(String instanceId, String moduleStr, String methodStr, JSONArray args) {
+ return callModuleMethod(instanceId, moduleStr, methodStr, args, null);
}
- public Object callModuleMethod(String instanceId, String moduleStr, String methodStr, JSONArray args, JSONObject options) {
- WXSDKInstance wxsdkInstance = WXSDKManager.getInstance()
- .getSDKInstance(instanceId);
- if (wxsdkInstance == null) {
+ public Object callModuleMethod(String instanceId, String moduleStr, String methodStr, JSONArray args, JSONObject options) {
+ WXSDKInstance wxsdkInstance = WXSDKManager.getInstance()
+ .getSDKInstance(instanceId);
+ if (wxsdkInstance == null) {
+ return null;
+ }
+ if (wxsdkInstance.isNeedValidate()
+ && WXSDKManager.getInstance().getValidateProcessor() != null) {
+ WXValidateProcessor.WXModuleValidateResult validateResult = WXSDKManager
+ .getInstance().getValidateProcessor()
+ .onModuleValidate(wxsdkInstance, moduleStr, methodStr, args, options);
+ if (validateResult == null) {
return null;
}
- if (wxsdkInstance.isNeedValidate()
- && WXSDKManager.getInstance().getValidateProcessor() != null) {
- WXValidateProcessor.WXModuleValidateResult validateResult = WXSDKManager
- .getInstance().getValidateProcessor()
- .onModuleValidate(wxsdkInstance, moduleStr, methodStr, args, options);
- if (validateResult == null) {
- return null;
- }
- if (validateResult.isSuccess) {
- return WXModuleManager.callModuleMethod(instanceId, moduleStr, methodStr,
- args);
- } else {
- JSONObject validateInfo = validateResult.validateInfo;
- if (validateInfo != null) {
- WXLogUtils.e("[WXBridgeManager] module validate fail. >>> " + validateInfo.toJSONString());
- }
- return validateInfo;
- }
+ if (validateResult.isSuccess) {
+ return WXModuleManager.callModuleMethod(instanceId, moduleStr, methodStr,
+ args);
+ } else {
+ JSONObject validateInfo = validateResult.validateInfo;
+ if (validateInfo != null) {
+ WXLogUtils.e("[WXBridgeManager] module validate fail. >>> " + validateInfo.toJSONString());
+ }
+ return validateInfo;
}
- return WXModuleManager.callModuleMethod(instanceId, moduleStr, methodStr, args);
+ }
+ return WXModuleManager.callModuleMethod(instanceId, moduleStr, methodStr, args);
}
/**
@@ -284,6 +274,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
/**
* Set current Instance
+ *
* @param instanceId {@link WXSDKInstance#mInstanceId}
*/
public synchronized void setStackTopInstance(final String instanceId) {
@@ -297,12 +288,12 @@ public class WXBridgeManager implements Callback,BactchExecutor {
}
@Override
- public void post(Runnable r){
- if(mInterceptor != null && mInterceptor.take(r)){
+ public void post(Runnable r) {
+ if (mInterceptor != null && mInterceptor.take(r)) {
//task is token by the interceptor
return;
}
- if (mJSHandler == null){
+ if (mJSHandler == null) {
return;
}
@@ -335,15 +326,15 @@ public class WXBridgeManager implements Callback,BactchExecutor {
mJSHandler.sendMessageDelayed(message, timerInfo.time);
}
- public void sendMessageDelayed(Message message, long delayMillis){
+ public void sendMessageDelayed(Message message, long delayMillis) {
if (message == null || mJSHandler == null || mJSThread == null
|| !mJSThread.isWXThreadAlive() || mJSThread.getLooper() == null) {
return;
}
- mJSHandler.sendMessageDelayed(message,delayMillis);
+ mJSHandler.sendMessageDelayed(message, delayMillis);
}
- public void removeMessage(int what,Object obj){
+ public void removeMessage(int what, Object obj) {
if (mJSHandler == null || mJSThread == null
|| !mJSThread.isWXThreadAlive() || mJSThread.getLooper() == null) {
return;
@@ -351,98 +342,97 @@ public class WXBridgeManager implements Callback,BactchExecutor {
mJSHandler.removeMessages(what, obj);
}
- public Object callNativeModule(String instanceId, String module, String method, JSONArray arguments, Object options) {
+ public Object callNativeModule(String instanceId, String module, String method, JSONArray arguments, Object options) {
- if (WXEnvironment.isApkDebugable()) {
- mLodBuilder.append("[WXBridgeManager] callNativeModule >>>> instanceId:").append(instanceId)
- .append(", module:").append(module).append(", method:").append(method).append(", arguments:").append(arguments);
- WXLogUtils.d(mLodBuilder.substring(0));
- mLodBuilder.setLength(0);
- }
-
- try {
- if(WXDomModule.WXDOM.equals(module)){
- WXDomModule dom = getDomModule(instanceId);
- return dom.callDomMethod(method,arguments);
- }else {
- return callModuleMethod(instanceId, module,
- method, arguments);
- }
- } catch (Exception e) {
- WXLogUtils.e("[WXBridgeManager] callNative exception: ", e);
- commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_INVOKE_NATIVE, "[WXBridgeManager] callNativeModule exception " + e.getCause());
- }
+ if (WXEnvironment.isApkDebugable()) {
+ mLodBuilder.append("[WXBridgeManager] callNativeModule >>>> instanceId:").append(instanceId)
+ .append(", module:").append(module).append(", method:").append(method).append(", arguments:").append(arguments);
+ WXLogUtils.d(mLodBuilder.substring(0));
+ mLodBuilder.setLength(0);
+ }
- return null;
+ try {
+ if (WXDomModule.WXDOM.equals(module)) {
+ WXDomModule dom = getDomModule(instanceId);
+ return dom.callDomMethod(method, arguments);
+ } else {
+ return callModuleMethod(instanceId, module,
+ method, arguments);
+ }
+ } catch (Exception e) {
+ WXLogUtils.e("[WXBridgeManager] callNative exception: ", e);
+ commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_INVOKE_NATIVE, "[WXBridgeManager] callNativeModule exception " + e.getCause());
}
- public Object callNativeModule(String instanceId, String module,String method, JSONArray arguments, JSONObject options) {
- if (WXEnvironment.isApkDebugable()) {
- mLodBuilder.append("[WXBridgeManager] callNativeModule >>>> instanceId:").append(instanceId)
- .append(", module:").append(module).append(", method:").append(method).append(", arguments:").append(arguments);
- WXLogUtils.d(mLodBuilder.substring(0));
- mLodBuilder.setLength(0);
- }
+ return null;
+ }
- try {
- if(WXDomModule.WXDOM.equals(module)){
- WXDomModule dom = getDomModule(instanceId);
- return dom.callDomMethod(method,arguments);
- }else {
- return callModuleMethod(instanceId, module,
- method, arguments, options);
- }
- } catch (Exception e) {
- WXLogUtils.e("[WXBridgeManager] callNative exception: ", e);
- commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_INVOKE_NATIVE, "[WXBridgeManager] callNativeModule exception " + e.getCause());
- }
+ public Object callNativeModule(String instanceId, String module, String method, JSONArray arguments, JSONObject options) {
- return null;
+ if (WXEnvironment.isApkDebugable()) {
+ mLodBuilder.append("[WXBridgeManager] callNativeModule >>>> instanceId:").append(instanceId)
+ .append(", module:").append(module).append(", method:").append(method).append(", arguments:").append(arguments);
+ WXLogUtils.d(mLodBuilder.substring(0));
+ mLodBuilder.setLength(0);
}
- public Object callNativeComponent(String instanceId, String componentRef, String method, JSONArray arguments, Object options) {
- if (WXEnvironment.isApkDebugable()) {
- mLodBuilder.append("[WXBridgeManager] callNativeComponent >>>> instanceId:").append(instanceId)
- .append(", componentRef:").append(componentRef).append(", method:").append(method).append(", arguments:").append(arguments);
- WXLogUtils.d(mLodBuilder.substring(0));
- mLodBuilder.setLength(0);
- }
- try {
+ try {
+ if (WXDomModule.WXDOM.equals(module)) {
+ WXDomModule dom = getDomModule(instanceId);
+ return dom.callDomMethod(method, arguments);
+ } else {
+ return callModuleMethod(instanceId, module,
+ method, arguments, options);
+ }
+ } catch (Exception e) {
+ WXLogUtils.e("[WXBridgeManager] callNative exception: ", e);
+ commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_INVOKE_NATIVE, "[WXBridgeManager] callNativeModule exception " + e.getCause());
+ }
- WXDomModule dom = getDomModule(instanceId);
- dom.invokeMethod(componentRef, method, arguments);
+ return null;
+ }
- } catch (Exception e) {
- WXLogUtils.e("[WXBridgeManager] callNative exception: ", e);
- commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_INVOKE_NATIVE, "[WXBridgeManager] callNativeModule exception " + e.getCause());
- }
- return null;
+ public Object callNativeComponent(String instanceId, String componentRef, String method, JSONArray arguments, Object options) {
+ if (WXEnvironment.isApkDebugable()) {
+ mLodBuilder.append("[WXBridgeManager] callNativeComponent >>>> instanceId:").append(instanceId)
+ .append(", componentRef:").append(componentRef).append(", method:").append(method).append(", arguments:").append(arguments);
+ WXLogUtils.d(mLodBuilder.substring(0));
+ mLodBuilder.setLength(0);
}
+ try {
+
+ WXDomModule dom = getDomModule(instanceId);
+ dom.invokeMethod(componentRef, method, arguments);
+
+ } catch (Exception e) {
+ WXLogUtils.e("[WXBridgeManager] callNative exception: ", e);
+ commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_INVOKE_NATIVE, "[WXBridgeManager] callNativeModule exception " + e.getCause());
+ }
+ return null;
+ }
/**
* Dispatch the native task to be executed.
- *
+ *
* @param instanceId {@link WXSDKInstance#mInstanceId}
- * @param tasks tasks to be executed
- * @param callback next tick id
+ * @param tasks tasks to be executed
+ * @param callback next tick id
*/
public int callNative(String instanceId, String tasks, String callback) {
if (TextUtils.isEmpty(tasks)) {
- if (WXEnvironment.isApkDebugable()) {
- WXLogUtils.e("[WXBridgeManager] callNative: call Native tasks is null");
- }
- commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_INVOKE_NATIVE,"[WXBridgeManager] callNative: call Native tasks is null");
+ WXLogUtils.e("[WXBridgeManager] callNative: call Native tasks is null");
+ commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_INVOKE_NATIVE, "[WXBridgeManager] callNative: call Native tasks is null");
return IWXBridge.INSTANCE_RENDERING_ERROR;
}
// if (WXEnvironment.isApkDebugable()) {
- mLodBuilder.append("[WXBridgeManager] callNative >>>> instanceId:").append(instanceId)
- .append(", tasks:").append(tasks).append(", callback:").append(callback);
- WXLogUtils.d(mLodBuilder.substring(0));
- mLodBuilder.setLength(0);
+ mLodBuilder.append("[WXBridgeManager] callNative >>>> instanceId:").append(instanceId)
+ .append(", tasks:").append(tasks).append(", callback:").append(callback);
+ WXLogUtils.d(mLodBuilder.substring(0));
+ mLodBuilder.setLength(0);
// }
- if(mDestroyedInstanceId!=null &&mDestroyedInstanceId.contains(instanceId)){
+ if (mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)) {
return IWXBridge.DESTROY_INSTANCE;
}
@@ -452,7 +442,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
JSONArray array = JSON.parseArray(tasks);
parseNanos = System.nanoTime() - parseNanos;
- if(WXSDKManager.getInstance().getSDKInstance(instanceId)!=null) {
+ if (WXSDKManager.getInstance().getSDKInstance(instanceId) != null) {
WXSDKManager.getInstance().getSDKInstance(instanceId).jsonParseTime(System.currentTimeMillis() - start);
}
@@ -464,27 +454,27 @@ public class WXBridgeManager implements Callback,BactchExecutor {
task = (JSONObject) array.get(i);
if (task != null && WXSDKManager.getInstance().getSDKInstance(instanceId) != null) {
Object target = task.get(MODULE);
- if(target != null){
- if(WXDomModule.WXDOM.equals(target)){
+ if (target != null) {
+ if (WXDomModule.WXDOM.equals(target)) {
WXDomModule dom = getDomModule(instanceId);
- dom.callDomMethod(task,parseNanos);
- }else {
+ dom.callDomMethod(task, parseNanos);
+ } else {
JSONObject optionObj = task.getJSONObject(OPTIONS);
callModuleMethod(instanceId, (String) target,
- (String) task.get(METHOD), (JSONArray) task.get(ARGS), optionObj);
+ (String) task.get(METHOD), (JSONArray) task.get(ARGS), optionObj);
}
- }else if(task.get(COMPONENT) != null){
+ } else if (task.get(COMPONENT) != null) {
//call component
WXDomModule dom = getDomModule(instanceId);
- dom.invokeMethod((String) task.get(REF),(String) task.get(METHOD),(JSONArray) task.get(ARGS));
- }else{
+ dom.invokeMethod((String) task.get(REF), (String) task.get(METHOD), (JSONArray) task.get(ARGS));
+ } else {
throw new IllegalArgumentException("unknown callNative");
}
}
}
} catch (Exception e) {
WXLogUtils.e("[WXBridgeManager] callNative exception: ", e);
- commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_INVOKE_NATIVE,"[WXBridgeManager] callNative exception "+e.getCause());
+ commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_INVOKE_NATIVE, "[WXBridgeManager] callNative exception " + e.getCause());
}
}
@@ -500,21 +490,21 @@ public class WXBridgeManager implements Callback,BactchExecutor {
public int callCreateBody(String instanceId, String tasks, String callback) {
if (TextUtils.isEmpty(tasks)) {
// if (WXEnvironment.isApkDebugable()) {
- WXLogUtils.d("[WXBridgeManager] callCreateBody: call CreateBody tasks is null");
+ WXLogUtils.d("[WXBridgeManager] callCreateBody: call CreateBody tasks is null");
// }
- commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_DOM_CREATEBODY,"[WXBridgeManager] callCreateBody: call CreateBody tasks is null");
+ commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_DOM_CREATEBODY, "[WXBridgeManager] callCreateBody: call CreateBody tasks is null");
return IWXBridge.INSTANCE_RENDERING_ERROR;
}
// if (WXEnvironment.isApkDebugable()) {
- mLodBuilder.append("[WXBridgeManager] callCreateBody >>>> instanceId:").append(instanceId)
- .append(", tasks:").append(tasks).append(", callback:").append(callback);
- WXLogUtils.d(mLodBuilder.substring(0));
- mLodBuilder.setLength(0);
+ mLodBuilder.append("[WXBridgeManager] callCreateBody >>>> instanceId:").append(instanceId)
+ .append(", tasks:").append(tasks).append(", callback:").append(callback);
+ WXLogUtils.d(mLodBuilder.substring(0));
+ mLodBuilder.setLength(0);
// }
- if(mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)){
+ if (mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)) {
return IWXBridge.DESTROY_INSTANCE;
}
@@ -527,7 +517,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
WXDomModule domModule = getDomModule(instanceId);
Action action = Actions.getCreateBody(domObject);
- domModule.postAction((DOMAction)action, true);
+ domModule.postAction((DOMAction) action, true);
if (WXTracing.isAvailable() && action instanceof TraceableAction) {
((TraceableAction) action).mParseJsonNanos = nanosTemp;
@@ -536,8 +526,8 @@ public class WXBridgeManager implements Callback,BactchExecutor {
}
}
} catch (Exception e) {
- WXLogUtils.e("[WXBridgeManager] callCreateBody exception: ", e);
- commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_DOM_CREATEBODY,"[WXBridgeManager] callCreateBody exception "+e.getCause());
+ WXLogUtils.e("[WXBridgeManager] callCreateBody exception: ", e);
+ commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_DOM_CREATEBODY, "[WXBridgeManager] callCreateBody exception " + e.getCause());
}
if (UNDEFINED.equals(callback) || NON_CALLBACK.equals(callback)) {
@@ -553,12 +543,12 @@ public class WXBridgeManager implements Callback,BactchExecutor {
public int callUpdateFinish(String instanceId, String callback) {
if (WXEnvironment.isApkDebugable()) {
mLodBuilder.append("[WXBridgeManager] callUpdateFinish >>>> instanceId:").append(instanceId)
- .append(", callback:").append(callback);
+ .append(", callback:").append(callback);
WXLogUtils.d(mLodBuilder.substring(0));
mLodBuilder.setLength(0);
}
- if(mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)){
+ if (mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)) {
return IWXBridge.DESTROY_INSTANCE;
}
@@ -566,11 +556,11 @@ public class WXBridgeManager implements Callback,BactchExecutor {
if (WXSDKManager.getInstance().getSDKInstance(instanceId) != null) {
WXDomModule domModule = getDomModule(instanceId);
Action action = Actions.getUpdateFinish();
- domModule.postAction((DOMAction)action, false);
+ domModule.postAction((DOMAction) action, false);
}
} catch (Exception e) {
WXLogUtils.e("[WXBridgeManager] callUpdateFinish exception: ", e);
- commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_INVOKE_NATIVE,"[WXBridgeManager] callUpdateFinish exception "+e.getCause());
+ commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_INVOKE_NATIVE, "[WXBridgeManager] callUpdateFinish exception " + e.getCause());
}
if (UNDEFINED.equals(callback) || NON_CALLBACK.equals(callback)) {
@@ -584,13 +574,13 @@ public class WXBridgeManager implements Callback,BactchExecutor {
// callCreateFinish
public int callCreateFinish(String instanceId, String callback) {
// if (WXEnvironment.isApkDebugable()) {
- mLodBuilder.append("[WXBridgeManager] callCreateFinish >>>> instanceId:").append(instanceId)
- .append(", callback:").append(callback);
- WXLogUtils.d(mLodBuilder.substring(0));
- mLodBuilder.setLength(0);
+ mLodBuilder.append("[WXBridgeManager] callCreateFinish >>>> instanceId:").append(instanceId)
+ .append(", callback:").append(callback);
+ WXLogUtils.d(mLodBuilder.substring(0));
+ mLodBuilder.setLength(0);
// }
- if(mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)) {
+ if (mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)) {
return IWXBridge.DESTROY_INSTANCE;
}
@@ -598,11 +588,11 @@ public class WXBridgeManager implements Callback,BactchExecutor {
if (WXSDKManager.getInstance().getSDKInstance(instanceId) != null) {
WXDomModule domModule = getDomModule(instanceId);
Action action = Actions.getCreateFinish();
- domModule.postAction((DOMAction)action, false);
+ domModule.postAction((DOMAction) action, false);
}
} catch (Exception e) {
WXLogUtils.e("[WXBridgeManager] callCreateFinish exception: ", e);
- commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERROR_DOM_CREATEFINISH,"[WXBridgeManager] callCreateFinish exception " + e.getCause());
+ commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERROR_DOM_CREATEFINISH, "[WXBridgeManager] callCreateFinish exception " + e.getCause());
}
if (UNDEFINED.equals(callback) || NON_CALLBACK.equals(callback)) {
@@ -618,12 +608,12 @@ public class WXBridgeManager implements Callback,BactchExecutor {
public int callRefreshFinish(String instanceId, String callback) {
if (WXEnvironment.isApkDebugable()) {
mLodBuilder.append("[WXBridgeManager] callRefreshFinish >>>> instanceId:").append(instanceId)
- .append(", callback:").append(callback);
+ .append(", callback:").append(callback);
WXLogUtils.d(mLodBuilder.substring(0));
mLodBuilder.setLength(0);
}
- if(mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)) {
+ if (mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)) {
return IWXBridge.DESTROY_INSTANCE;
}
@@ -631,11 +621,11 @@ public class WXBridgeManager implements Callback,BactchExecutor {
if (WXSDKManager.getInstance().getSDKInstance(instanceId) != null) {
WXDomModule domModule = getDomModule(instanceId);
Action action = Actions.getRefreshFinish();
- domModule.postAction((DOMAction)action, false);
+ domModule.postAction((DOMAction) action, false);
}
} catch (Exception e) {
WXLogUtils.e("[WXBridgeManager] callRefreshFinish exception: ", e);
- commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERROR_DOM_REFRESHFINISH,"[WXBridgeManager] callRefreshFinish exception " + e.getCause());
+ commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERROR_DOM_REFRESHFINISH, "[WXBridgeManager] callRefreshFinish exception " + e.getCause());
}
if (UNDEFINED.equals(callback) || NON_CALLBACK.equals(callback)) {
@@ -650,22 +640,20 @@ public class WXBridgeManager implements Callback,BactchExecutor {
// callUpdateAttrs
public int callUpdateAttrs(String instanceId, String ref, String task, String callback) {
if (TextUtils.isEmpty(task)) {
- if (WXEnvironment.isApkDebugable()) {
- WXLogUtils.e("[WXBridgeManager] callUpdateAttrs: call UpdateAttrs tasks is null");
- }
- commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_DOM_UPDATEATTRS,"[WXBridgeManager] callUpdateAttrs: call UpdateAttrs tasks is null");
+ WXLogUtils.e("[WXBridgeManager] callUpdateAttrs: call UpdateAttrs tasks is null");
+ commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_DOM_UPDATEATTRS, "[WXBridgeManager] callUpdateAttrs: call UpdateAttrs tasks is null");
return IWXBridge.INSTANCE_RENDERING_ERROR;
}
if (WXEnvironment.isApkDebugable()) {
mLodBuilder.append("[WXBridgeManager] callUpdateAttrs >>>> instanceId:").append(instanceId)
- .append(", ref:").append(ref)
- .append(", task:").append(task)
- .append(", callback:").append(callback);
+ .append(", ref:").append(ref)
+ .append(", task:").append(task)
+ .append(", callback:").append(callback);
WXLogUtils.d(mLodBuilder.substring(0));
mLodBuilder.setLength(0);
}
- if(mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)) {
+ if (mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)) {
return IWXBridge.DESTROY_INSTANCE;
}
@@ -678,7 +666,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
parseNanos = System.nanoTime() - parseNanos;
Action action = Actions.getUpdateAttrs(ref, domObject);
- domModule.postAction((DOMAction)action, false);
+ domModule.postAction((DOMAction) action, false);
if (WXTracing.isAvailable() && action instanceof TraceableAction) {
((TraceableAction) action).mStartMillis = start;
@@ -688,7 +676,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
}
} catch (Exception e) {
WXLogUtils.e("[WXBridgeManager] callUpdateAttrs exception: ", e);
- commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_DOM_UPDATEATTRS,"[WXBridgeManager] callUpdateAttrs exception " + e.getCause());
+ commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_DOM_UPDATEATTRS, "[WXBridgeManager] callUpdateAttrs exception " + e.getCause());
}
if (UNDEFINED.equals(callback) || NON_CALLBACK.equals(callback)) {
@@ -703,22 +691,20 @@ public class WXBridgeManager implements Callback,BactchExecutor {
// callUpdateStyle
public int callUpdateStyle(String instanceId, String ref, String task, String callback) {
if (TextUtils.isEmpty(task)) {
- if (WXEnvironment.isApkDebugable()) {
- WXLogUtils.e("[WXBridgeManager] callUpdateStyle: call UpdateStyle tasks is null");
- }
- commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_DOM_UPDATESTYLE,"[WXBridgeManager] callUpdateStyle: call UpdateStyle tasks is null");
+ WXLogUtils.e("[WXBridgeManager] callUpdateStyle: call UpdateStyle tasks is null");
+ commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_DOM_UPDATESTYLE, "[WXBridgeManager] callUpdateStyle: call UpdateStyle tasks is null");
return IWXBridge.INSTANCE_RENDERING_ERROR;
}
-// if (WXEnvironment.isApkDebugable()) {
- mLodBuilder.append("[WXBridgeManager] callUpdateStyle >>>> instanceId:").append(instanceId)
- .append(", ref:").append(ref)
- .append(", task:").append(task)
- .append(", callback:").append(callback);
- WXLogUtils.d(mLodBuilder.substring(0));
- mLodBuilder.setLength(0);
-// }
+ if (WXEnvironment.isApkDebugable()) {
+ mLodBuilder.append("[WXBridgeManager] callUpdateStyle >>>> instanceId:").append(instanceId)
+ .append(", ref:").append(ref)
+ .append(", task:").append(task)
+ .append(", callback:").append(callback);
+ WXLogUtils.d(mLodBuilder.substring(0));
+ mLodBuilder.setLength(0);
+ }
- if(mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)) {
+ if (mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)) {
return IWXBridge.DESTROY_INSTANCE;
}
@@ -731,7 +717,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
nanosTemp = System.nanoTime() - nanosTemp;
Action action = Actions.getUpdateStyle(ref, domObject, false);
- domModule.postAction((DOMAction)action, false);
+ domModule.postAction((DOMAction) action, false);
if (WXTracing.isAvailable() && action instanceof TraceableAction) {
((TraceableAction) action).mParseJsonNanos = nanosTemp;
@@ -741,7 +727,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
}
} catch (Exception e) {
WXLogUtils.e("[WXBridgeManager] callUpdateStyle exception: ", e);
- commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_DOM_UPDATESTYLE,"[WXBridgeManager] callUpdateStyle exception " + e.getCause());
+ commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_DOM_UPDATESTYLE, "[WXBridgeManager] callUpdateStyle exception " + e.getCause());
}
if (UNDEFINED.equals(callback) || NON_CALLBACK.equals(callback)) {
@@ -757,12 +743,12 @@ public class WXBridgeManager implements Callback,BactchExecutor {
if (WXEnvironment.isApkDebugable()) {
mLodBuilder.append("[WXBridgeManager] callRemoveElement >>>> instanceId:").append(instanceId)
- .append(", ref:").append(ref);
+ .append(", ref:").append(ref);
WXLogUtils.d(mLodBuilder.substring(0));
mLodBuilder.setLength(0);
}
- if(mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)) {
+ if (mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)) {
return IWXBridge.DESTROY_INSTANCE;
}
@@ -770,7 +756,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
if (WXSDKManager.getInstance().getSDKInstance(instanceId) != null) {
WXDomModule domModule = getDomModule(instanceId);
Action action = Actions.getRemoveElement(ref);
- domModule.postAction((DOMAction)action, false);
+ domModule.postAction((DOMAction) action, false);
if (WXTracing.isAvailable() && action instanceof TraceableAction) {
((TraceableAction) action).onStartDomExecute(instanceId, "removeElement", ref, null, ref);
@@ -778,7 +764,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
}
} catch (Exception e) {
WXLogUtils.e("[WXBridgeManager] callRemoveElement exception: ", e);
- commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_DOM_REMOVEELEMENT,"[WXBridgeManager] callRemoveElement exception " + e.getCause());
+ commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_DOM_REMOVEELEMENT, "[WXBridgeManager] callRemoveElement exception " + e.getCause());
}
if (UNDEFINED.equals(callback) || NON_CALLBACK.equals(callback)) {
@@ -794,14 +780,14 @@ public class WXBridgeManager implements Callback,BactchExecutor {
if (WXEnvironment.isApkDebugable()) {
mLodBuilder.append("[WXBridgeManager] callMoveElement >>>> instanceId:").append(instanceId)
- .append(", parentref:").append(parentref)
- .append(", index:").append(index)
- .append(", ref:").append(ref);
+ .append(", parentref:").append(parentref)
+ .append(", index:").append(index)
+ .append(", ref:").append(ref);
WXLogUtils.d(mLodBuilder.substring(0));
mLodBuilder.setLength(0);
}
- if(mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)) {
+ if (mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)) {
return IWXBridge.DESTROY_INSTANCE;
}
@@ -809,11 +795,11 @@ public class WXBridgeManager implements Callback,BactchExecutor {
if (WXSDKManager.getInstance().getSDKInstance(instanceId) != null) {
WXDomModule domModule = getDomModule(instanceId);
Action action = Actions.getMoveElement(ref, parentref, Integer.parseInt(index));
- domModule.postAction((DOMAction)action, false);
+ domModule.postAction((DOMAction) action, false);
}
} catch (Exception e) {
WXLogUtils.e("[WXBridgeManager] callMoveElement exception: ", e);
- commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_DOM_MOVEELEMENT,"[WXBridgeManager] callMoveElement exception " + e.getCause());
+ commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_DOM_MOVEELEMENT, "[WXBridgeManager] callMoveElement exception " + e.getCause());
}
if (UNDEFINED.equals(callback) || NON_CALLBACK.equals(callback)) {
@@ -827,14 +813,14 @@ public class WXBridgeManager implements Callback,BactchExecutor {
public int callAddEvent(String instanceId, String ref, String event, String callback) {
// if (WXEnvironment.isApkDebugable()) {
- mLodBuilder.append("[WXBridgeManager] callAddEvent >>>> instanceId:").append(instanceId)
- .append(", ref:").append(ref)
- .append(", event:").append(event);
- WXLogUtils.d(mLodBuilder.substring(0));
- mLodBuilder.setLength(0);
+ mLodBuilder.append("[WXBridgeManager] callAddEvent >>>> instanceId:").append(instanceId)
+ .append(", ref:").append(ref)
+ .append(", event:").append(event);
+ WXLogUtils.d(mLodBuilder.substring(0));
+ mLodBuilder.setLength(0);
// }
- if(mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)) {
+ if (mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)) {
return IWXBridge.DESTROY_INSTANCE;
}
@@ -842,7 +828,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
if (WXSDKManager.getInstance().getSDKInstance(instanceId) != null) {
WXDomModule domModule = getDomModule(instanceId);
Action action = Actions.getAddEvent(ref, event);
- domModule.postAction((DOMAction)action, false);
+ domModule.postAction((DOMAction) action, false);
if (WXTracing.isAvailable() && action instanceof TraceableAction) {
((TraceableAction) action).onStartDomExecute(instanceId, "addEvent", ref, null, event);
@@ -850,7 +836,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
}
} catch (Exception e) {
WXLogUtils.e("[WXBridgeManager] callAddEvent exception: ", e);
- commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_DOM_ADDEVENT,"[WXBridgeManager] callAddEvent exception " + e.getCause());
+ commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_DOM_ADDEVENT, "[WXBridgeManager] callAddEvent exception " + e.getCause());
}
if (UNDEFINED.equals(callback) || NON_CALLBACK.equals(callback)) {
@@ -865,21 +851,21 @@ public class WXBridgeManager implements Callback,BactchExecutor {
if (WXEnvironment.isApkDebugable()) {
mLodBuilder.append("[WXBridgeManager] callRemoveEvent >>>> instanceId:").append(instanceId)
- .append(", ref:").append(ref)
- .append(", event:").append(event);
+ .append(", ref:").append(ref)
+ .append(", event:").append(event);
WXLogUtils.d(mLodBuilder.substring(0));
mLodBuilder.setLength(0);
}
- if(mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)) {
- return IWXBridge .DESTROY_INSTANCE;
+ if (mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)) {
+ return IWXBridge.DESTROY_INSTANCE;
}
try {
if (WXSDKManager.getInstance().getSDKInstance(instanceId) != null) {
WXDomModule domModule = getDomModule(instanceId);
Action action = Actions.getRemoveEvent(ref, event);
- domModule.postAction((DOMAction)action, false);
+ domModule.postAction((DOMAction) action, false);
if (WXTracing.isAvailable() && action instanceof TraceableAction) {
((TraceableAction) action).onStartDomExecute(instanceId, "removeEvent", ref, null, event);
@@ -887,7 +873,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
}
} catch (Exception e) {
WXLogUtils.e("[WXBridgeManager] callRemoveEvent exception: ", e);
- commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_DOM_REMOVEEVENT,"[WXBridgeManager] callRemoveEvent exception " + e.getCause());
+ commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_DOM_REMOVEEVENT, "[WXBridgeManager] callRemoveEvent exception " + e.getCause());
}
if (UNDEFINED.equals(callback) || NON_CALLBACK.equals(callback)) {
@@ -898,16 +884,16 @@ public class WXBridgeManager implements Callback,BactchExecutor {
return IWXBridge.INSTANCE_RENDERING;
}
- public int callAddElement(String instanceId, String ref,String dom,String index, String callback){
+ public int callAddElement(String instanceId, String ref, String dom, String index, String callback) {
if (WXEnvironment.isApkDebugable()) {
mLodBuilder.append("[WXBridgeManager] callNative::callAddElement >>>> instanceId:").append(instanceId)
- .append(", ref:").append(ref).append(", dom:").append(dom).append(", callback:").append(callback);
+ .append(", ref:").append(ref).append(", dom:").append(dom).append(", callback:").append(callback);
WXLogUtils.d(mLodBuilder.substring(0));
mLodBuilder.setLength(0);
}
- if(mDestroyedInstanceId!=null && mDestroyedInstanceId.contains(instanceId)){
+ if (mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)) {
return IWXBridge.DESTROY_INSTANCE;
}
@@ -922,7 +908,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
WXSDKManager.getInstance().getSDKInstance(instanceId).jsonParseTime(System.currentTimeMillis() - start);
}
WXDomModule domModule = getDomModule(instanceId);
- DOMAction addElementAction = Actions.getAddElement(domObject, ref,Integer.parseInt(index));
+ DOMAction addElementAction = Actions.getAddElement(domObject, ref, Integer.parseInt(index));
domModule.postAction(addElementAction, false);
if (WXTracing.isAvailable() && addElementAction instanceof TraceableAction) {
@@ -942,57 +928,57 @@ public class WXBridgeManager implements Callback,BactchExecutor {
}
public int callReportCrashReloadPage(String instanceId, String crashFile) {
+ try {
+ String url = null;
+ WXSDKInstance instance = WXSDKManager.getInstance().getSDKInstance(instanceId);
+ if (instance != null) {
+ url = instance.getBundleUrl();
+ }
try {
- String url = null;
- WXSDKInstance instance = WXSDKManager.getInstance().getSDKInstance(instanceId);
- if (instance != null) {
- url = instance.getBundleUrl();
- }
- try {
- if (WXEnvironment.getApplication() != null) {
- crashFile = WXEnvironment.getApplication().getApplicationContext().getCacheDir().getPath() + crashFile;
- // Log.e("jsengine", "callReportCrashReloadPage crashFile:" + crashFile);
- }
- } catch (Throwable e) {
- e.printStackTrace();
+ if (WXEnvironment.getApplication() != null) {
+ crashFile = WXEnvironment.getApplication().getApplicationContext().getCacheDir().getPath() + crashFile;
+ // Log.e("jsengine", "callReportCrashReloadPage crashFile:" + crashFile);
}
- callReportCrash(crashFile, instanceId, url);
- if (reInitCount > CRASHREINIT) {
- return IWXBridge.INSTANCE_RENDERING_ERROR;
- }
- reInitCount++;
- // reinit frame work
- mInit = false;
- initScriptsFramework("");
-
- if (mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)) {
- return IWXBridge.DESTROY_INSTANCE;
- }
- } catch (Exception e) {
- WXLogUtils.e("[WXBridgeManager] callReportCrashReloadPage exception: ", e);
+ } catch (Throwable e) {
+ e.printStackTrace();
}
- try {
+ callReportCrash(crashFile, instanceId, url);
+ if (reInitCount > CRASHREINIT) {
+ return IWXBridge.INSTANCE_RENDERING_ERROR;
+ }
+ reInitCount++;
+ // reinit frame work
+ mInit = false;
+ initScriptsFramework("");
- if (WXSDKManager.getInstance().getSDKInstance(instanceId) != null) {
- boolean reloadThisInstance = shouReloadCurrentInstance(
- WXSDKManager.getInstance().getSDKInstance(instanceId).getBundleUrl());
- WXDomModule domModule = getDomModule(instanceId);
- Action action = Actions.getReloadPage(instanceId, reloadThisInstance);
- domModule.postAction((DOMAction) action, true);
- }
+ if (mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)) {
+ return IWXBridge.DESTROY_INSTANCE;
+ }
+ } catch (Exception e) {
+ WXLogUtils.e("[WXBridgeManager] callReportCrashReloadPage exception: ", e);
+ }
+ try {
- } catch (Exception e) {
- WXLogUtils.e("[WXBridgeManager] callReloadPage exception: ", e);
- commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_RELOAD_PAGE,"[WXBridgeManager] callReloadPage exception "+e.getCause());
+ if (WXSDKManager.getInstance().getSDKInstance(instanceId) != null) {
+ boolean reloadThisInstance = shouReloadCurrentInstance(
+ WXSDKManager.getInstance().getSDKInstance(instanceId).getBundleUrl());
+ WXDomModule domModule = getDomModule(instanceId);
+ Action action = Actions.getReloadPage(instanceId, reloadThisInstance);
+ domModule.postAction((DOMAction) action, true);
}
- return IWXBridge.INSTANCE_RENDERING_ERROR;
+
+ } catch (Exception e) {
+ WXLogUtils.e("[WXBridgeManager] callReloadPage exception: ", e);
+ commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_RELOAD_PAGE, "[WXBridgeManager] callReloadPage exception " + e.getCause());
+ }
+ return IWXBridge.INSTANCE_RENDERING_ERROR;
}
public boolean shouReloadCurrentInstance(String aUrl) {
long time = System.currentTimeMillis();
if (crashUrl == null ||
- (crashUrl != null && !crashUrl.equals(aUrl)) ||
- ((time - lastCrashTime) > 15000)) {
+ (crashUrl != null && !crashUrl.equals(aUrl)) ||
+ ((time - lastCrashTime) > 15000)) {
crashUrl = aUrl;
lastCrashTime = time;
return true;
@@ -1002,49 +988,49 @@ public class WXBridgeManager implements Callback,BactchExecutor {
}
public void callReportCrash(String crashFile, final String instanceId, final String url) {
- // statistic weexjsc process crash
- Date date = new Date();
- DateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
- String time = format.format(date);
- final String origin_filename = crashFile + "." + time;
- File oldfile = new File(crashFile);
- File newfile = new File(origin_filename);
- if (oldfile.exists()) {
- oldfile.renameTo(newfile);
- }
- Thread t = new Thread(new Runnable() {
- public void run() {
+ // statistic weexjsc process crash
+ Date date = new Date();
+ DateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
+ String time = format.format(date);
+ final String origin_filename = crashFile + "." + time;
+ File oldfile = new File(crashFile);
+ File newfile = new File(origin_filename);
+ if (oldfile.exists()) {
+ oldfile.renameTo(newfile);
+ }
+ Thread t = new Thread(new Runnable() {
+ public void run() {
+ try {
+ File file = new File(origin_filename);
+ if (file.exists()) {
+ if (file.length() > 0) {
+ StringBuilder result = new StringBuilder();
try {
- File file = new File(origin_filename);
- if (file.exists()) {
- if (file.length() > 0) {
- StringBuilder result = new StringBuilder();
- try{
- BufferedReader br = new BufferedReader(new FileReader(origin_filename));
- String s = null;
- // boolean foundStart = false;
- while((s = br.readLine()) != null) {
- if ("".equals(s)) {
- continue;
- }
- // 寄存器内容裁剪
- // if (("r0:").equals(s)) {
- // break;
- // }
- result.append(s + "\n");
- }
- commitJscCrashAlarmMonitor(IWXUserTrackAdapter.JS_BRIDGE, WXErrorCode.WX_ERR_JSC_CRASH, result.toString(), instanceId, url);
- br.close();
- } catch(Exception e) {
- e.printStackTrace();
- }
- } else {
- WXLogUtils.e("[WXBridgeManager] callReportCrash crash file is empty");
- // 没收集到crash堆栈不上传
- // commitJscCrashAlarmMonitor(IWXUserTrackAdapter.JS_BRIDGE, WXErrorCode.WX_ERR_JSC_CRASH, "crash info file empty", instanceId, url);
+ BufferedReader br = new BufferedReader(new FileReader(origin_filename));
+ String s = null;
+ // boolean foundStart = false;
+ while ((s = br.readLine()) != null) {
+ if ("".equals(s)) {
+ continue;
}
- file.delete();
+ // 寄存器内容裁剪
+ // if (("r0:").equals(s)) {
+ // break;
+ // }
+ result.append(s + "\n");
}
+ commitJscCrashAlarmMonitor(IWXUserTrackAdapter.JS_BRIDGE, WXErrorCode.WX_ERR_JSC_CRASH, result.toString(), instanceId, url);
+ br.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ } else {
+ WXLogUtils.e("[WXBridgeManager] callReportCrash crash file is empty");
+ // 没收集到crash堆栈不上传
+ // commitJscCrashAlarmMonitor(IWXUserTrackAdapter.JS_BRIDGE, WXErrorCode.WX_ERR_JSC_CRASH, "crash info file empty", instanceId, url);
+ }
+ file.delete();
+ }
// Log.e("reportServerCrash", "WXBridge reportServerCrash crashFile:" + origin_filename);
// String filename = CRASHPATH;
// File oldfile = new File(origin_filename);
@@ -1071,17 +1057,17 @@ public class WXBridgeManager implements Callback,BactchExecutor {
// } else {
// Log.e("reportServerCrash", "WXBridge /data/data/com.taobao.taobao/app_tombstone/com.taobao.taobao/crashsdk/logs not exsist");
// }
- } catch (Throwable throwable) {
- WXLogUtils.e("[WXBridgeManager] callReportCrash exception: ", throwable);
- }
- }
- });
- t.start();
+ } catch (Throwable throwable) {
+ WXLogUtils.e("[WXBridgeManager] callReportCrash exception: ", throwable);
+ }
+ }
+ });
+ t.start();
}
private void getNextTick(final String instanceId, final String callback) {
- addJSTask(METHOD_CALLBACK,instanceId, callback, "{}");
+ addJSTask(METHOD_CALLBACK, instanceId, callback, "{}");
sendMessage(instanceId, WXJSBridgeMsgType.CALL_JS_BATCH);
}
@@ -1096,12 +1082,12 @@ public class WXBridgeManager implements Callback,BactchExecutor {
ArrayList<Object> argsList = new ArrayList<>();
for (Object arg : args) {
- argsList.add(arg);
+ argsList.add(arg);
}
- if(params != null){
- ArrayMap map = new ArrayMap(4);
- map.put(KEY_PARAMS, params);
- argsList.add(map);
+ if (params != null) {
+ ArrayMap map = new ArrayMap(4);
+ map.put(KEY_PARAMS, params);
+ argsList.add(map);
}
WXHashMap<String, Object> task = new WXHashMap<>();
@@ -1133,6 +1119,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
/**
* Initialize JavaScript framework
+ *
* @param framework String representation of the framework to be init.
*/
public synchronized void initScriptsFramework(String framework) {
@@ -1145,12 +1132,13 @@ public class WXBridgeManager implements Callback,BactchExecutor {
@Deprecated
public void fireEvent(final String instanceId, final String ref,
- final String type, final Map<String, Object> data){
+ final String type, final Map<String, Object> data) {
this.fireEvent(instanceId, ref, type, data, null);
}
/**
* Do not direct invoke this method in Components, use {@link WXSDKInstance#fireEvent(String, String, Map, Map)} instead.
+ *
* @param instanceId
* @param ref
* @param type
@@ -1159,16 +1147,16 @@ public class WXBridgeManager implements Callback,BactchExecutor {
*/
@Deprecated
public void fireEvent(final String instanceId, final String ref,
- final String type, final Map<String, Object> data,final Map<String, Object> domChanges) {
- fireEventOnNode(instanceId,ref,type,data,domChanges);
+ final String type, final Map<String, Object> data, final Map<String, Object> domChanges) {
+ fireEventOnNode(instanceId, ref, type, data, domChanges);
}
/**
* Notify the JavaScript about the event happened on Android
*/
public void fireEventOnNode(final String instanceId, final String ref,
- final String type, final Map<String, Object> data,final Map<String, Object> domChanges) {
- fireEventOnNode(instanceId, ref, type, data, domChanges, null);
+ final String type, final Map<String, Object> data, final Map<String, Object> domChanges) {
+ fireEventOnNode(instanceId, ref, type, data, domChanges, null);
}
/**
@@ -1178,12 +1166,12 @@ public class WXBridgeManager implements Callback,BactchExecutor {
final String type, final Map<String, Object> data,
final Map<String, Object> domChanges, List<Object> params) {
if (TextUtils.isEmpty(instanceId) || TextUtils.isEmpty(ref)
- || TextUtils.isEmpty(type) || mJSHandler == null) {
+ || TextUtils.isEmpty(type) || mJSHandler == null) {
return;
}
if (!checkMainThread()) {
throw new WXRuntimeException(
- "fireEvent must be called by main thread");
+ "fireEvent must be called by main thread");
}
addJSEventTask(METHOD_FIRE_EVENT, instanceId, params, ref, type, data, domChanges);
sendMessage(instanceId, WXJSBridgeMsgType.CALL_JS_BATCH);
@@ -1196,11 +1184,12 @@ public class WXBridgeManager implements Callback,BactchExecutor {
/**
* Invoke JavaScript callback. Use {@link JSCallback} instead.
+ *
* @see #callback(String, String, String)
*/
@Deprecated
- public void callback(String instanceId, String callback,String data) {
- callback(instanceId, callback,data,false);
+ public void callback(String instanceId, String callback, String data) {
+ callback(instanceId, callback, data, false);
}
/**
@@ -1208,29 +1197,31 @@ public class WXBridgeManager implements Callback,BactchExecutor {
*/
@Deprecated
public void callback(final String instanceId, final String callback,
- final Map<String, Object> data){
- callback(instanceId,callback,data,false);
+ final Map<String, Object> data) {
+ callback(instanceId, callback, data, false);
}
/**
* Use {@link JSCallback} instead.
+ *
* @param instanceId Weex Instance Id
- * @param callback callback referenece handle
- * @param data callback data
- * @param keepAlive if keep callback instance alive for later use
- */
+ * @param callback callback referenece handle
+ * @param data callback data
+ * @param keepAlive if keep callback instance alive for later use
+ */
@Deprecated
public void callback(final String instanceId, final String callback,
- final Object data,boolean keepAlive) {
- callbackJavascript(instanceId,callback,data,keepAlive);
+ final Object data, boolean keepAlive) {
+ callbackJavascript(instanceId, callback, data, keepAlive);
}
/**
* Callback to Javascript function.
+ *
* @param instanceId Weex Instance Id
- * @param callback callback referenece handle
- * @param data callback data
- * @param keepAlive if keep callback instance alive for later use
+ * @param callback callback referenece handle
+ * @param data callback data
+ * @param keepAlive if keep callback instance alive for later use
*/
void callbackJavascript(final String instanceId, final String callback,
final Object data, boolean keepAlive) {
@@ -1239,7 +1230,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
return;
}
- addJSTask(METHOD_CALLBACK, instanceId, callback, data,keepAlive);
+ addJSTask(METHOD_CALLBACK, instanceId, callback, data, keepAlive);
sendMessage(instanceId, WXJSBridgeMsgType.CALL_JS_BATCH);
}
@@ -1264,32 +1255,32 @@ public class WXBridgeManager implements Callback,BactchExecutor {
WXSDKInstance instance = WXSDKManager.getInstance().getSDKInstance(instanceId);
if (instance != null) {
instance.onRenderError(WXRenderErrorCode.WX_CREATE_INSTANCE_ERROR,
- "createInstance failed!");
+ "createInstance failed!");
}
String err = "[WXBridgeManager] invokeRefreshInstance: framework.js uninitialized.";
- commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_INVOKE_NATIVE,err);
+ commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_INVOKE_NATIVE, err);
WXLogUtils.d(err);
return;
}
long start = System.currentTimeMillis();
if (WXEnvironment.isApkDebugable()) {
WXLogUtils.d("refreshInstance >>>> instanceId:" + instanceId
- + ", data:" + refreshData.data + ", isDirty:" + refreshData.isDirty);
+ + ", data:" + refreshData.data + ", isDirty:" + refreshData.isDirty);
}
if (refreshData.isDirty) {
return;
}
WXJSObject instanceIdObj = new WXJSObject(WXJSObject.String,
- instanceId);
+ instanceId);
WXJSObject dataObj = new WXJSObject(WXJSObject.JSON,
- refreshData.data == null ? "{}" : refreshData.data);
+ refreshData.data == null ? "{}" : refreshData.data);
WXJSObject[] args = {instanceIdObj, dataObj};
invokeExecJS(instanceId, null, METHOD_REFRESH_INSTANCE, args);
WXLogUtils.renderPerformanceLog("invokeRefreshInstance", System.currentTimeMillis() - start);
} catch (Throwable e) {
String err = "[WXBridgeManager] invokeRefreshInstance " + e.getCause();
- commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_INVOKE_NATIVE,err);
+ commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_INVOKE_NATIVE, err);
WXLogUtils.e(err);
}
}
@@ -1309,11 +1300,11 @@ public class WXBridgeManager implements Callback,BactchExecutor {
return;
}
WXPerformance performance = new WXPerformance();
- performance.args=instance.getBundleUrl();
- performance.errCode=errCode.getErrorCode();
+ performance.args = instance.getBundleUrl();
+ performance.errCode = errCode.getErrorCode();
if (errCode != WXErrorCode.WX_SUCCESS) {
- performance.appendErrMsg(TextUtils.isEmpty(errMsg)?errCode.getErrorMsg():errMsg);
- WXLogUtils.e("wx_monitor",performance.toString());
+ performance.appendErrMsg(TextUtils.isEmpty(errMsg) ? errCode.getErrorMsg() : errMsg);
+ WXLogUtils.e("wx_monitor", performance.toString());
}
adapter.commit(WXEnvironment.getApplication(), null, IWXUserTrackAdapter.JS_BRIDGE, performance, instance.getUserTrackParams());
}
@@ -1335,8 +1326,8 @@ public class WXBridgeManager implements Callback,BactchExecutor {
WXPerformance performance = new WXPerformance();
performance.errCode = errorCode.getErrorCode();
if (errorCode != WXErrorCode.WX_SUCCESS) {
- performance.appendErrMsg(TextUtils.isEmpty(errMsg)?errorCode.getErrorMsg():errMsg);
- WXLogUtils.e("wx_monitor",performance.toString());
+ performance.appendErrMsg(TextUtils.isEmpty(errMsg) ? errorCode.getErrorMsg() : errMsg);
+ WXLogUtils.e("wx_monitor", performance.toString());
}
userTrackAdapter.commit(WXEnvironment.getApplication(), null, type, performance, null);
}
@@ -1350,15 +1341,15 @@ public class WXBridgeManager implements Callback,BactchExecutor {
String method = "callReportCrash";
String exception = "weexjsc process crash and restart exception";
- Map<String,String> extParams = new HashMap<String, String>();
+ Map<String, String> extParams = new HashMap<String, String>();
extParams.put("jscCrashStack", errMsg);
IWXJSExceptionAdapter adapter = WXSDKManager.getInstance().getIWXJSExceptionAdapter();
if (adapter != null) {
- WXJSExceptionInfo jsException = new WXJSExceptionInfo(instanceId, url, errorCode.getErrorCode(), method, exception, extParams);
- adapter.onJSException(jsException);
- // if (WXEnvironment.isApkDebugable()) {
- WXLogUtils.e(jsException.toString());
- // }
+ WXJSExceptionInfo jsException = new WXJSExceptionInfo(instanceId, url, errorCode.getErrorCode(), method, exception, extParams);
+ adapter.onJSException(jsException);
+ // if (WXEnvironment.isApkDebugable()) {
+ WXLogUtils.e(jsException.toString());
+ // }
}
}
@@ -1368,11 +1359,11 @@ public class WXBridgeManager implements Callback,BactchExecutor {
public void createInstance(final String instanceId, final String template,
final Map<String, Object> options, final String data) {
final WXSDKInstance instance = WXSDKManager.getInstance().getSDKInstance(instanceId);
- if(instance == null){
- WXLogUtils.e("WXBridgeManager","createInstance failed, SDKInstance is not exist");
+ if (instance == null) {
+ WXLogUtils.e("WXBridgeManager", "createInstance failed, SDKInstance is not exist");
return;
}
- if ( TextUtils.isEmpty(instanceId)
+ if (TextUtils.isEmpty(instanceId)
|| TextUtils.isEmpty(template) || mJSHandler == null) {
instance.onRenderError(WXRenderErrorCode.WX_CREATE_INSTANCE_ERROR, "createInstance fail!");
return;
@@ -1401,7 +1392,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
@Override
public void run() {
- instance.createInstanceFinished(totalTime);
+ instance.createInstanceFinished(totalTime);
}
}, 0);
}
@@ -1418,37 +1409,37 @@ public class WXBridgeManager implements Callback,BactchExecutor {
} else {
if (!isJSFrameworkInit()) {
instance.onRenderError(WXRenderErrorCode.WX_CREATE_INSTANCE_ERROR, "createInstance "
- + "fail!");
+ + "fail!");
String err = "[WXBridgeManager] invokeCreateInstance: framework.js uninitialized.";
- commitJSBridgeAlarmMonitor(instance.getInstanceId(), WXErrorCode.WX_ERR_INVOKE_NATIVE,err);
+ commitJSBridgeAlarmMonitor(instance.getInstanceId(), WXErrorCode.WX_ERR_INVOKE_NATIVE, err);
WXLogUtils.e(err);
return;
}
try {
if (WXEnvironment.isApkDebugable()) {
WXLogUtils.d("createInstance >>>> instanceId:" + instance.getInstanceId()
- + ", options:"
- + WXJsonUtils.fromObjectToJSONString(options)
- + ", data:" + data);
+ + ", options:"
+ + WXJsonUtils.fromObjectToJSONString(options)
+ + ", data:" + data);
}
WXJSObject instanceIdObj = new WXJSObject(WXJSObject.String,
- instance.getInstanceId());
+ instance.getInstanceId());
WXJSObject instanceObj = new WXJSObject(WXJSObject.String,
- template);
+ template);
WXJSObject optionsObj = new WXJSObject(WXJSObject.JSON,
- options == null ? "{}"
- : WXJsonUtils.fromObjectToJSONString(options));
+ options == null ? "{}"
+ : WXJsonUtils.fromObjectToJSONString(options));
WXJSObject dataObj = new WXJSObject(WXJSObject.JSON,
- data == null ? "{}" : data);
+ data == null ? "{}" : data);
WXJSObject[] args = {instanceIdObj, instanceObj, optionsObj,
- dataObj};
- invokeExecJS(instance.getInstanceId(), null, METHOD_CREATE_INSTANCE, args,false);
+ dataObj};
+ invokeExecJS(instance.getInstanceId(), null, METHOD_CREATE_INSTANCE, args, false);
} catch (Throwable e) {
instance.onRenderError(WXRenderErrorCode.WX_CREATE_INSTANCE_ERROR,
- "createInstance failed!");
+ "createInstance failed!");
String err = "[WXBridgeManager] invokeCreateInstance " + e.getCause()
- + " template md5 " + WXFileUtils.md5(template) + " length " + (template == null ? 0 : template.length());
- commitJSBridgeAlarmMonitor(instance.getInstanceId(), WXErrorCode.WX_ERR_INVOKE_NATIVE,err);
+ + " template md5 " + WXFileUtils.md5(template) + " length " + (template == null ? 0 : template.length());
+ commitJSBridgeAlarmMonitor(instance.getInstanceId(), WXErrorCode.WX_ERR_INVOKE_NATIVE, err);
WXLogUtils.e(err);
}
}
@@ -1459,11 +1450,11 @@ public class WXBridgeManager implements Callback,BactchExecutor {
}
public void destroyInstance(final String instanceId) {
- if ( mJSHandler == null
+ if (mJSHandler == null
|| TextUtils.isEmpty(instanceId)) {
return;
}
- if(mDestroyedInstanceId!=null) {
+ if (mDestroyedInstanceId != null) {
mDestroyedInstanceId.add(instanceId);
}
// clear message with instanceId
@@ -1487,12 +1478,12 @@ public class WXBridgeManager implements Callback,BactchExecutor {
WXLogUtils.d("destroyInstance >>>> instanceId:" + instanceId);
}
WXJSObject instanceIdObj = new WXJSObject(WXJSObject.String,
- instanceId);
+ instanceId);
WXJSObject[] args = {instanceIdObj};
invokeExecJS(instanceId, null, METHOD_DESTROY_INSTANCE, args);
} catch (Throwable e) {
String err = "[WXBridgeManager] invokeDestroyInstance " + e.getCause();
- commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_INVOKE_NATIVE,err);
+ commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_INVOKE_NATIVE, err);
WXLogUtils.e(err);
}
}
@@ -1513,7 +1504,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
break;
case WXJSBridgeMsgType.SET_TIMEOUT:
TimerInfo timerInfo = (TimerInfo) msg.obj;
- if(timerInfo == null){
+ if (timerInfo == null) {
break;
}
WXJSObject obj = new WXJSObject(WXJSObject.String, timerInfo.callbackId);
@@ -1537,14 +1528,14 @@ public class WXBridgeManager implements Callback,BactchExecutor {
}
public void invokeExecJS(String instanceId, String namespace, String function,
- WXJSObject[] args,boolean logTaskDetail){
+ WXJSObject[] args, boolean logTaskDetail) {
// if (WXEnvironment.isApkDebugable()) {
- mLodBuilder.append("callJS >>>> instanceId:").append(instanceId)
- .append("function:").append(function);
- if(logTaskDetail)
- mLodBuilder.append(" tasks:").append(WXJsonUtils.fromObjectToJSONString(args));
- WXLogUtils.d(mLodBuilder.substring(0));
- mLodBuilder.setLength(0);
+ mLodBuilder.append("callJS >>>> instanceId:").append(instanceId)
+ .append("function:").append(function);
+ if (logTaskDetail)
+ mLodBuilder.append(" tasks:").append(WXJsonUtils.fromObjectToJSONString(args));
+ WXLogUtils.d(mLodBuilder.substring(0));
+ mLodBuilder.setLength(0);
// }
mWXBridge.execJS(instanceId, namespace, function, args);
}
@@ -1555,16 +1546,16 @@ public class WXBridgeManager implements Callback,BactchExecutor {
framework = (String) msg.obj;
}
- if(WXUtils.getAvailMemory(WXEnvironment.getApplication()) > LOW_MEM_VALUE) {
+ if (WXUtils.getAvailMemory(WXEnvironment.getApplication()) > LOW_MEM_VALUE) {
initFramework(framework);
}
}
- private void initFramework(String framework){
+ private void initFramework(String framework) {
if (!isJSFrameworkInit()) {
if (TextUtils.isEmpty(framework)) {
// if (WXEnvironment.isApkDebugable()) {
- WXLogUtils.d("weex JS framework from assets");
+ WXLogUtils.d("weex JS framework from assets");
// }
framework = WXFileUtils.loadAsset("main.js", WXEnvironment.getApplication());
}
@@ -1579,7 +1570,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
}
long start = System.currentTimeMillis();
- String crashFile="";
+ String crashFile = "";
boolean installOnSdcard = false;
try {
crashFile = WXEnvironment.getApplication().getApplicationContext().getCacheDir().getPath();
@@ -1600,7 +1591,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
}
// extends initFramework
- if(mWXBridge.initFrameworkEnv(framework, assembleDefaultOptions(), crashFile, installOnSdcard)==INIT_FRAMEWORK_OK){
+ if (mWXBridge.initFrameworkEnv(framework, assembleDefaultOptions(), crashFile, installOnSdcard) == INIT_FRAMEWORK_OK) {
WXEnvironment.sJSLibInitTime = System.currentTimeMillis() - start;
WXLogUtils.renderPerformanceLog("initFramework", WXEnvironment.sJSLibInitTime);
WXEnvironment.sSDKInitTime = System.currentTimeMillis() - WXEnvironment.sSDKInitStart;
@@ -1619,25 +1610,25 @@ public class WXBridgeManager implements Callback,BactchExecutor {
reinitInfo = "reinit Framework:";
}
commitJSFrameworkAlarmMonitor(IWXUserTrackAdapter.JS_FRAMEWORK, WXErrorCode.WX_SUCCESS, reinitInfo + "success");
- }else{
+ } else {
if (reInitCount > 1) {
WXLogUtils.e("[WXBridgeManager] invokeReInitFramework ExecuteJavaScript fail");
- String err="[WXBridgeManager] invokeReInitFramework ExecuteJavaScript fail reinit FrameWork";
+ String err = "[WXBridgeManager] invokeReInitFramework ExecuteJavaScript fail reinit FrameWork";
commitJSFrameworkAlarmMonitor(IWXUserTrackAdapter.JS_FRAMEWORK, WXErrorCode.WX_ERR_JS_REINIT_FRAMEWORK, err);
} else {
WXLogUtils.e("[WXBridgeManager] invokeInitFramework ExecuteJavaScript fail");
- String err="[WXBridgeManager] invokeInitFramework ExecuteJavaScript fail";
+ String err = "[WXBridgeManager] invokeInitFramework ExecuteJavaScript fail";
commitJSFrameworkAlarmMonitor(IWXUserTrackAdapter.JS_FRAMEWORK, WXErrorCode.WX_ERR_JS_FRAMEWORK, err);
}
}
} catch (Throwable e) {
if (reInitCount > 1) {
WXLogUtils.e("[WXBridgeManager] invokeInitFramework ", e);
- String err="[WXBridgeManager] invokeInitFramework reinit FrameWork exception!#"+e.toString();
+ String err = "[WXBridgeManager] invokeInitFramework reinit FrameWork exception!#" + e.toString();
commitJSFrameworkAlarmMonitor(IWXUserTrackAdapter.JS_FRAMEWORK, WXErrorCode.WX_ERR_JS_REINIT_FRAMEWORK, err);
} else {
WXLogUtils.e("[WXBridgeManager] invokeInitFramework ", e);
- String err="[WXBridgeManager] invokeInitFramework exception!#"+e.toString();
+ String err = "[WXBridgeManager] invokeInitFramework exception!#" + e.toString();
commitJSFrameworkAlarmMonitor(IWXUserTrackAdapter.JS_FRAMEWORK, WXErrorCode.WX_ERR_JS_FRAMEWORK, err);
}
}
@@ -1649,7 +1640,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
private void invokeCallJSBatch(Message message) {
if (mNextTickTasks.isEmpty() || !isJSFrameworkInit()) {
if (!isJSFrameworkInit()) {
- WXLogUtils.e("[WXBridgeManager] invokeCallJSBatch: framework.js uninitialized!! message:"+message.toString());
+ WXLogUtils.e("[WXBridgeManager] invokeCallJSBatch: framework.js uninitialized!! message:" + message.toString());
}
return;
}
@@ -1670,16 +1661,16 @@ public class WXBridgeManager implements Callback,BactchExecutor {
task = ((ArrayList) task).toArray();
WXJSObject[] args = {
- new WXJSObject(WXJSObject.String, instanceId),
- new WXJSObject(WXJSObject.JSON,
- WXJsonUtils.fromObjectToJSONString(task))};
+ new WXJSObject(WXJSObject.String, instanceId),
+ new WXJSObject(WXJSObject.JSON,
+ WXJsonUtils.fromObjectToJSONString(task))};
invokeExecJS(String.valueOf(instanceId), null, METHOD_CALL_JS, args);
} catch (Throwable e) {
WXLogUtils.e("WXBridgeManager", e);
- String err="invokeCallJSBatch#"+e.toString();
- commitJSBridgeAlarmMonitor(message.obj.toString(), WXErrorCode.WX_ERR_JS_EXECUTE,err);
+ String err = "invokeCallJSBatch#" + e.toString();
+ commitJSBridgeAlarmMonitor(message.obj.toString(), WXErrorCode.WX_ERR_JS_EXECUTE, err);
}
// If task is not empty, loop until it is empty
@@ -1751,16 +1742,16 @@ public class WXBridgeManager implements Callback,BactchExecutor {
/**
* Register Android module
+ *
* @param modules the format is like
* {'dom':['updateAttrs','updateStyle'],'event':['openUrl']}
*/
public void registerModules(final Map<String, Object> modules) {
if (modules != null && modules.size() != 0) {
- if(isJSThread()){
+ if (isJSThread()) {
invokeRegisterModules(modules, mRegisterModuleFailList);
- }
- else{
+ } else {
post(new Runnable() {
@Override
public void run() {
@@ -1775,7 +1766,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
* Registered component
*/
public void registerComponents(final List<Map<String, Object>> components) {
- if ( mJSHandler == null || components == null
+ if (mJSHandler == null || components == null
|| components.size() == 0) {
return;
}
@@ -1806,7 +1797,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
mWXBridge.execJSService(service);
} catch (Throwable e) {
WXLogUtils.e("[WXBridgeManager] invokeRegisterService:", e);
- commitJSFrameworkAlarmMonitor(IWXUserTrackAdapter.JS_FRAMEWORK,WXErrorCode.WX_ERR_JS_EXECUTE,"invokeRegisterService");
+ commitJSFrameworkAlarmMonitor(IWXUserTrackAdapter.JS_FRAMEWORK, WXErrorCode.WX_ERR_JS_EXECUTE, "invokeRegisterService");
}
}
@@ -1824,38 +1815,38 @@ public class WXBridgeManager implements Callback,BactchExecutor {
}
WXJSObject[] args = {new WXJSObject(WXJSObject.JSON,
- WXJsonUtils.fromObjectToJSONString(modules))};
+ WXJsonUtils.fromObjectToJSONString(modules))};
try {
mWXBridge.execJS("", null, METHOD_REGISTER_MODULES, args);
} catch (Throwable e) {
WXLogUtils.e("[WXBridgeManager] invokeRegisterModules:", e);
- commitJSFrameworkAlarmMonitor(IWXUserTrackAdapter.JS_FRAMEWORK,WXErrorCode.WX_ERR_JS_EXECUTE,"invokeRegisterModules");
+ commitJSFrameworkAlarmMonitor(IWXUserTrackAdapter.JS_FRAMEWORK, WXErrorCode.WX_ERR_JS_EXECUTE, "invokeRegisterModules");
}
}
private void invokeRegisterComponents(List<Map<String, Object>> components, List<Map<String, Object>> failReceiver) {
- if(components == failReceiver){
+ if (components == failReceiver) {
throw new RuntimeException("Fail receiver should not use source.");
}
if (!isJSFrameworkInit()) {
WXLogUtils.e("[WXBridgeManager] invokeRegisterComponents: framework.js uninitialized.");
- for (Map<String,Object> comp:components){
+ for (Map<String, Object> comp : components) {
failReceiver.add(comp);
}
return;
}
- if(components == null){
+ if (components == null) {
return;
}
WXJSObject[] args = {new WXJSObject(WXJSObject.JSON,
- WXJsonUtils.fromObjectToJSONString(components))};
+ WXJsonUtils.fromObjectToJSONString(components))};
try {
mWXBridge.execJS("", null, METHOD_REGISTER_COMPONENTS, args);
} catch (Throwable e) {
WXLogUtils.e("[WXBridgeManager] invokeRegisterComponents ", e);
- commitJSFrameworkAlarmMonitor(IWXUserTrackAdapter.JS_FRAMEWORK,WXErrorCode.WX_ERR_JS_EXECUTE,"invokeRegisterComponents");
+ commitJSFrameworkAlarmMonitor(IWXUserTrackAdapter.JS_FRAMEWORK, WXErrorCode.WX_ERR_JS_EXECUTE, "invokeRegisterComponents");
}
}
@@ -1864,7 +1855,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
mJSThread.quit();
}
mBridgeManager = null;
- if(mDestroyedInstanceId!=null){
+ if (mDestroyedInstanceId != null) {
mDestroyedInstanceId.clear();
}
@@ -1875,105 +1866,98 @@ public class WXBridgeManager implements Callback,BactchExecutor {
*/
public void reportJSException(String instanceId, String function,
String exception) {
- WXLogUtils.e("reportJSException >>>> instanceId:" + instanceId
- + ", exception function:" + function + ", exception:"
- + exception);
- WXSDKInstance instance = null;
- if (instanceId != null && (instance = WXSDKManager.getInstance().getSDKInstance(instanceId)) != null) {
- instance.onJSException(WXErrorCode.WX_ERR_JS_EXECUTE.getErrorCode(), function, exception);
-
- if (METHOD_CREATE_INSTANCE.equals(function)) {
- try {
- if (reInitCount > 1 && !instance.isNeedReLoad()) {
- // JSONObject domObject = JSON.parseObject(tasks);
- WXDomModule domModule = getDomModule(instanceId);
- Action action = Actions.getReloadPage(instanceId, true);
- domModule.postAction((DOMAction) action, true);
- instance.setNeedLoad(true);
- return;
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
+ WXLogUtils.e("reportJSException >>>> instanceId:" + instanceId
+ + ", exception function:" + function + ", exception:"
+ + exception);
+ WXSDKInstance instance = null;
+ if (instanceId != null && (instance = WXSDKManager.getInstance().getSDKInstance(instanceId)) != null) {
+ instance.onJSException(WXErrorCode.WX_ERR_JS_EXECUTE.getErrorCode(), function, exception);
+
+ if (METHOD_CREATE_INSTANCE.equals(function)) {
+ try {
+ if (reInitCount > 1 && !instance.isNeedReLoad()) {
+ // JSONObject domObject = JSON.parseObject(tasks);
+ WXDomModule domModule = getDomModule(instanceId);
+ Action action = Actions.getReloadPage(instanceId, true);
+ domModule.postAction((DOMAction) action, true);
+ instance.setNeedLoad(true);
+ return;
}
- String err = "function:" + function + "#exception:" + exception;
- commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_JS_EXECUTE, err);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
}
+ String err = "function:" + function + "#exception:" + exception;
+ commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_JS_EXECUTE, err);
+ }
- IWXJSExceptionAdapter adapter = WXSDKManager.getInstance().getIWXJSExceptionAdapter();
- if (adapter != null) {
- String bundleUrl;
- String exceptionId = instanceId;
+ IWXJSExceptionAdapter adapter = WXSDKManager.getInstance().getIWXJSExceptionAdapter();
+ if (adapter != null) {
+ String bundleUrl;
+ String exceptionId = instanceId;
- if (instanceId == "" || instanceId == null) {
- exceptionId = "instanceIdisNull";
- }
+ if (instanceId == "" || instanceId == null) {
+ exceptionId = "instanceIdisNull";
+ }
- if (instance == null) {
- if (("initFramework").equals(function)) {
- bundleUrl = "jsExceptionBeforeRenderInstanceNull";
- String exceptionExt = null;
- try {
- if (WXEnvironment.getApplication() != null) {
- final String fileName = WXEnvironment.getApplication().getApplicationContext().getCacheDir().getPath() + INITLOGFILE;
- try {
- File file = new File(fileName);
- if (file.exists()) {
- if (file.length() > 0) {
- StringBuilder result = new StringBuilder();
- try {
- InputStreamReader read = new InputStreamReader(new FileInputStream(file), "UTF-8");
- BufferedReader br = new BufferedReader(read);
- String s = null;
- while ((s = br.readLine()) != null) {
- result.append(s + "\n");
- }
- exceptionExt = result.toString();
- br.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- file.delete();
- }
- } catch (Throwable throwable) {
-
- }
+ if (instance == null) {
+ if (("initFramework").equals(function)) {
+ bundleUrl = "jsExceptionBeforeRenderInstanceNull";
+ String exceptionExt = null;
+ try {
+ if (WXEnvironment.getApplication() != null) {
+ final String fileName = WXEnvironment.getApplication().getApplicationContext().getCacheDir().getPath() + INITLOGFILE;
+ try {
+ File file = new File(fileName);
+ if (file.exists()) {
+ if (file.length() > 0) {
+ StringBuilder result = new StringBuilder();
+ try {
+ InputStreamReader read = new InputStreamReader(new FileInputStream(file), "UTF-8");
+ BufferedReader br = new BufferedReader(read);
+ String s = null;
+ while ((s = br.readLine()) != null) {
+ result.append(s + "\n");
}
- } catch (Throwable e) {
+ exceptionExt = result.toString();
+ br.close();
+ } catch (Exception e) {
e.printStackTrace();
+ }
}
- exception += "\n" + exceptionExt;
- WXLogUtils.e("reportJSException:" + exception);
+ file.delete();
+ }
+ } catch (Throwable throwable) {
- } else if (function == null) {
- bundleUrl = "jsExceptionInstanceAndFunctionNull";
- } else {
- bundleUrl = "jsExceptionInstanceNull" + function;
}
- } else {
- bundleUrl = instance.getBundleUrl();
+ }
+ } catch (Throwable e) {
+ e.printStackTrace();
}
+ exception += "\n" + exceptionExt;
+ WXLogUtils.e("reportJSException:" + exception);
- WXJSExceptionInfo jsException = new WXJSExceptionInfo(exceptionId, bundleUrl, WXErrorCode.WX_ERR_JS_EXECUTE.getErrorCode(), function, exception, null);
- adapter.onJSException(jsException);
- if (WXEnvironment.isApkDebugable()) {
- WXLogUtils.d(jsException.toString());
- }
+ } else if (function == null) {
+ bundleUrl = "jsExceptionInstanceAndFunctionNull";
+ } else {
+ bundleUrl = "jsExceptionInstanceNull" + function;
+ }
+ } else {
+ bundleUrl = instance.getBundleUrl();
}
- }
- public static class TimerInfo {
-
- public String callbackId;
- public long time;
- public String instanceId;
+ WXJSExceptionInfo jsException = new WXJSExceptionInfo(exceptionId, bundleUrl, WXErrorCode.WX_ERR_JS_EXECUTE.getErrorCode(), function, exception, null);
+ adapter.onJSException(jsException);
+ if (WXEnvironment.isApkDebugable()) {
+ WXLogUtils.d(jsException.toString());
+ }
+ }
}
private void registerDomModule() throws WXException {
/** Tell Javascript Framework what methods you have. This is Required.**/
- Map<String,Object> domMap=new HashMap<>();
- domMap.put(WXDomModule.WXDOM,WXDomModule.METHODS);
+ Map<String, Object> domMap = new HashMap<>();
+ domMap.put(WXDomModule.WXDOM, WXDomModule.METHODS);
registerModules(domMap);
}
@@ -1999,7 +1983,7 @@ public class WXBridgeManager implements Callback,BactchExecutor {
public void run() {
if (!isJSFrameworkInit())
return;
-
+
invokeExecJS("", null, METHOD_NOTIFY_SERIALIZE_CODE_CACHE, new WXJSObject[0]);
}
});
@@ -2013,4 +1997,11 @@ public class WXBridgeManager implements Callback,BactchExecutor {
msg.sendToTarget();
}
+ public static class TimerInfo {
+
+ public String callbackId;
+ public long time;
+ public String instanceId;
+ }
+
}