Android插件化框架 —— 360RePlugin

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步类似,只是host换成了plugin:

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

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

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

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

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

apply plugin: 'replugin-plugin-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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值