support load external shared Library from WXApplication (#2612)
diff --git a/build.gradle b/build.gradle
index 04ae472..f22e07a 100755
--- a/build.gradle
+++ b/build.gradle
@@ -17,6 +17,9 @@
ndk{
abiFilters "arm64-v8a", "armeabi-v7a", "x86"
}
+ if(!getBuildConfigFields()?.containsKey('externalLibraryName')) {
+ buildConfigField "String", "externalLibraryName", "\"\""
+ }
}
applicationVariants.all { variant ->
variant.outputs.each { output ->
diff --git a/src/main/java/com/alibaba/weex/WXApplication.java b/src/main/java/com/alibaba/weex/WXApplication.java
index ec714ed..7917529 100644
--- a/src/main/java/com/alibaba/weex/WXApplication.java
+++ b/src/main/java/com/alibaba/weex/WXApplication.java
@@ -22,7 +22,7 @@
import android.app.Application;
import android.os.Bundle;
import android.support.multidex.MultiDex;
-
+import android.text.TextUtils;
import com.alibaba.android.bindingx.plugin.weex.BindingX;
import com.alibaba.weex.commons.adapter.DefaultWebSocketAdapterFactory;
import com.alibaba.weex.commons.adapter.ImageAdapter;
@@ -73,17 +73,18 @@
WXEnvironment.setApkDebugable(true);
WXSDKEngine.addCustomOptions("appName", "WXSample");
WXSDKEngine.addCustomOptions("appGroup", "WXApp");
- WXSDKEngine.initialize(this,
- new InitConfig.Builder()
- //.setImgAdapter(new FrescoImageAdapter())// use fresco adapter
- .setImgAdapter(new ImageAdapter())
- .setDrawableLoader(new PicassoBasedDrawableLoader(getApplicationContext()))
- .setWebSocketAdapterFactory(new DefaultWebSocketAdapterFactory())
- .setJSExceptionAdapter(new JSExceptionAdapter())
- .setHttpAdapter(new InterceptWXHttpAdapter())
- .setApmGenerater(new ApmGenerator())
- .build()
- );
+ InitConfig.Builder builder = new InitConfig.Builder()
+ //.setImgAdapter(new FrescoImageAdapter())// use fresco adapter
+ .setImgAdapter(new ImageAdapter())
+ .setDrawableLoader(new PicassoBasedDrawableLoader(getApplicationContext()))
+ .setWebSocketAdapterFactory(new DefaultWebSocketAdapterFactory())
+ .setJSExceptionAdapter(new JSExceptionAdapter())
+ .setHttpAdapter(new InterceptWXHttpAdapter())
+ .setApmGenerater(new ApmGenerator());
+ if(!TextUtils.isEmpty(BuildConfig.externalLibraryName)){
+ builder.addNativeLibrary(BuildConfig.externalLibraryName);
+ }
+ WXSDKEngine.initialize(this, builder.build());
WXSDKManager.getInstance().setWxConfigAdapter(new DefaultConfigAdapter());
WXSDKManager.getInstance().addWXAnalyzer(new WXAnalyzerDemoListener());
WXAnalyzerDataTransfer.isOpenPerformance = false;