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/10 11:15:17 UTC

[1/3] incubator-weex git commit: update so for app install on sdcard

Repository: incubator-weex
Updated Branches:
  refs/heads/release-0.16 045e83863 -> 3cf15bc0d


 update so for app install on sdcard


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/dbc94f42
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/dbc94f42
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/dbc94f42

Branch: refs/heads/release-0.16
Commit: dbc94f421dfda8aeccea3791788a5079ff5bb923
Parents: 045e838
Author: yuhun-alibaba <to...@gmail.com>
Authored: Tue Oct 10 16:21:49 2017 +0800
Committer: yuhun-alibaba <to...@gmail.com>
Committed: Tue Oct 10 16:21:49 2017 +0800

----------------------------------------------------------------------
 android/sdk/libs/armeabi/libweexjsb.so | Bin 22620 -> 22620 bytes
 android/sdk/libs/armeabi/libweexjsc.so | Bin 338160 -> 342264 bytes
 android/sdk/libs/armeabi/libweexjss.so | Bin 6754016 -> 6754016 bytes
 3 files changed, 0 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/dbc94f42/android/sdk/libs/armeabi/libweexjsb.so
----------------------------------------------------------------------
diff --git a/android/sdk/libs/armeabi/libweexjsb.so b/android/sdk/libs/armeabi/libweexjsb.so
index 4b13b06..cd36273 100755
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/dbc94f42/android/sdk/libs/armeabi/libweexjsc.so
----------------------------------------------------------------------
diff --git a/android/sdk/libs/armeabi/libweexjsc.so b/android/sdk/libs/armeabi/libweexjsc.so
index 12f6df2..36eae45 100755
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/dbc94f42/android/sdk/libs/armeabi/libweexjss.so
----------------------------------------------------------------------
diff --git a/android/sdk/libs/armeabi/libweexjss.so b/android/sdk/libs/armeabi/libweexjss.so
index 0187882..544d41d 100755
Binary files a/android/sdk/libs/armeabi/libweexjss.so and b/android/sdk/libs/armeabi/libweexjss.so differ


[3/3] incubator-weex git commit: update x86 so

Posted by gu...@apache.org.
 update x86 so


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/3cf15bc0
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/3cf15bc0
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/3cf15bc0

Branch: refs/heads/release-0.16
Commit: 3cf15bc0d435d16d2647b66a29bf3088e90bf4db
Parents: 07bc5b0
Author: yuhun-alibaba <to...@gmail.com>
Authored: Tue Oct 10 18:17:43 2017 +0800
Committer: yuhun-alibaba <to...@gmail.com>
Committed: Tue Oct 10 18:17:43 2017 +0800

----------------------------------------------------------------------
 android/sdk/libs/x86/libweexjsc.so | Bin 12121924 -> 12126020 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/3cf15bc0/android/sdk/libs/x86/libweexjsc.so
----------------------------------------------------------------------
diff --git a/android/sdk/libs/x86/libweexjsc.so b/android/sdk/libs/x86/libweexjsc.so
index ab27aa9..3698a49 100755
Binary files a/android/sdk/libs/x86/libweexjsc.so and b/android/sdk/libs/x86/libweexjsc.so differ


[2/3] incubator-weex git commit: init framework and insert cacheDir for debug

Posted by gu...@apache.org.
 init framework and insert cacheDir for debug


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/07bc5b0d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/07bc5b0d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/07bc5b0d

Branch: refs/heads/release-0.16
Commit: 07bc5b0dc44762603f2465835a1b3530b76f238e
Parents: dbc94f4
Author: 御魂 <we...@alibaba-inc.com>
Authored: Mon Oct 9 16:40:02 2017 +0800
Committer: yuhun-alibaba <to...@gmail.com>
Committed: Tue Oct 10 17:23:17 2017 +0800

