滴滴开源插件化框架 VirtualApk(一)集成与使用

先直接来干货,等不及得直接去下载工程跑一下

为什么是用插件化或者组件化我就不逼逼了,你既然选择了去查这个东西就已经明白了

这几个版本很重要!
AndroidStudio 3.1.3
classpath 'com.android.tools.build:gradle:3.0.0'      对于0.9.8.4这个版本的VirtualApk来说 只能用3.0.0的
classpath 'com.didi.virtualapk:gradle:0.9.8.4'
implementation 'com.didi.virtualapk:core:0.9.6'

首先咱们新建一个工程

image.png

image.png

然后新建一个Application 重写 attachBaseContext

   @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        PluginManager.getInstance(base).init();
    }
别管为啥,Ctrl A C V 还不会么!

然后在你的主工程的MainActivity或者其他的适合的地方去加载你这个插件

    private void loadPlugin(Context base) {
        PluginManager pluginManager = PluginManager.getInstance(base);
        File apk = new File(Environment.getExternalStorageDirectory(), "plugin.apk");
        if (apk.exists()) {
            try {
                pluginManager.loadPlugin(apk);
            } catch (Exception e) {
                e.printStackTrace();
            }
        } else {
            Toast.makeText(getApplicationContext(),
                    "SDcard根目录未检测到plugin.apk插件", Toast.LENGTH_SHORT).show();
        }
    }

然后来一手点击事件去跳转到你的插件工程

 findViewById(R.id.btn_intent).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View mView) {
                Intent intent = new Intent();
                intent.setClassName("com.xiamuyao.sharemyapplication", "com.xiamuyao.sharemyapplication.Share_MainActivity");
                startActivity(intent);

            }
        });
第一个参数是你插件工程的报名,第二个是他的引用地址(点一下class 然后 Ctrl+Alt+Shirt + C)

如果有心那就自己写个读取权限的申请!

插件工程就很简单了。。

apply plugin: 'com.didi.virtualapk.plugin'
virtualApk {
    packageId = 0x6f
    targetHost = '../app'
    applyHostMapping = true
}

完事 然后通过


image.png

去打包你的插件apk 放在手机的任意目录下 但是你要能找得到 我就放在根目录了,至此集成结束! 工程我在最上面放了地址!

你可能感兴趣的:(滴滴开源插件化框架 VirtualApk(一)集成与使用)