Repository: incubator-weex Updated Branches: refs/heads/master a90abd6c1 -> cb452bf5b
[WEEX-199][android] Add Global Switch Control Wson on or off Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/cb452bf5 Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/cb452bf5 Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/cb452bf5 Branch: refs/heads/master Commit: cb452bf5bac1e22f2ca2be9043d2b6220ea25bb3 Parents: a90abd6 Author: jianbai.gbj <[email protected]> Authored: Mon Jan 22 14:25:29 2018 +0800 Committer: jianbai.gbj <[email protected]> Committed: Mon Jan 22 16:34:09 2018 +0800 ---------------------------------------------------------------------- .../java/com/alibaba/weex/WXApplication.java | 3 ++ .../java/com/alibaba/weex/WXPageActivity.java | 3 ++ android/sdk/libs/armeabi/libweexjsb.so | Bin 22620 -> 22620 bytes android/sdk/libs/armeabi/libweexjsc.so | Bin 337420 -> 337468 bytes android/sdk/libs/armeabi/libweexjss.so | Bin 6774612 -> 6774704 bytes .../java/com/taobao/weex/WXEnvironment.java | 2 +- .../java/com/taobao/weex/bridge/WXBridge.java | 6 +++ .../com/taobao/weex/bridge/WXBridgeManager.java | 47 ++++++++++++++++++- .../java/com/taobao/weex/utils/WXJsonUtils.java | 7 ++- 9 files changed, 64 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/cb452bf5/android/playground/app/src/main/java/com/alibaba/weex/WXApplication.java ---------------------------------------------------------------------- diff --git a/android/playground/app/src/main/java/com/alibaba/weex/WXApplication.java b/android/playground/app/src/main/java/com/alibaba/weex/WXApplication.java index adfc9d4..41ca4cb 100644 --- a/android/playground/app/src/main/java/com/alibaba/weex/WXApplication.java +++ b/android/playground/app/src/main/java/com/alibaba/weex/WXApplication.java @@ -43,6 +43,7 @@ import com.taobao.weex.InitConfig; import com.taobao.weex.WXEnvironment; import com.taobao.weex.WXSDKEngine; import com.taobao.weex.WXSDKManager; +import com.taobao.weex.bridge.WXBridgeManager; import com.taobao.weex.common.WXException; public class WXApplication extends Application { @@ -61,6 +62,8 @@ public class WXApplication extends Application { * Fresco.initialize(this,config); **/ // initDebugEnvironment(true, false, "DEBUG_SERVER_HOST"); + WXBridgeManager.updateGlobalConfig("wson_off"); + WXEnvironment.setApkDebugable(true); WXSDKEngine.addCustomOptions("appName", "WXSample"); WXSDKEngine.addCustomOptions("appGroup", "WXApp"); WXSDKEngine.initialize(this, http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/cb452bf5/android/playground/app/src/main/java/com/alibaba/weex/WXPageActivity.java ---------------------------------------------------------------------- diff --git a/android/playground/app/src/main/java/com/alibaba/weex/WXPageActivity.java b/android/playground/app/src/main/java/com/alibaba/weex/WXPageActivity.java index 87765f3..0c18d2a 100644 --- a/android/playground/app/src/main/java/com/alibaba/weex/WXPageActivity.java +++ b/android/playground/app/src/main/java/com/alibaba/weex/WXPageActivity.java @@ -55,9 +55,11 @@ import com.alibaba.weex.https.WXHttpTask; import com.alibaba.weex.https.WXRequestListener; import com.taobao.weex.IWXRenderListener; import com.taobao.weex.RenderContainer; +import com.taobao.weex.WXEnvironment; import com.taobao.weex.WXSDKEngine; import com.taobao.weex.WXSDKInstance; import com.taobao.weex.appfram.navigator.IActivityNavBarSetter; +import com.taobao.weex.bridge.WXBridgeManager; import com.taobao.weex.common.IWXDebugProxy; import com.taobao.weex.common.WXRenderStrategy; import com.taobao.weex.dom.ImmutableDomObject; @@ -65,6 +67,7 @@ import com.taobao.weex.ui.component.NestedContainer; import com.taobao.weex.ui.component.WXComponent; import com.taobao.weex.ui.component.WXVContainer; import com.taobao.weex.utils.WXFileUtils; +import com.taobao.weex.utils.WXJsonUtils; import com.taobao.weex.utils.WXLogUtils; import java.io.File; http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/cb452bf5/android/sdk/libs/armeabi/libweexjsb.so ---------------------------------------------------------------------- diff --git a/android/sdk/libs/armeabi/libweexjsb.so b/android/sdk/libs/armeabi/libweexjsb.so index cb739b4..f0287cf 100644 Binary files a/android/sdk/libs/armeabi/libweexjsb.so and b/android/sdk/libs/armeabi/libweexjsb.so differ http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/cb452bf5/android/sdk/libs/armeabi/libweexjsc.so ---------------------------------------------------------------------- diff --git a/android/sdk/libs/armeabi/libweexjsc.so b/android/sdk/libs/armeabi/libweexjsc.so index 748ef88..28ee2a3 100644 Binary files a/android/sdk/libs/armeabi/libweexjsc.so and b/android/sdk/libs/armeabi/libweexjsc.so differ http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/cb452bf5/android/sdk/libs/armeabi/libweexjss.so ---------------------------------------------------------------------- diff --git a/android/sdk/libs/armeabi/libweexjss.so b/android/sdk/libs/armeabi/libweexjss.so index ce5d928..dc93f8d 100644 Binary files a/android/sdk/libs/armeabi/libweexjss.so and b/android/sdk/libs/armeabi/libweexjss.so differ http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/cb452bf5/android/sdk/src/main/java/com/taobao/weex/WXEnvironment.java ---------------------------------------------------------------------- diff --git a/android/sdk/src/main/java/com/taobao/weex/WXEnvironment.java b/android/sdk/src/main/java/com/taobao/weex/WXEnvironment.java index 1f5b31c..e19570f 100644 --- a/android/sdk/src/main/java/com/taobao/weex/WXEnvironment.java +++ b/android/sdk/src/main/java/com/taobao/weex/WXEnvironment.java @@ -85,7 +85,7 @@ public class WXEnvironment { public static long sSDKInitTime =0; public static LogLevel sLogLevel = LogLevel.DEBUG; - private static boolean isApkDebug = false; + private static boolean isApkDebug = true; public static boolean isPerf = false; private static String sGlobalFontFamily; http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/cb452bf5/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridge.java ---------------------------------------------------------------------- diff --git a/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridge.java b/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridge.java index 8e328fc..ef30168 100644 --- a/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridge.java +++ b/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridge.java @@ -92,6 +92,12 @@ class WXBridge implements IWXBridge { public native void takeHeapSnapshot(String filename); + /** + * update global config, + * @param config params + * */ + public native void updateGlobalConfig(String config); + public int initFrameworkEnv(String framework, WXParams params, String cacheDir, boolean pieSupport){ if (MULTIPROCESS) { return initFrameworkMultiProcess(framework, params, cacheDir, pieSupport); http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/cb452bf5/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 d86dfbc..349b5f8 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 @@ -147,6 +147,12 @@ public class WXBridgeManager implements Callback, BactchExecutor { * Whether JS Framework(main.js) has been initialized. */ private volatile static boolean mInit = false; + + + + private static String globalConfig = "none"; + private static String GLOBAL_CONFIG_KEY = "global_switch_config"; + /** * package **/ @@ -1667,7 +1673,7 @@ public class WXBridgeManager implements Callback, BactchExecutor { builder.append("["); for(WXJSObject object : args){ if(object.type == WXJSObject.WSON){ - object = new WXJSObject(WXJSObject.WSON, Wson.parse((byte[]) object.data)); + object = new WXJSObject(WXJSObject.WSON, WXJsonUtils.parseWson(((byte[]) object.data))); } builder.append(WXJsonUtils.fromObjectToJSONString(object)); builder.append(","); @@ -2137,6 +2143,43 @@ public class WXBridgeManager implements Callback, BactchExecutor { } + /** + * update js server global config, current support turn wson off + * by pass wson_off + * */ + public static void updateGlobalConfig(String config){ + if(TextUtils.isEmpty(config)){ + config = "none"; + } + if(!TextUtils.equals(config, globalConfig)){ + globalConfig = config; + WXEnvironment.getCustomOptions().put(GLOBAL_CONFIG_KEY, globalConfig); + Runnable runnable = new Runnable() { + @Override + public void run() { + if(mBridgeManager != null){ + if(mBridgeManager.isJSFrameworkInit()){ + if(mBridgeManager.mWXBridge instanceof WXBridge) { + final WXBridge bridge = (WXBridge) mBridgeManager.mWXBridge; + bridge.updateGlobalConfig(globalConfig); + } + } + } + if(globalConfig.contains("wson_off")){ + WXJsonUtils.USE_WSON = false; + }else{ + WXJsonUtils.USE_WSON = true; + } + } + }; + if(mBridgeManager != null && mBridgeManager.isJSFrameworkInit()){ + mBridgeManager.post(runnable); + }else{ + runnable.run(); + } + } + } + public @Nullable Looper getJSLooper() { @@ -2174,4 +2217,6 @@ public class WXBridgeManager implements Callback, BactchExecutor { public String instanceId; } + + } http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/cb452bf5/android/sdk/src/main/java/com/taobao/weex/utils/WXJsonUtils.java ---------------------------------------------------------------------- diff --git a/android/sdk/src/main/java/com/taobao/weex/utils/WXJsonUtils.java b/android/sdk/src/main/java/com/taobao/weex/utils/WXJsonUtils.java index a52323f..7856a05 100644 --- a/android/sdk/src/main/java/com/taobao/weex/utils/WXJsonUtils.java +++ b/android/sdk/src/main/java/com/taobao/weex/utils/WXJsonUtils.java @@ -122,6 +122,9 @@ public class WXJsonUtils { return new WXJSObject(WXJSObject.JSON, WXJsonUtils.fromObjectToJSONString(tasks)); } } - - private static final boolean USE_WSON = true; + /** + * config whether use json or wson, you should update this value by updateGlobalConfig(String config) + * in WXBridgeManager class method + * */ + public static boolean USE_WSON = true; }
