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/18 04:17:25 UTC
[47/50] [abbrv] incubator-weex git commit: * [android] fix on android
4.0.* platform cannot startup multiprocess since on android 4.1 use
ANDROID_PIE to ensure safety on android api 15 or below use libweexjst.so to
startup new process
* [android] fix on android 4.0.* platform cannot startup multiprocess
since on android 4.1 use ANDROID_PIE to ensure safety
on android api 15 or below use libweexjst.so to startup new process
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/7fcfd9fd
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/7fcfd9fd
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/7fcfd9fd
Branch: refs/heads/master
Commit: 7fcfd9fdb5f07ec9510963d5426249fc6d06b769
Parents: 0ea259d
Author: yuhun-alibaba <to...@gmail.com>
Authored: Tue Oct 17 19:48:54 2017 +0800
Committer: gurisxie <27...@qq.com>
Committed: Tue Oct 17 22:09:45 2017 +0800
----------------------------------------------------------------------
android/sdk/libs/armeabi/libweexjsb.so | Bin 22556 -> 22620 bytes
android/sdk/libs/armeabi/libweexjsc.so | Bin 335100 -> 335324 bytes
android/sdk/libs/armeabi/libweexjss.so | Bin 6754016 -> 6754016 bytes
android/sdk/libs/armeabi/libweexjst.so | Bin 0 -> 22552 bytes
.../java/com/taobao/weex/bridge/WXBridge.java | 6 ++---
.../com/taobao/weex/bridge/WXBridgeManager.java | 16 +++++---------
.../java/com/taobao/weex/common/IWXBridge.java | 2 +-
.../taobao/weex/utils/WXSoInstallMgrSdk.java | 22 ++++++++++++++++---
.../taobao/weex/bridge/WXWebsocketBridge.java | 2 +-
9 files changed, 30 insertions(+), 18 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/7fcfd9fd/android/sdk/libs/armeabi/libweexjsb.so
----------------------------------------------------------------------
diff --git a/android/sdk/libs/armeabi/libweexjsb.so b/android/sdk/libs/armeabi/libweexjsb.so
index c46e857..cb739b4 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/7fcfd9fd/android/sdk/libs/armeabi/libweexjsc.so
----------------------------------------------------------------------
diff --git a/android/sdk/libs/armeabi/libweexjsc.so b/android/sdk/libs/armeabi/libweexjsc.so
index ec98d07..7a9d85b 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/7fcfd9fd/android/sdk/libs/armeabi/libweexjss.so
----------------------------------------------------------------------
diff --git a/android/sdk/libs/armeabi/libweexjss.so b/android/sdk/libs/armeabi/libweexjss.so
index 5a8809c..3efefa5 100755
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/7fcfd9fd/android/sdk/libs/armeabi/libweexjst.so
----------------------------------------------------------------------
diff --git a/android/sdk/libs/armeabi/libweexjst.so b/android/sdk/libs/armeabi/libweexjst.so
new file mode 100755
index 0000000..099256c
Binary files /dev/null and b/android/sdk/libs/armeabi/libweexjst.so differ
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/7fcfd9fd/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 b95c7a6..9586f2a 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
@@ -50,7 +50,7 @@ class WXBridge implements IWXBridge {
*
* @param framework assets/main.js
*/
- public native int initFramework(String framework, WXParams params, String cacheDir, boolean onSdcard);
+ public native int initFramework(String framework, WXParams params, String cacheDir, boolean pieSupport);
/**
@@ -78,9 +78,9 @@ class WXBridge implements IWXBridge {
public native void takeHeapSnapshot(String filename);
- public int initFrameworkEnv(String framework, WXParams params, String cacheDir, boolean onSdcard){
+ public int initFrameworkEnv(String framework, WXParams params, String cacheDir, boolean pieSupport){
if (MULTIPROCESS) {
- return initFramework(framework, params, cacheDir, onSdcard);
+ return initFramework(framework, params, cacheDir, pieSupport);
} else {
return initFramework(framework, params);
}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/7fcfd9fd/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 c44d7af..96f47d9 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
@@ -21,6 +21,7 @@ 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;
@@ -1571,27 +1572,22 @@ public class WXBridgeManager implements Callback, BactchExecutor {
long start = System.currentTimeMillis();
String crashFile = "";
- boolean installOnSdcard = false;
try {
crashFile = WXEnvironment.getApplication().getApplicationContext().getCacheDir().getPath();
} catch (Exception e) {
e.printStackTrace();
}
-
+ boolean pieSupport = true;
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;
+ 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, installOnSdcard) == INIT_FRAMEWORK_OK) {
+ if (mWXBridge.initFrameworkEnv(framework, assembleDefaultOptions(), crashFile, pieSupport) == 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/7fcfd9fd/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 9e83dde..92b1585 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
@@ -45,7 +45,7 @@ public interface IWXBridge extends IWXObject {
* @param framework assets/main.js
* @return
*/
- int initFrameworkEnv(String framework, WXParams params, String cacheDir, boolean onSdcard);
+ int initFrameworkEnv(String framework, WXParams params, String cacheDir, boolean pieSupport);
/**
* execute javascript function
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/7fcfd9fd/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 e402ee7..d202954 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
@@ -70,6 +70,7 @@ public class WXSoInstallMgrSdk {
private final static String X86 = "x86";
private final static String MIPS = "mips";
private final static String STARTUPSO = "/libweexjsb.so";
+ private final static String STARTUPSOANDROID15 = "/libweexjst.so";
private final static int ARMEABI_Size = 3583820;
private final static int X86_Size = 4340864;
@@ -192,20 +193,35 @@ public class WXSoInstallMgrSdk {
// }
// } catch (Throwable e) {
// }
+
if (installOnSdcard) {
String cacheFile = WXEnvironment.getApplication().getApplicationContext().getCacheDir().getPath();
- File newfile = new File(cacheFile + STARTUPSO);
+ // if android api < 16 copy libweexjst.so else copy libweexjsb.so
+ boolean pieSupport = true;
+ File newfile;
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {
+ pieSupport = false;
+ newfile = new File(cacheFile + STARTUPSOANDROID15);
+ } else {
+ newfile = new File(cacheFile + STARTUPSO);
+ }
if (newfile.exists()) {
return;
}
- String path = "/data/data/" + pkgName + "/lib";;
+ String path = "/data/data/" + pkgName + "/lib";
if (cacheFile != null && cacheFile.indexOf("/cache") > 0) {
path = cacheFile.replace("/cache", "/lib");
}
- String soName = path + STARTUPSO;
+ String soName;
+ if (pieSupport) {
+ soName = path + STARTUPSO;
+ } else {
+ soName = path + STARTUPSOANDROID15;
+ }
+
File oldfile = new File(soName);
if (oldfile.exists()) {
//获得原文件流
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/7fcfd9fd/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 5576de3..1343f60 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,7 +204,7 @@ public class WXWebsocketBridge implements IWXBridge,WXWebSocketManager.JSDebugge
}
@Override
- public int initFrameworkEnv(String scriptsFramework,WXParams params, String cacheDir, boolean onSdcard) {
+ public int initFrameworkEnv(String scriptsFramework,WXParams params, String cacheDir, boolean pieSupport) {
if (!mInit) {
return -1;
}