Android插件开发RePlugin(一)

RePlugin是360开源的一个插件化开发工具,最近在学习使用,这里记录分享下。

因为刚开始使用,最近只记录用法与可能的坑,源码等以后分析。

官方连接https://github.com/Qihoo360/RePlugin

一.集成使用

插件是有宿主程序与插件程序两种

1、宿主程序配置

第一步、在外部gradle中做一下配置

 dependencies {
        classpath "com.android.tools.build:gradle:XXX"
        //360RePlugin宿主插件
        classpath "com.qihoo360.replugin:replugin-host-gradle:XXX"
      
    }

最好是用最新版本,因为一直在更新优化。

第二步、配置宿主app的gradle添加

apply plugin: 'replugin-host-gradle'

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:26.1.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'

    compile 'com.qihoo360.replugin:replugin-host-lib:xxx'
}

第三步、配置Application

Application有两种配置方法,第一种是直接继承RePluginApplication

另一种是自己写Application

配置如下

public class MainApplication extends Application {

    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);

        RePlugin.App.attachBaseContext(this);
    }

    @Override
    public void onCreate() {
        super.onCreate();
        RePlugin.App.onCreate();
    }

    @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);
    }
}

2.插件配置

第一步,在外部配置gradle

  dependencies {
        classpath "com.android.tools.build:gradle:xxx"
        //360RePlugin寄主插件
        classpath "com.qihoo360.replugin:replugin-plugin-gradle:xxx"
      
    }

如果宿主和插件在一个项目中,那么外部gradle要这么写

  dependencies {
        classpath "com.android.tools.build:gradle:xxx"
        //360RePlugin宿主插件
        classpath "com.qihoo360.replugin:replugin-host-gradle:xxx"
        //360RePlugin寄主插件
        classpath "com.qihoo360.replugin:replugin-plugin-gradle:xxx"
     
    }

第二步、配置插件的gradle

apply plugin: 'replugin-plugin-gradle'
dependencies {

    implementation 'com.qihoo360.replugin:replugin-plugin-lib:xxx'
}

这样,插件与宿主的配置就完成了,这是最基础的配置,使用没有问题,如果想自定义请看官方文档

3、使用插件

1.安装插件

插件安装分为内置插件与外置插件

内置插件就是把apk名改为  项目名.jar

然后放到assets/plugins的资源目录中

这样安装应用后就会加载

不过我觉得插件更适合于热更新,与程序扩展,内置到程序中,倒不如直接在程序程序中加入代码

 

外置插件的安装

直接

RePlugin.install("/sdcard/exam.apk");

指定到你下载的外置插件位置

此为耗时操作,要在子线程中进行

2.升级插件

同样调用

RePlugin.install("/sdcard/exam.apk");

注意。升级插件时,需要插件没启动的情况下,如果插件正在运行,升级将不会成功

3.卸载插件

RePlugin.uninstall("插件名");

卸载插件会在下次开启程序的时候才会卸载成功,本次插件扔能运行

4.预加载插件

RePlugin.preload("插件名");

此步骤可在RePlugin.install("/sdcard/exam.apk");直接调用,预加载以后插件即可快速运行,加载是耗时的,需要时间较长,需要在子线程中加载。

5.运行插件

在预加载完成后,即可调用插件的activity了

Intent intent = new Intent();
intent.setComponent(new ComponentName(packageName, className));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
RePlugin.startActivity(context, intent);

指定包名和类名即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值