Android插件化框架--360RePlugin基本使用

360RePlugin是360公司推出的插件化框架

360RePlugin的Github地址为:https://github.com/Qihoo360/RePlugin

360RePlugin的官方API文档地址为:https://github.com/Qihoo360/RePlugin/wiki

一、先看效果图:


二、代码实现:

1.主程序开发:项目的Gradle的dependencies中添加:

classpath 'com.qihoo360.replugin:replugin-host-gradle:2.2.4'

2.app模块下的build.gradle中的dependencies中添加:

implementation 'com.qihoo360.replugin:replugin-host-lib:2.2.4'

3.app模块下的build.gradle中的android{}之后添加:

apply plugin: 'replugin-host-gradle'
repluginHostConfig {
    useAppCompat = true
}

useAppCompat = true表示应用需要支持AppCompat

4.自己的Application类中添加:

@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"
    ...>

5.插件开发:新建一个项目,5.1步、5.2步和前面的1、2步一摸一样:

5.1.项目的Gradle的dependencies中添加:

classpath 'com.qihoo360.replugin:replugin-host-gradle:2.2.4'

5.2.app模块下的build.gradle中的dependencies中添加:

implementation 'com.qihoo360.replugin:replugin-host-lib:2.2.4'

5.3第3步.app模块下的build.gradle中的android{}之后添加:

apply plugin: 'replugin-host-gradle'

这样就可以像开发普通app一样开发插件了。

6.主程序和插件互相调用Activity

6.1主程序调用插件中的Activity:

Intent intent = RePlugin.createIntent("host", "com.sample.testhost.MainActivity");
RePlugin.startActivity(MainActivity.this,intent);
finish();

RePlugin.createIntent(String pluginName , String cls)中的第一个参数是插件名字,第二个参数是插件的Activity,这个Activity需要带上插件的完整包名

6.2插件调用主程序中的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需要带上主程序的完整包名

7.将插件程序生成jar并加入主程序:

在Android Studio中点击build -> Build APK(s),将插件程序打包出来

将生成的app-debug.apk重命名为host.jar,这个host就是插件名字,6.1中用的就是这个名字,可以自己命名,只要保证使用的时候与之对应即可。将此jar放在主程序的assets/plugins文件夹中

大功告成,源码已上传:

https://github.com/wkxjc/Study360RePlugin


猜你喜欢

转载自blog.csdn.net/alpinistwang/article/details/80204449
今日推荐