----------------------------------------------------------------------
 .../java/com/taobao/weex/bridge/WXBridge.java   | 17 ++++++
 .../com/taobao/weex/bridge/WXBridgeManager.java | 25 ++++++++-
 .../java/com/taobao/weex/common/IWXBridge.java  |  9 ++++
 .../taobao/weex/utils/WXSoInstallMgrSdk.java    | 56 ++++++++++++++++++++
 .../taobao/weex/bridge/WXWebsocketBridge.java   | 15 ++++++
 5 files changed, 121 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/07bc5b0d/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 9d88fc2..b95c7a6 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
@@ -36,6 +36,8 @@ class WXBridge implements IWXBridge {
 
   public static final String TAG = "WXBridge";
 
+  public static final boolean MULTIPROCESS = true;
+
   /**
    * Init JSFrameWork
    *
@@ -43,6 +45,13 @@ class WXBridge implements IWXBridge {
    */
   public native int initFramework(String framework, WXParams params);
 
+  /**
+   * Init JSFrameWork
+   *
+   * @param framework assets/main.js
+   */
+  public native int initFramework(String framework, WXParams params, String cacheDir, boolean onSdcard);
+
 
   /**
    * Execute JavaScript function
@@ -68,6 +77,14 @@ class WXBridge implements IWXBridge {
    */
   public native void takeHeapSnapshot(String filename);
 
+
+  public int initFrameworkEnv(String framework, WXParams params, String cacheDir, boolean onSdcard){
+    if (MULTIPROCESS) {
+      return initFramework(framework, params, cacheDir, onSdcard);
+    } else {
+      return  initFramework(framework, params);
+    }
+  }
   /**
    * JavaScript uses this methods to call Android code
    *

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/07bc5b0d/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 a949e3b..07f2381 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,6 +19,8 @@
 package com.taobao.weex.bridge;
 
 import android.content.Context;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
 import android.os.Handler;
 import android.os.Handler.Callback;
 import android.os.Looper;
@@ -1564,7 +1566,28 @@ public class WXBridgeManager implements Callback,BactchExecutor {
         }
 
         long start = System.currentTimeMillis();
-        if(mWXBridge.initFramework(framework, assembleDefaultOptions())==INIT_FRAMEWORK_OK){
+        String crashFile="";
+        boolean installOnSdcard = false;
+        try {
+          crashFile = WXEnvironment.getApplication().getApplicationContext().getCacheDir().getPath();
+        } catch (Exception e) {
+          e.printStackTrace();
+        }
+
+        try {
+          PackageManager pm = WXEnvironment.getApplication().getApplicationContext().getPackageManager();
+          String pkgName = WXEnvironment.getApplication().getPackageName();
+          ApplicationInfo appInfo = pm.getApplicationInfo(pkgName, 0);
+          if ((appInfo.flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) != 0) {
+            // App on sdcard
+            installOnSdcard = true;
+          }
+        } catch (Exception e) {
+          e.printStackTrace();
+        }
+
+        // extends initFramework
+        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;

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/07bc5b0d/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 9d4885c..9e83dde 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,6 +38,15 @@ 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 onSdcard);
+
   /**
    * execute javascript function
    */

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/07bc5b0d/android/sdk/src/main/java/com/taobao/weex/utils/WXSoInstallMgrSdk.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/utils/WXSoInstallMgrSdk.java b/android/sdk/src/main/java/com/taobao/weex/utils/WXSoInstallMgrSdk.java
index a7fba8a..e402ee7 100644
--- a/android/sdk/src/main/java/com/taobao/weex/utils/WXSoInstallMgrSdk.java
+++ b/android/sdk/src/main/java/com/taobao/weex/utils/WXSoInstallMgrSdk.java
@@ -32,6 +32,7 @@ import com.taobao.weex.common.WXErrorCode;
 import com.taobao.weex.common.WXPerformance;
 
 import java.io.File;
+import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
@@ -68,6 +69,7 @@ public class WXSoInstallMgrSdk {
   private final static String ARMEABI = "armeabi"; //default
   private final static String X86 = "x86";
   private final static String MIPS = "mips";
+  private final static String STARTUPSO = "/libweexjsb.so";
 
   private final static int ARMEABI_Size = 3583820;
   private final static int X86_Size = 4340864;
@@ -111,6 +113,9 @@ public class WXSoInstallMgrSdk {
       return false;
     }
 
+    // copy startup so
+    copyStartUpSo();
+
     boolean InitSuc = false;
     if (checkSoIsValid(libName, BuildConfig.ARMEABI_Size) ||checkSoIsValid(libName, BuildConfig.X86_Size)) {
 
@@ -170,6 +175,57 @@ public class WXSoInstallMgrSdk {
     return InitSuc;
   }
 
+  /**
+   * copyStartUpSo
+   */
+  public static void copyStartUpSo() {
+    try {
+      boolean installOnSdcard = true;
+      String pkgName = WXEnvironment.getApplication().getPackageName();
+      // cp weexjsb any way
+//      try {
+//        PackageManager pm = WXEnvironment.getApplication().getApplicationContext().getPackageManager();
+//        ApplicationInfo appInfo = pm.getApplicationInfo(pkgName, 0);
+//        if ((appInfo.flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) != 0) {
+//          // App on sdcard
+//          installOnSdcard = true;
+//        }
+//      } catch (Throwable e) {
+//      }
+      if (installOnSdcard) {
+
+        String cacheFile = WXEnvironment.getApplication().getApplicationContext().getCacheDir().getPath();
+        File newfile = new File(cacheFile + STARTUPSO);
+        if (newfile.exists()) {
+          return;
+        }
+
+        String path = "/data/data/" + pkgName + "/lib";;
+        if (cacheFile != null && cacheFile.indexOf("/cache") > 0) {
+          path = cacheFile.replace("/cache", "/lib");
+        }
+
+        String soName = path + STARTUPSO;
+        File oldfile = new File(soName);
+        if (oldfile.exists()) {
+          //获得原文件流
+          FileInputStream inputStream = new FileInputStream(oldfile);
+          byte[] data = new byte[1024];
+          //输出流
+          FileOutputStream outputStream =new FileOutputStream(newfile);
+          //开始处理流
+          while (inputStream.read(data) != -1) {
+            outputStream.write(data);
+          }
+          inputStream.close();
+          outputStream.close();
+        }
+      }
+    } catch (Throwable e) {
+      e.printStackTrace();
+    }
+  }
+
   private static String _getFieldReflectively(Build build, String fieldName) {
     try {
       final Field field = Build.class.getField(fieldName);

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/07bc5b0d/android/weex_debug/src/main/java/com/taobao/weex/bridge/WXWebsocketBridge.java
----------------------------------------------------------------------
diff --git a/android/weex_debug/src/main/java/com/taobao/weex/bridge/WXWebsocketBridge.java b/android/weex_debug/src/main/java/com/taobao/weex/bridge/WXWebsocketBridge.java
index b686f7c..5576de3 100644
--- a/android/weex_debug/src/main/java/com/taobao/weex/bridge/WXWebsocketBridge.java
+++ b/android/weex_debug/src/main/java/com/taobao/weex/bridge/WXWebsocketBridge.java
@@ -204,6 +204,21 @@ public class WXWebsocketBridge implements IWXBridge,WXWebSocketManager.JSDebugge
     }
 
     @Override
+    public int initFrameworkEnv(String scriptsFramework,WXParams params, String cacheDir, boolean onSdcard) {
+        if (!mInit) {
+            return -1;
+        }
+
+        Map<String, Object> map = new HashMap<>();
+        map.put("method", "evalFramework");
+        ArrayList<String> args = new ArrayList<>();
+        args.add(scriptsFramework);
+        map.put("arguments", args);
+        WXWebSocketManager.getInstance().sendMessage(JSON.toJSONString(map));
+        return 0;
+    }
+
+    @Override
     public void takeHeapSnapshot(String filename) {}
 
     @Override