VirtualAPK(滴滴)插件化框架的使用

本文详细介绍了如何在宿主项目和插件项目中配置VirtualAPK,包括Gradle插件的引用、宿主与插件的配置设置,以及插件的编译和加载过程。重点讲解了常见问题和配置项的作用,帮助读者深入理解框架集成和使用。
摘要由CSDN通过智能技术生成

宿主项目的VirtualAPK配置

在集成使用滴滴插件化框架VirtualAPK时,按照官方接入文档,分别需要在宿主工程和插件工程中进行gradle相关配置,其中特别需要引入VirtualAPK的Gradle插件。
VirtualAPK Gradle插件配置如下:

Host Project
在宿主工程根目录下 build.gradle 中添加插件路径:

    dependencies {
        classpath 'com.didi.virtualapk:gradle:0.9.8.6.2-dev'
        //一定要是3.0 的gradle
        classpath 'com.android.tools.build:gradle:3.0.0'

    }

在宿主app module的 build.gradle 中应用host插件:

apply plugin: 'com.didi.virtualapk.host'

在宿主的Applcation 的attachBaseContext中执行如下方法


    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        PluginManager.getInstance(base).init();
    }

插件项目的VirtualAPK配置

在插件工程根目录下 build.gradle 中添加插件路径:

    dependencies {
        classpath 'com.didi.virtualapk:gradle:0.9.8.6.2-dev'
        //一定要是3.0 的gradle
        classpath 'com.android.tools.build:gradle:3.0.0'

    }

在插件app module的 build.gradle 中应用plugin插件:

apply plugin: 'com.didi.virtualapk.plugin'

在插件app module的 build.gradle 中配置:

virtualApk {
 packageId = 0x6f             // 插件资源id,避免资源id冲突
    targetHost='../app'     // 宿主工程的路径(绝对或者相对路径)
    applyHostMapping = true      // 插件编译时是否启用应用宿主的apply mapping
}

插件的生成

这边有个,在生成前必须在在宿主以及插件项目的gradle.properties文件中加上
android.useDexArchive=false
1.先编译宿主项目,编译成功后会在宿主的app/build/ 下生成VAHost文件夹
在这里插入图片描述

2.宿主编译完后完成后编译插件项目。
3.编译成功后 在Terminal 中执行gradlew clean assemblePlugin。
4.执行结束后插件所在目录在buidle/outputs/plugin/中。
在这里插入图片描述

插件使用

在宿主中使用插件方法如下


    private void loadPlugin(Context base) {
        PluginManager pluginManager = PluginManager.getInstance(base);
        File apk = new File(Environment.getExternalStorageDirectory() + "/Download/", "plus.apk");
        if (apk.exists()) {
            try {
                //加载插件
                pluginManager.loadPlugin(apk);
                //加载成功后像正常一样使用
                Intent intent = new Intent();
                intent.setClassName(this, "com.didi.virtualapk.demo.aidl.BookManagerActivity");
                startActivity(intent);
                
               
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

尾声

初次接入VirtualAPK框架时,新手经常遇到Gradle构建错误,不理解每个配置项的含义作用。通过对VirtualAPK的Gradle构建插件的简单梳理,对VirtualAPK框架的集成使用和属性配置有进一步认识,知其然知其所以然。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值