360RePlugin是360公司推出的插件化框架
360RePlugin的Github地址为:https://github.com/Qihoo360/RePlugin
360RePlugin的官方API文档地址为:https://github.com/Qihoo360/RePlugin/wiki
classpath 'com.qihoo360.replugin:replugin-host-gradle:2.2.4'
implementation 'com.qihoo360.replugin:replugin-host-lib:2.2.4'
apply plugin: 'replugin-host-gradle'
repluginHostConfig {
useAppCompat = true
}
useAppCompat = true表示应用需要支持AppCompat
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
RePlugin.App.attachBaseContext(this);
}
@Override
public void onCreate() {
super.onCreate();
RePlugin.App.onCreate();
}
如果app模块下的build.gradle中的minSdkVersion <= 14还需要添加以下几行,minSdkVersion > 14的就不用添加了:
@Override
public void onLowMemory() {
super.onLowMemory();
RePlugin.App.onLowMemory();
}
@Override
public void onTrimMemory(int level) {
super.onTrimMemory(level);
RePlugin.App.onTrimMemory(level);
}
@Override
public void onConfigurationChanged(Configuration config) {
super.onConfigurationChanged(config);
RePlugin.App.onConfigurationChanged(config);
}
如果是新建的MyApplication,不要忘了在Manifest中配置Application
<application
android:name=".MyApplication"
...>
classpath 'com.qihoo360.replugin:replugin-plugin-gradle:2.2.4'
implementation 'com.qihoo360.replugin:replugin-plugin-lib:2.2.4'
apply plugin: 'replugin-plugin-gradle'
这样就可以像开发普通app一样开发插件了。
Intent intent = RePlugin.createIntent("host", "com.sample.testhost.MainActivity");
RePlugin.startActivity(MainActivity.this,intent);
finish();
RePlugin.createIntent(String pluginName , String cls)中的第一个参数是插件名字,第二个参数是插件的Activity,这个Activity需要带上插件的完整包名
Intent intent = new Intent();
intent.setComponent(new ComponentName("com.sample.test360replugin", "com.sample.test360replugin.MainActivity"));
startActivity(intent);
finish();
ComponentName(String pkg , String cls)中的第一个参数是主程序的包名,第二个参数是主程序的Activity,这个Activity需要带上主程序的完整包名
在Android Studio中点击build -> Build APK(s),将插件程序打包出来
将生成的app-debug.apk重命名为host.jar,这个host就是插件名字,6.1中用的就是这个名字,可以自己命名,只要保证使用的时候与之对应即可。将此jar放在主程序的assets/plugins文件夹中
https://github.com/wkxjc/Study360RePlugin