先直接来干货,等不及得直接去下载工程跑一下
为什么是用插件化或者组件化我就不逼逼了,你既然选择了去查这个东西就已经明白了
这几个版本很重要!
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.pngimage.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 放在手机的任意目录下 但是你要能找得到 我就放在根目录了,至此集成结束! 工程我在最上面放了地址!
网友评论