Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support "startActivity" method in the plug-in's Application #238

Merged
merged 8 commits into from
Jul 20, 2017
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
import android.os.IBinder;
import android.text.TextUtils;

import com.qihoo360.loader2.PluginCommImpl;
import com.qihoo360.mobilesafe.core.BuildConfig;
import com.qihoo360.replugin.RePlugin;
import com.qihoo360.replugin.component.ComponentList;
Expand Down Expand Up @@ -118,7 +119,7 @@ public final class Factory {
/**
* 参数1:插件上下文,可通过它获取应用上下文
* 参数2:HOST的类加载器
* 参数3:插件管理器 IPluginManager.aidl
* 参数3:已废弃
* 返回:插件 IPlugin.aidl
* @hide 内部框架使用
*/
Expand All @@ -129,7 +130,7 @@ public final class Factory {
/**
* @hide 内部框架使用
*/
public static IPluginManager sPluginManager;
public static PluginCommImpl sPluginManager;

/**
* @deprecated 新插件框架不再用i接口依赖,此接口已废弃
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,13 @@
import android.content.Intent;
import android.os.Bundle;

import com.qihoo360.loader2.PluginLibraryInternalProxy;

import org.json.JSONArray;

/**
* @hide 内部框架使用
* plugin-library中,通过“反射”调用的内部逻辑(如PluginActivity类的调用等)均在此处 <p>
* 注意:务必要Keep住此类,否则插件调用将失败
*
* @author RePlugin Team
*/
Expand All @@ -34,7 +37,7 @@ public final class Factory2 {
/**
* @hide 内部框架使用
*/
public static IPluginActivityManager sPluginManager;
public static PluginLibraryInternalProxy sPLProxy;

/**
* @hide 内部方法,插件框架使用
Expand All @@ -44,7 +47,7 @@ public final class Factory2 {
* @return 为Activity构造一个base Context
*/
public static final Context createActivityContext(Activity activity, Context newBase) {
return sPluginManager.createActivityContext(activity, newBase);
return sPLProxy.createActivityContext(activity, newBase);
}

/**
Expand All @@ -54,7 +57,7 @@ public static final Context createActivityContext(Activity activity, Context new
* @param savedInstanceState
*/
public static final void handleActivityCreateBefore(Activity activity, Bundle savedInstanceState) {
sPluginManager.handleActivityCreateBefore(activity, savedInstanceState);
sPLProxy.handleActivityCreateBefore(activity, savedInstanceState);
}

/**
Expand All @@ -64,7 +67,7 @@ public static final void handleActivityCreateBefore(Activity activity, Bundle sa
* @param savedInstanceState
*/
public static final void handleActivityCreate(Activity activity, Bundle savedInstanceState) {
sPluginManager.handleActivityCreate(activity, savedInstanceState);
sPLProxy.handleActivityCreate(activity, savedInstanceState);
}

/**
Expand All @@ -73,7 +76,7 @@ public static final void handleActivityCreate(Activity activity, Bundle savedIns
* @param activity
*/
public static final void handleActivityDestroy(Activity activity) {
sPluginManager.handleActivityDestroy(activity);
sPLProxy.handleActivityDestroy(activity);
}

/**
Expand All @@ -83,7 +86,7 @@ public static final void handleActivityDestroy(Activity activity) {
* @param savedInstanceState
*/
public static final void handleRestoreInstanceState(Activity activity, Bundle savedInstanceState) {
sPluginManager.handleRestoreInstanceState(activity, savedInstanceState);
sPLProxy.handleRestoreInstanceState(activity, savedInstanceState);
}

/**
Expand All @@ -92,7 +95,7 @@ public static final void handleRestoreInstanceState(Activity activity, Bundle sa
* @param service
*/
public static final void handleServiceCreate(Service service) {
sPluginManager.handleServiceCreate(service);
sPLProxy.handleServiceCreate(service);
}

/**
Expand All @@ -101,7 +104,19 @@ public static final void handleServiceCreate(Service service) {
* @param service
*/
public static final void handleServiceDestroy(Service service) {
sPluginManager.handleServiceDestroy(service);
sPLProxy.handleServiceDestroy(service);
}

/**
* @hide 内部方法,插件框架使用
* 启动一个插件中的activity
* 通过Extra参数IPluginManager.KEY_COMPATIBLE,IPluginManager.KEY_PLUGIN,IPluginManager.KEY_ACTIVITY,IPluginManager.KEY_PROCESS控制
* @param context Context上下文
* @param intent
* @return 插件机制层是否成功,例如没有插件存在、没有合适的Activity坑
*/
public static final boolean startActivity(Context context, Intent intent) {
return sPLProxy.startActivity(context, intent);
}

/**
Expand All @@ -113,7 +128,7 @@ public static final void handleServiceDestroy(Service service) {
* @return 插件机制层是否成功,例如没有插件存在、没有合适的Activity坑
*/
public static final boolean startActivity(Activity activity, Intent intent) {
return sPluginManager.startActivity(activity, intent);
return sPLProxy.startActivity(activity, intent);
}

/**
Expand All @@ -128,7 +143,7 @@ public static final boolean startActivity(Activity activity, Intent intent) {
* @return 插件机制层是否成功,例如没有插件存在、没有合适的Activity坑
*/
public static final boolean startActivity(Context context, Intent intent, String plugin, String activity, int process, boolean download) {
return sPluginManager.startActivity(context, intent, plugin, activity, process, download);
return sPLProxy.startActivity(context, intent, plugin, activity, process, download);
}

/**
Expand All @@ -141,7 +156,7 @@ public static final boolean startActivity(Context context, Intent intent, String
* @see #startActivityForResult(Activity, Intent, int, Bundle)
*/
public static final boolean startActivityForResult(Activity activity, Intent intent, int requestCode, Bundle options) {
return sPluginManager.startActivityForResult(activity, intent, requestCode, options);
return sPLProxy.startActivityForResult(activity, intent, requestCode, options);
}

/**
Expand All @@ -151,7 +166,7 @@ public static final boolean startActivityForResult(Activity activity, Intent int
* @return
*/
public static final JSONArray fetchPlugins(String name) {
return sPluginManager.fetchPlugins(name);
return sPLProxy.fetchPlugins(name);
}

/**
Expand All @@ -164,7 +179,7 @@ public static final JSONArray fetchPlugins(String name) {
* @return
*/
public static final boolean registerDynamicClass(String className, String plugin, String type, String target) {
return sPluginManager.registerDynamicClass(className, plugin, type, target);
return sPLProxy.registerDynamicClass(className, plugin, type, target);
}

/**
Expand All @@ -176,7 +191,7 @@ public static final boolean registerDynamicClass(String className, String plugin
* @return
*/
public static final boolean registerDynamicClass(String className, String plugin, String target, Class defClass) {
return sPluginManager.registerDynamicClass(className, plugin, target, defClass);
return sPLProxy.registerDynamicClass(className, plugin, target, defClass);
}

/**
Expand All @@ -187,7 +202,11 @@ public static final boolean registerDynamicClass(String className, String plugin
* @return
*/
public static final boolean isDynamicClass(String plugin, String className) {
return sPluginManager.isDynamicClass(plugin, className);
return sPLProxy.isDynamicClass(plugin, className);
}

public static void unregisterDynamicClass(String source) {
sPLProxy.unregisterDynamicClass(source);
}

/**
Expand All @@ -198,6 +217,6 @@ public static final boolean isDynamicClass(String plugin, String className) {
* @return 插件名称
*/
public static final String getPluginByDynamicClass(String className) {
return sPluginManager.getPluginByDynamicClass(className);
return sPLProxy.getPluginByDynamicClass(className);
}
}

This file was deleted.

Loading