Skip to content

Commit

Permalink
* [android] update debug info
Browse files Browse the repository at this point in the history
  • Loading branch information
xkli committed Jun 15, 2016
1 parent 24c11e9 commit 7a82747
Show file tree
Hide file tree
Showing 4 changed files with 148 additions and 12 deletions.
6 changes: 3 additions & 3 deletions android/playground/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ android {
applicationVariants.all { variant ->
variant.outputs.each { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.equals('app-release.apk')) {
def fileName = outputFile.name.replace("app-release.apk", "playgroud.apk")
if (outputFile != null && outputFile.name.equals('app-debug.apk')) {
def fileName = outputFile.name.replace("app-debug.apk", "playground.apk")
output.outputFile = new File(outputFile.parent, fileName)
}
}
Expand Down Expand Up @@ -69,7 +69,7 @@ dependencies {
//compile 'com.taobao.android:weex_sdk:0.4.+'
/*source dependency*/
compile project(':weex_sdk_android')
compile project(':weex_debug')
debugCompile project(':weex_debug')
compile project(':commons')
compile 'com.taobao.android:dexposed:0.1.8'
compile 'com.loopj.android:android-async-http:1.4.9@aar'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,13 @@
import android.app.Application;

import com.alibaba.weex.commons.adapter.FrescoImageAdapter;
import com.alibaba.weex.commons.adapter.ImageAdapter;
import com.facebook.drawee.backends.pipeline.Fresco;
import com.taobao.weex.InitConfig;
import com.alibaba.weex.extend.PlayDebugAdapter;
import com.alibaba.weex.extend.component.WTRichText;
import com.alibaba.weex.extend.module.RenderModule;
import com.alibaba.weex.extend.module.WXEventModule;
import com.facebook.drawee.backends.pipeline.Fresco;
import com.taobao.weex.InitConfig;
import com.taobao.weex.WXSDKEngine;
import com.taobao.weex.adapter.DefautDebugAdapter;
import com.taobao.weex.common.WXException;

public class WXApplication extends Application {
Expand All @@ -22,7 +21,8 @@ public void onCreate() {
WXSDKEngine.addCustomOptions("appGroup", "WXApp");
WXSDKEngine.initialize(this,
new InitConfig.Builder()
.setImgAdapter(new FrescoImageAdapter()).setDebugAdapter(new DefautDebugAdapter())
.setImgAdapter(new FrescoImageAdapter())
.setDebugAdapter(new PlayDebugAdapter())
.build()
);

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
package com.alibaba.weex.extend;

import android.app.Application;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;

import com.taobao.weex.IWXActivityStateListener;
import com.taobao.weex.WXSDKInstance;
import com.taobao.weex.WXSDKManager;
import com.taobao.weex.adapter.IWXDebugAdapter;
import com.taobao.weex.utils.WXLogUtils;

import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;

/**
* Created by lixinke on 16/6/15.
*/
public class PlayDebugAdapter implements IWXDebugAdapter {

public static final String SHOW_3D_LAYER = "show_3d_layer";
private Map<String, String> options;


@Override
public void initDebug(final Application application) {
WXSDKManager.getInstance().postOnUiThread(new Runnable() {
@Override
public void run() {
try {
Class cls = Class.forName("com.taobao.weex.WXPrettyFish");
Method m = cls.getMethod("init", new Class[]{Application.class});
m.invoke(cls, new Object[]{application});
} catch (Exception e) {
WXLogUtils.d("weex", "WXPrettyFish not found!");
}
putDebugOptions(SHOW_3D_LAYER, "true");
}
}, 0);
}

@Override
public View wrapContainer(WXSDKInstance instance, View wxView) {
try {
Class scalpelClas = Class.forName("com.taobao.weex.scalpel.ScalpelFrameLayout");
Constructor constructor = scalpelClas.getConstructor(new Class[]{Context.class});
ViewGroup container = (ViewGroup) constructor.newInstance(wxView.getContext());
if (container != null) {
container.addView(wxView);
Class cls = Class.forName("com.taobao.weex.WXDebugTool");
Method m = cls.getMethod("updateScapleView", new Class[]{Object.class});
m.invoke(null, new Object[]{container});
instance.registerActivityStateListener(new DebugActivityState(wxView));
return container;
}
} catch (Exception e) {
}

return wxView;
}

@Override
public void putDebugOptions(String key, String value) {
if (options == null) {
options = new HashMap<>();
}
options.put(key, value);
}
@Override
public String getDebugOptions(String key) {
if (options != null) {
return options.get(key);
}
return null;
}

static class DebugActivityState implements IWXActivityStateListener {

private View mWXView;

public DebugActivityState(View wxView) {
mWXView = wxView;
}

@Override
public void onActivityCreate() {

}

@Override
public void onActivityStart() {

}

@Override
public void onActivityPause() {
try {
Class cls = Class.forName("com.taobao.weex.WXDebugTool");
Method m = cls.getMethod("updateScapleView", new Class[]{Object.class});
m.invoke(null, new Object[]{});
} catch (Exception e){
}
}

@Override
public void onActivityResume() {
if (mWXView != null && mWXView.getParent()!=null && mWXView.getParent().getClass().getName().equals("com.taobao.weex.scalpel.ScalpelFrameLayout")) {
try {
Class cls = Class.forName("com.taobao.weex.WXDebugTool");
Method m = cls.getMethod("updateScapleView", new Class[]{Object.class});
m.invoke(null, new Object[]{mWXView.getParent()});
} catch (Exception e) {
e.printStackTrace();
}
}
}

@Override
public void onActivityStop() {

}

@Override
public void onActivityDestroy() {

}

@Override
public boolean onActivityBack() {
return false;
}
}
}
8 changes: 4 additions & 4 deletions android/sdk/src/main/java/com/taobao/weex/WXSDKEngine.java
Original file line number Diff line number Diff line change
Expand Up @@ -216,10 +216,6 @@ public static void initialize(Application application,InitConfig config){
doInitInternal(application,config);
WXEnvironment.sSDKInitInvokeTime = System.currentTimeMillis()-start;
init = true;

if (WXEnvironment.isApkDebugable() && WXSDKManager.getInstance().getIWXDebugAdapter()!=null) {
WXSDKManager.getInstance().getIWXDebugAdapter().initDebug(application);
}
}
}

Expand All @@ -236,6 +232,10 @@ public void run() {
sm.setIWXHttpAdapter(config.getHttpAdapter());
sm.setIWXImgLoaderAdapter(config.getImgAdapter());
sm.setIWXUserTrackAdapter(config.getUtAdapter());
sm.setIWXDebugAdapter(config.getDebugAdapter());
if(config.getDebugAdapter()!=null){
config.getDebugAdapter().initDebug(application);
}
}
WXSoInstallMgrSdk.init(application);
boolean isSoInitSuccess = WXSoInstallMgrSdk.initSo(V8_SO_NAME, 1, config!=null?config.getUtAdapter():null);
Expand Down

0 comments on commit 7a82747

Please sign in to comment.