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/23 08:10:40 UTC
[12/18] incubator-weex git commit: Revert: * [android] modify
border-android.png
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/bdcc5356/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 3f0b6e3..a949e3b 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
@@ -19,9 +19,6 @@
package com.taobao.weex.bridge;
import android.content.Context;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageManager;
-import android.os.Build;
import android.os.Handler;
import android.os.Handler.Callback;
import android.os.Looper;
@@ -85,26 +82,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";
@@ -130,28 +127,33 @@ 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 final int CRASHREINIT = 50;
- static volatile WXBridgeManager mBridgeManager;
+
private static long LOW_MEM_VALUE = 120;
+
+ static volatile WXBridgeManager mBridgeManager;
+
+ private static final int CRASHREINIT = 50;
private static int reInitCount = 1;
+
private static String crashUrl = null;
private static long lastCrashTime = 0;
- /**
- * package
- **/
- Handler mJSHandler;
+ public static final String INITLOGFILE = "/jsserver_start.log";
+
+
/**
* 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;
@@ -159,13 +161,22 @@ public class WXBridgeManager implements Callback, BactchExecutor {
/**
* Whether JS Framework(main.js) has been initialized.
*/
- private boolean mInit = false;
+ private boolean mInit =false;
+
+ private boolean isJSFrameworkInit(){
+ return mInit;
+ }
+
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() {
@@ -185,10 +196,6 @@ 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;
@@ -205,7 +212,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();
}
@@ -233,36 +240,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) {
- return null;
- }
- if (wxsdkInstance.isNeedValidate()
- && WXSDKManager.getInstance().getValidateProcessor() != null) {
- WXValidateProcessor.WXModuleValidateResult validateResult = WXSDKManager
- .getInstance().getValidateProcessor()
- .onModuleValidate(wxsdkInstance, moduleStr, methodStr, args, options);
- if (validateResult == 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 (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 (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;
+ }
}
- }
- return WXModuleManager.callModuleMethod(instanceId, moduleStr, methodStr, args);
+ return WXModuleManager.callModuleMethod(instanceId, moduleStr, methodStr, args);
}
/**
@@ -275,7 +282,6 @@ public class WXBridgeManager implements Callback, BactchExecutor {
/**
* Set current Instance
- *
* @param instanceId {@link WXSDKInstance#mInstanceId}
*/
public synchronized void setStackTopInstance(final String instanceId) {
@@ -289,12 +295,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;
}
@@ -327,15 +333,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;
@@ -343,97 +349,98 @@ 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());
- }
-
- 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 callNativeModule(String instanceId, String module, String method, JSONArray arguments, JSONObject options) {
+ 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;
}
+ public Object callNativeModule(String instanceId, String module,String method, JSONArray arguments, JSONObject options) {
- 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());
- }
+ 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 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);
+ return null;
}
- try {
- WXDomModule dom = getDomModule(instanceId);
- dom.invokeMethod(componentRef, method, arguments);
+ 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 {
- } 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);
+
+ } catch (Exception e) {
+ WXLogUtils.e("[WXBridgeManager] callNative exception: ", e);
+ commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_INVOKE_NATIVE, "[WXBridgeManager] callNativeModule exception " + e.getCause());
+ }
+ return null;
}
- 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)) {
- WXLogUtils.e("[WXBridgeManager] callNative: call Native tasks is null");
- commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_INVOKE_NATIVE, "[WXBridgeManager] callNative: call Native tasks is null");
+ 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");
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;
}
@@ -443,7 +450,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);
}
@@ -455,27 +462,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());
}
}
@@ -491,21 +498,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;
}
@@ -518,7 +525,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;
@@ -527,8 +534,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)) {
@@ -544,12 +551,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;
}
@@ -557,11 +564,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)) {
@@ -575,13 +582,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;
}
@@ -589,11 +596,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)) {
@@ -609,12 +616,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;
}
@@ -622,11 +629,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)) {
@@ -641,20 +648,22 @@ public class WXBridgeManager implements Callback, BactchExecutor {
// callUpdateAttrs
public int callUpdateAttrs(String instanceId, String ref, String task, String callback) {
if (TextUtils.isEmpty(task)) {
- WXLogUtils.e("[WXBridgeManager] callUpdateAttrs: call UpdateAttrs tasks is null");
- commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_DOM_UPDATEATTRS, "[WXBridgeManager] callUpdateAttrs: call UpdateAttrs tasks is null");
+ 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");
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;
}
@@ -667,7 +676,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;
@@ -677,7 +686,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)) {
@@ -692,20 +701,22 @@ public class WXBridgeManager implements Callback, BactchExecutor {
// callUpdateStyle
public int callUpdateStyle(String instanceId, String ref, String task, String callback) {
if (TextUtils.isEmpty(task)) {
- WXLogUtils.e("[WXBridgeManager] callUpdateStyle: call UpdateStyle tasks is null");
- commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_DOM_UPDATESTYLE, "[WXBridgeManager] callUpdateStyle: call UpdateStyle tasks is null");
+ 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");
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;
}
@@ -718,7 +729,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;
@@ -728,7 +739,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)) {
@@ -744,12 +755,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;
}
@@ -757,7 +768,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);
@@ -765,7 +776,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)) {
@@ -781,14 +792,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;
}
@@ -796,11 +807,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)) {
@@ -814,14 +825,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;
}
@@ -829,7 +840,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);
@@ -837,7 +848,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)) {
@@ -852,21 +863,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);
@@ -874,7 +885,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)) {
@@ -885,16 +896,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;
}
@@ -909,7 +920,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) {
@@ -929,57 +940,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 {
- if (WXEnvironment.getApplication() != null) {
- crashFile = WXEnvironment.getApplication().getApplicationContext().getCacheDir().getPath() + crashFile;
- // Log.e("jsengine", "callReportCrashReloadPage crashFile:" + crashFile);
+ String url = null;
+ WXSDKInstance instance = WXSDKManager.getInstance().getSDKInstance(instanceId);
+ if (instance != null) {
+ url = instance.getBundleUrl();
}
- } catch (Throwable e) {
- e.printStackTrace();
- }
- callReportCrash(crashFile, instanceId, url);
- if (reInitCount > CRASHREINIT) {
- return IWXBridge.INSTANCE_RENDERING_ERROR;
- }
- reInitCount++;
- // reinit frame work
- mInit = false;
- initScriptsFramework("");
+ try {
+ if (WXEnvironment.getApplication() != null) {
+ crashFile = WXEnvironment.getApplication().getApplicationContext().getCacheDir().getPath() + crashFile;
+ // Log.e("jsengine", "callReportCrashReloadPage crashFile:" + crashFile);
+ }
+ } catch (Throwable e) {
+ e.printStackTrace();
+ }
+ 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;
+ if (mDestroyedInstanceId != null && mDestroyedInstanceId.contains(instanceId)) {
+ return IWXBridge.DESTROY_INSTANCE;
+ }
+ } catch (Exception e) {
+ WXLogUtils.e("[WXBridgeManager] callReportCrashReloadPage exception: ", e);
}
- } catch (Exception e) {
- WXLogUtils.e("[WXBridgeManager] callReportCrashReloadPage exception: ", e);
- }
- try {
+ try {
- 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 (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);
+ }
- } 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;
+ } 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;
@@ -989,46 +1000,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() {
- try {
- File file = new File(origin_filename);
- if (file.exists()) {
- if (file.length() > 0) {
- StringBuilder result = new StringBuilder();
+ // 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 {
- BufferedReader br = new BufferedReader(new FileReader(origin_filename));
- String s = null;
- // boolean foundStart = false;
- while ((s = br.readLine()) != null) {
- if ("".equals(s)) {
- continue;
+ 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);
}
- // if (("r0:").equals(s)) {
- // break;
- // }
- result.append(s + "\n");
+ file.delete();
}
- 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");
- }
- file.delete();
- }
// Log.e("reportServerCrash", "WXBridge reportServerCrash crashFile:" + origin_filename);
// String filename = CRASHPATH;
// File oldfile = new File(origin_filename);
@@ -1055,17 +1069,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);
}
@@ -1080,12 +1094,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<>();
@@ -1117,7 +1131,6 @@ 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) {
@@ -1130,13 +1143,12 @@ 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
@@ -1145,16 +1157,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);
}
/**
@@ -1164,12 +1176,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);
@@ -1182,12 +1194,11 @@ 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);
}
/**
@@ -1195,31 +1206,29 @@ 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) {
@@ -1228,7 +1237,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);
}
@@ -1253,32 +1262,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);
}
}
@@ -1298,11 +1307,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());
}
@@ -1324,8 +1333,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);
}
@@ -1339,15 +1348,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());
+ // }
}
}
@@ -1357,27 +1366,15 @@ 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;
}
-
- if (!isJSFrameworkInit() && reInitCount == 1) {
- instance.onRenderError(WXRenderErrorCode.WX_CREATE_INSTANCE_ERROR, "createInstance fail!");
- post(new Runnable() {
- @Override
- public void run() {
- initFramework("");
- }
- }, instanceId);
- return;
- }
-
WXModuleManager.createDomModule(instance);
post(new Runnable() {
@Override
@@ -1389,7 +1386,7 @@ public class WXBridgeManager implements Callback, BactchExecutor {
@Override
public void run() {
- instance.createInstanceFinished(totalTime);
+ instance.createInstanceFinished(totalTime);
}
}, 0);
}
@@ -1406,37 +1403,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);
}
}
@@ -1447,11 +1444,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
@@ -1475,12 +1472,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);
}
}
@@ -1501,7 +1498,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);
@@ -1525,14 +1522,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);
}
@@ -1543,16 +1540,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());
}
@@ -1567,23 +1564,7 @@ public class WXBridgeManager implements Callback, BactchExecutor {
}
long start = System.currentTimeMillis();
- String crashFile = "";
- try {
- crashFile = WXEnvironment.getApplication().getApplicationContext().getCacheDir().getPath();
- } catch (Exception e) {
- e.printStackTrace();
- }
- boolean pieSupport = true;
- try {
- if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {
- pieSupport = false;
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- WXLogUtils.d("[WXBridgeManager] initFrameworkEnv crashFile:" + crashFile + " pieSupport:" + pieSupport);
- // extends initFramework
- if (mWXBridge.initFrameworkEnv(framework, assembleDefaultOptions(), crashFile, pieSupport) == INIT_FRAMEWORK_OK) {
+ if(mWXBridge.initFramework(framework, assembleDefaultOptions())==INIT_FRAMEWORK_OK){
WXEnvironment.sJSLibInitTime = System.currentTimeMillis() - start;
WXLogUtils.renderPerformanceLog("initFramework", WXEnvironment.sJSLibInitTime);
WXEnvironment.sSDKInitTime = System.currentTimeMillis() - WXEnvironment.sSDKInitStart;
@@ -1602,25 +1583,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);
}
}
@@ -1632,7 +1613,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;
}
@@ -1653,16 +1634,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
@@ -1734,16 +1715,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() {
@@ -1758,7 +1739,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;
}
@@ -1789,7 +1770,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");
}
}
@@ -1807,38 +1788,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");
}
}
@@ -1847,7 +1828,7 @@ public class WXBridgeManager implements Callback, BactchExecutor {
mJSThread.quit();
}
mBridgeManager = null;
- if (mDestroyedInstanceId != null) {
+ if(mDestroyedInstanceId!=null){
mDestroyedInstanceId.clear();
}
@@ -1858,98 +1839,105 @@ 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;
+ 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();
+ }
}
- } catch (Exception e) {
- e.printStackTrace();
- }
+ String err = "function:" + function + "#exception:" + exception;
+ commitJSBridgeAlarmMonitor(instanceId, WXErrorCode.WX_ERR_JS_EXECUTE, err);
}
- 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");
+ 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) {
+
+ }
}
- exceptionExt = result.toString();
- br.close();
- } catch (Exception e) {
+ } catch (Throwable e) {
e.printStackTrace();
- }
}
- file.delete();
- }
- } catch (Throwable throwable) {
+ exception += "\n" + exceptionExt;
+ WXLogUtils.e("reportJSException:" + exception);
+ } else if (function == null) {
+ bundleUrl = "jsExceptionInstanceAndFunctionNull";
+ } else {
+ bundleUrl = "jsExceptionInstanceNull" + function;
}
- }
- } catch (Throwable e) {
- e.printStackTrace();
+ } else {
+ bundleUrl = instance.getBundleUrl();
}
- exception += "\n" + exceptionExt;
- WXLogUtils.e("reportJSException:" + exception);
- } else if (function == null) {
- bundleUrl = "jsExceptionInstanceAndFunctionNull";
- } else {
- bundleUrl = "jsExceptionInstanceNull" + function;
- }
- } else {
- bundleUrl = instance.getBundleUrl();
+ 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());
+ }
}
+ }
- 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());
- }
- }
+ public static class TimerInfo {
+
+ public String callbackId;
+ public long time;
+ public String instanceId;
}
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);
}
@@ -1975,7 +1963,7 @@ public class WXBridgeManager implements Callback, BactchExecutor {
public void run() {
if (!isJSFrameworkInit())
return;
-
+
invokeExecJS("", null, METHOD_NOTIFY_SERIALIZE_CODE_CACHE, new WXJSObject[0]);
}
});
@@ -1989,11 +1977,4 @@ public class WXBridgeManager implements Callback, BactchExecutor {
msg.sendToTarget();
}
- public static class TimerInfo {
-
- public String callbackId;
- public long time;
- public String instanceId;
- }
-
}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/bdcc5356/android/sdk/src/main/java/com/taobao/weex/common/Constants.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/common/Constants.java b/android/sdk/src/main/java/com/taobao/weex/common/Constants.java
index 842229e..94ac1e0 100644
--- a/android/sdk/src/main/java/com/taobao/weex/common/Constants.java
+++ b/android/sdk/src/main/java/com/taobao/weex/common/Constants.java
@@ -183,9 +183,6 @@ public class Constants {
String ARIA_LABEL = "ariaLabel";
String ARIA_HIDDEN = "ariaHidden";
- String STICKY_OFFSET = "stickyOffset";
- String HAS_FIXED_SIZE = "hasFixedSize";
- String KEEP_POSITION_LAYOUT_DELAY = "keepPositionLayoutDelay";
interface Recycler{
String LIST_DATA = "listData";
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/bdcc5356/android/sdk/src/main/java/com/taobao/weex/common/IWXBridge.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/common/IWXBridge.java b/android/sdk/src/main/java/com/taobao/weex/common/IWXBridge.java
index 92b1585..9d4885c 100644
--- a/android/sdk/src/main/java/com/taobao/weex/common/IWXBridge.java
+++ b/android/sdk/src/main/java/com/taobao/weex/common/IWXBridge.java
@@ -38,15 +38,6 @@ public interface IWXBridge extends IWXObject {
*/
int initFramework(String framework, WXParams params);
-
- /**
- * init Weex
- *
- * @param framework assets/main.js
- * @return
- */
- int initFrameworkEnv(String framework, WXParams params, String cacheDir, boolean pieSupport);
-
/**
* execute javascript function
*/